2017-01-08 12 views
1

私はこれを約3日間続けています。基本的に、私はTaimonを使ってlaravelでJWTトークンを生成しようとしています。これは私のコントローラファイルです。laravelでtymon jwtを使用してトークンを生成できません

<?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]; 

} 
} 

私はクローム郵便配達を使用して、このAPIをテストしたが、それはこのエラーを報告している:JWT.phpライン73で

ErrorException:タイモン\ JWTAuth \ JWTに渡さ 引数1 :: FROMUSERを() /Users/shankerm/mccadmin/laravel/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php on lineで呼び出されたApp \ UserのインスタンスであるTymon \ JWTAuth \ Contracts \ JWTSubjectのインスタンスでなければなりません。 217と定義されています

私はいくつかのアドバイスをします。私はLaravelに新しいことがあり、長い間これを苦労しています。ありがとう。

答えて

1

パッケージの新しいバージョンを使用しています。これには、User Modelがこの契約を実装する必要があります。あなたのモデルでこれを行うことで解決してください:

use Tymon\JWTAuth\Contracts\JWTSubject; 

class User extends Model implements JWTSubject { 
+0

ありがとう!あなたは私の問題を解決しました。 – schenker

関連する問題