2017-05-01 1 views
0

Laravel Passport는이 간단한 응용 프로그램에 대해 OAuth 클라이언트의 Id, Secret을 가지고 있다고 매우 복잡하다고 생각합니다. & ... 그래서 UserControllerLaravel Passport : 사용자는 하나의 토큰이 없습니다

use Illuminate\Http\Request; 
use App\Http\Controllers\Controller; 

use Illuminate\Support\Facades\Auth; 
use App\User; 
use Response; 

class UserController extends Controller 
{ 
    // 
    public function __construct(){ 
     $this->content = array(); 
    } 
    public function login(){ 
     if(Auth::attempt(['email' => request('email'), 'password' => request('password')])){ 
     $user = Auth::user(); 
     $this->content['token'] = $user->createToken('URL APP')->accessToken; 
     $status = 200; 
    } 
    else{ 
     $this->content['error'] = "Unauthorised"; 
     $status = 401; 
    } 
    return response()->json($this->content, $status);  
    } 
} 

을하지만, 문제는 (그것의 내가 생각 무효로한다 유효한 요청을 보낼 수 있습니다 오래된 토큰 & 사용자가 만료되지 않습니다 & 된 토큰을 얻을 새로운 토큰의 때마다 사용자의 기호입니다 : 자신은 이러한 코드와 이러한 복잡성을 해결하기 위해).
사용자에게 여권을 설정하는 방법은 하나의 토큰이 있습니까? 아니면 직접해야합니까?

답변

0

예 jwt 토큰에 문제가 있습니다. 그러나 자신 만의 방법을 만들거나 다른 라이브러리를 사용하여이 문제를 극복 할 수 있습니다. "jwt-auth"는 토큰 라이브러리이기도하며 토큰을 블랙리스트하는 데 사용할 수있는 블랙리스트 메서드도 있습니다.

경로에서 미들웨어를 만들고 redis 또는 memcached 데이터베이스에 토큰을 캐시하고 user_id에 저장할 수 있으며 매번 요청과 일치시킬 수 있습니다.

관련 문제