Beispiel #1
0
 /**
  * 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));
 }
Beispiel #2
0
 /**
  * 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'));
 }
Beispiel #3
0
 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)]);
 }
Beispiel #6
0
 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);
 }
Beispiel #7
0
 /**
  * @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));
 }
Beispiel #10
0
 /**
  * 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);
 }