2017-01-08 4 views
1

Token generieren Ich bin für etwa 3 Tage mit diesem fest. Im Grunde versuche ich ein JWT-Token in Laravel mit Tymon zu generieren. Dies ist meine Controller-Datei.Kann nicht mit tymon jwt in laravel

<?php 
namespace App\Http\Controllers; 
use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\User; 
use JWTAuth; 
use JWT; 
use Tymon\JWTAuthExceptions\JWTException; 
use Tymon\JWTAuth\Contracts\JWTSubject as JWTSubject; 

class AuthenticateController extends Controller 
{ 
public function index() 
{ 
// 
} 
public function authenticate(Request $request) 
{ 

    $user = User::where('email', $request->only('email'))->first(); 
    dd($user); //This does show some output  
    $token = JWTAuth::fromUser($user); //returns error message 

    return ["error" => NULL, "token" => $token]; 

} 
} 

Getestet habe ich diese api mit Chrome Postbote, aber es meldet diesen Fehler:

Error in JWT.php Linie 73: Argument 1 bestanden Tymon \ JWTAuth \ JWT :: fromuser() muss eine Instanz von Tymon \ JWTAuth \ Contracts \ JWTSubject sein, Instanz von App \ User gegeben, aufgerufen in /Users/shankerm/mccadmin/laravel/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php online 217 und definiert

Bitte geben Sie mir einen Rat. Ich bin neu in Laravel und kämpfe lange damit. Vielen Dank.

Antwort

1

Sie verwenden die neuere Version des Pakets. Dies setzt voraus, dass der User Model diesen Vertrag implementiert. Lösen Sie es, indem Sie dies in Ihrem Modell tun:

use Tymon\JWTAuth\Contracts\JWTSubject; 

class User extends Model implements JWTSubject { 
+0

Vielen Dank! Du hast mein Problem gelöst. – schenker

Verwandte Themen