2017-05-01 9 views
0

Laravel Passport hat ein sehr komplexes System für meine App, weil ich denke, für diese einfache App ist es sehr komplex, OAuth Client-ID, Secret & ... ... Also ich einen UserController erstellen selbst diese Komplexität mit diesen Codes zu lösen:Laravel Passport: Benutzer haben nur einen Token nicht viele

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

aber Problem ist Zeichen jedes Mal Benutzer in bekommen neue Token & alte Token nicht & Benutzer mit alten Token ablaufen kann gültige Anforderung senden (sein ungültig sein sollte ich denke,).
Gibt es eine Möglichkeit, Benutzer zu konfigurieren, hat einen Token oder ich sollte es selbst tun?

Antwort

0

Ja, es ist ein Problem mit JWT-Token. Sie können dieses Problem jedoch überwinden, indem Sie eigene Methoden erstellen oder andere Bibliotheken verwenden. "jwt-auth" ist auch eine Bibliothek für Token und dies hat auch die Blacklist-Methode, die Sie verwenden können, um ein Token auf die Blacklist zu setzen.

oder Sie können eine Middleware in Ihren Routen erstellen und das Token in redis- oder memcached-Datenbank zwischenspeichern und gegen user_id speichern und jedes Mal mit Anfragen abgleichen.

Verwandte Themen