2016-05-05 118 views
1

目前,我有此代码。Laravel与JWT令牌返回太长的刷新令牌

/** 
    * Refresh a token. 
    * 
    * @param $token 
    * @return \Illuminate\Http\JsonResponse 
    */ 
    public function token($token) 
    { 
     if(!$token) 
     { 
      throw new BadRequestHttpException('Geen token aangeleverd'); 
     } 

     try { 
      $newToken = \JWTAuth::refresh($token); 
     } catch(TokenInvalidException $e) { 
      throw new AccessDeniedHttpException('Incorrect token'); 
     } 

     return \Response::json(compact('newToken')); 
    } 

当我发送一个有效的令牌这种方法,我收到一条极长的距离JWTAuth::refresh呼叫令牌回来。 它看起来像新的令牌附加到我现有的令牌。

我不太确定我做错了什么,所以请随意开火。 ;)

回答

1

我们有更新令牌的下一个方法。让JWTAuth自己找到令牌。

public function tokenRefresh(Request $request) 
{ 
    try { 
     $newToken = JWTAuth::setRequest($request)->parseToken()->refresh(); 
    } catch (TokenExpiredException $e) { 
     event("jwt.expired", [$e], true); 
    } catch (JWTException $e) { 
     event("jwt.invalid", [$e], true); 
    } 

    /** Our Response wrapper :) */ 
    return ApiResponse::success([ 
     'token' => $newToken, 
    ]); 
}