2017-05-01 18 views
0

Laravel Passportは私のアプリにとって非常に複雑なシステムを持っているため、OAuthクライアントのId、Secretを持つことは非常に複雑です。 ... だから私はUserControllerこれらのコードで、この複雑さを解決するために自分自身:Laravel Passport:ユーザーはトークンが1つではありません

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);  
    } 
} 

が、問題は、&古いトークンが古いトークンで&ユーザーが期限切れになりません新しいトークンが有効な要求を送信することができます取得で毎回のユーザーのサイン(そのが無効であるべきだと思うです)。
ユーザーにパスポートを設定する方法はありますか?トークンが1つあるか、自分で行う必要がありますか?

答えて

0

はいjwtトークンに問題があります。しかし、あなた自身のメソッドを作るか、他のライブラリを使ってこの問題を克服することができます。 "jwt-auth"はトークンのライブラリでもあり、トークンをブラックリストに登録するためのブラックリストメソッドもあります。

ルートにミドルウェアを作成し、そのトークンをredisまたはmemcachedデータベースにキャッシュし、それをuser_idに保存してリクエストごとに一致させることができます。

関連する問題