/** * Handle the event. * * @param Login|\REBELinBLUE\Deployer\Events\JsonWebTokenExpired $event */ public function handle(Login $event) { $tokenId = base64_encode(str_random(32)); $issuedAt = Carbon::now()->timestamp; $notBefore = $issuedAt; $expire = $notBefore + 3 * 60 * 60; // Adding 3 hours // Create the token $config = ['iat' => $issuedAt, 'jti' => $tokenId, 'iss' => config('app.url'), 'nbf' => $notBefore, 'exp' => $expire, 'data' => ['userId' => $event->user->id]]; Session::put('jwt', $this->auth->fromUser($event->user, $config)); }
/** * Authenticate the user to get a token. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\JsonResponse */ public function authenticate(Request $request) { try { if (Auth::check()) { $token = $this->jwt->fromUser(Auth::user()); } else { $credentials = $request->only('email', 'password'); if (!($token = $this->jwt->attempt($credentials))) { return response()->json(['error' => 'invalid_credentials'], 401); } } } catch (JWTException $e) { return response()->json(['error' => 'could_not_create_token'], 500); } return response()->json(compact('token')); }
public function signup(JWTAuth $auth) { $data = $this->request()->only('email', 'password', 'name'); try { $user = \Sikasir\V1\User::create(['name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password'])]); } catch (Exception $e) { return response()->json(['error' => 'User already exists.'], HttpResponse::HTTP_CONFLICT); } $token = $auth->fromUser($user); return response()->json(compact('token')); }
public function signUp(SignUpRequest $request, JWTAuth $JWTAuth) { $user = new User($request->all()); if (!$user->save()) { throw new HttpException(500); } if (!Config::get('boilerplate.sign_up.release_token')) { return response()->json(['status' => 'ok'], 201); } $token = $JWTAuth->fromUser($user); return response()->json(['status' => 'ok', 'token' => $token], 201); }
public function resetPassword(ResetPasswordRequest $request, JWTAuth $JWTAuth) { $response = $this->broker()->reset($this->credentials($request), function ($user, $password) { $this->reset($user, $password); }); if ($response !== Password::PASSWORD_RESET) { throw new HttpException(500); } if (!Config::get('boilerplate.reset_password.release_token')) { return response()->json(['status' => 'ok']); } $user = User::where('email', '=', $request->get('email'))->first(); return response()->json(['status' => 'ok', 'token' => $JWTAuth->fromUser($user)]); }
public function postIndex(Request $request, JWTAuth $jwt, AuthInterface $auth) { $credentials = $request->only('email', 'password'); try { if ($auth->byCredentials($credentials)) { if ($auth->user()->group == User::GROUP_DISABLED) { throw new UserDisabledException('Account has been disabled.'); } $extraInfo = ['user' => $auth->user(), 'code' => Crypt::encrypt(md5($credentials['password']))]; if ($token = $jwt->fromUser($auth->user(), $extraInfo)) { event(new UserLoggedIn($auth->user())); return $this->jsonResponse(['token' => $token]); } } } catch (JWTException $e) { return $this->jsonResponse(['Error creating JWT token'], 401); } catch (UserDisabledException $e) { return $this->jsonResponse([$e->getMessage()], 401); } return $this->jsonResponse(['Invalid username or password'], 401); }
/** * @param JWTAuth $jwt * @param \Laravel\Socialite\Contracts\User $login * @param string $provider * @return \Illuminate\Http\Response */ private function handleSocialLogin(JWTAuth $jwt, $login, $provider) { $token = UserSocialLogin::firstOrNew(['token' => $login->getId(), 'provider' => $provider]); if (!$token->exists) { $user = $this->createOrFindUser($login); $token->user_id = $user->id; $token->data = json_encode($login); } else { $user = $token->user; } $token->save(); try { if ($token = $jwt->fromUser($user)) { return redirect("/login/handle/{$token}"); } } catch (JWTException $e) { // return error on exception or empty token } return new JsonResponse(['Error creating JWT token'], 401); }
/** * Generate a token using the user identifier as the subject claim. * * @param mixed $user * @param array $customClaims * @return string * @static */ public static function fromUser($user, $customClaims = array()) { return \Tymon\JWTAuth\JWTAuth::fromUser($user, $customClaims); }
/** * @param $user * @return string */ protected function getUserToken($user) { return $this->jwt->fromUser($user, $this->createClaims($user)); }
/** * Generate token from Eloquent Model. * * @param array $claims * @param Model|null $user * * @return string */ public function generateToken(array $claims = [], Model $user = null) { $user = $user ?: $this->request->user(); $subject = new JWTSubject($user, $claims); return $this->auth->fromUser($subject); }