public function __construct(Request $request) { $headers = $request->header(); if (!empty($headers['x-api-token']) && !is_null($headers['x-api-token'])) { $this->token = Token::where('api_token', $headers['x-api-token'])->first(); } }
public static function generateForUser($user_id) { Token::where('user_id', '=', $user_id)->delete(); $token = new Token(); $token->{'user_id'} = $user_id; $token->token = $user_id . '-' . Token::v4UUID(); $token->expires = Token::expirationTime(); $token->save(); return $token; }
/** * Generate a token to authenticate a user * * @return mixed */ public function login($device_id = null, $device_type = null, $device_token = null) { // clear old sessions for any user with: same(device_id, os) $to_remove = Token::where('device_id', '=', $device_id)->where('device_os', '=', $device_type)->delete(); $token = Token::getInstance(); $token->user_id = $this->_id; $token->device_id = $device_id; $token->device_os = $device_type; $token->device_token = $device_token; $token->save(); return $token; }
function get($token) { try { $tokenModel = TokenModel::where('token', $token)->firstOrFail(); } catch (ModelNotFoundException $e) { return null; } $token = new Token(); $token->token = $tokenModel->token; $token->userId = $tokenModel->user_id; $token->createTime = $tokenModel->create_time; $token->expireTime = $tokenModel->expire_time; return $token; }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $authenticated = false; if (!isset($_SERVER['HTTP_X_SITE_AUTH_TOKEN'])) { return response()->json(array('error' => 'This resource requires an authentication token.'), 403); } $token = $_SERVER['HTTP_X_SITE_AUTH_TOKEN']; if ($token) { $token = Token::where('token', '=', $token)->where('expires', '>', time())->first(); if ($token) { if ($token->{'user_id'} != 0) { session(['user_id' => $token->{'user_id'}]); } $authenticated = true; $token->updateExpiration(); } } if (!$authenticated) { return response()->json(array('error' => 'Invalid token'), 403); } return $next($request); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $headers = $request->header(); // header checked if (empty($headers['x-api-token']) || is_null($headers['x-api-token'])) { return response()->json(['error' => 'Not Authorization'], 401); } //token valid $token = Token::where('api_token', $headers['x-api-token'])->first(); if (empty($token)) { return response()->json(['error' => 'token_invalid'], 403); } //token expired //$token->expires_on //return response()->json(['error' => 'token_expired'], $e->getStatusCode()); // if (!$request->isMethod('get')) { if (empty($token->user->email) || !$token->user->role_id == 3) { return response()->json(['error' => 'Permission denied'], 403); } } return $next($request); }
/** * notifications function. * * @access public * @return void */ public function postNotification() { $device_token = Input::get('token', ''); $device_os = Input::get('os', ''); $token = Token::where('token', "=", $device_token)->where('os', "=", $device_os)->first(); if (!$token) { $token = new Token(); $token->token = $device_token; $token->os = $device_os; $token->save(); } $user = Auth::user()->id; $token->user_id = $user; $token->save(); return Response::json(array("service" => __FUNCTION__, "status" => true)); }
public function getNotification() { $tokens = Token::where("os", "=", "ios")->get(); foreach ($tokens as $token) { $this->_ios_notification($token->token, "HOLA MUNDO", 1); } return $this->getIndex(); }
/** * @param $token * @return Token */ public function getByToken($token) { return Token::where('token', $token)->first(); }
public function user(Request $request) { $rules = ['email' => 'required', 'password' => 'required', 'name' => 'required']; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return response()->json(['error' => 'Unprocessable Entity'], 422); } // user 검색 및 생 $user = User::where('email', $request->input('email'))->first(); if (empty($user)) { $user = new User(); $user->username = $request->input('name'); $user->email = $request->input('email'); $user->password = bcrypt($request->input('password')); $user->role_id = 2; $user->save(); } // api token 검색 및 생성 $token = Token::where('user_id', $user->id)->first(); if (empty($token)) { $token = new Token(); $token->user_id = $user->id; } $token->api_token = hash('sha256', str_random(10), false); $token->save(); // api token 리턴 return response()->json(['token' => $token->api_token], 200); }