2016-05-05 158 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, 
    ]); 
}