1

angular-laravelアプリケーションで認証のためにJWTを使用しています。トークンを生成する必要がある場合を除いて、すべて正常に機能していますが、エラーが発生します

App\Http\Controllers\JWT

AuthController に次の行を追加しようとしました:-

use Tymon\JWTAuth\Providers\JWTAuthServiceProvider;

use App\Http\Controllers\JWT;

use JWT;

しかし、何も機能していないようです

私の composer.json :-

"require": {
    "php": ">=5.5.9",
    "laravel/framework": "5.1.*",
    "tymon/jwt-auth": "0.5.*"
},

認証コントローラー -

$payload = [
        'sub' => $user->id,
        'iat' => time(),
        'exp' => time() + (2 * 7 * 24 * 60 * 60)
    ];
    return JWT::encode($payload, Config::get('app.token_secret'));

public function signup(Request $request){
    $user = new User;
    $user->name = $request->input('displayName');
    $user->email = $request->input('email');
    /*$user->password = Hash::make($request->input('password'));*/
    $user->password = $request->input('password');
    $user->save();
    return response()->json(['token' => $this->createToken($user)]);
}
4

2 に答える 2

3

試す、

JWTAuth;

ただし、JWTAuth::encode存在しません。メソッドを使用する必要がある場合は、これをencode試してください。

use Tymon\JWTAuth\JWTManager as JWT;

encode次に、メソッドにアクセスできます

$customClaims = [
    'sub' => $user->id,
    'iat' => time(),
    'exp' => time() + (2 * 7 * 24 * 60 * 60)
];

$payload = app('tymon.jwt.payload.factory')->make($customClaims);

return JWT::encode($payload, Config::get('app.token_secret'));
于 2015-12-08T10:58:25.260 に答える
0

これは名前空間の問題にすぎません。JWTAuthファサードが欲しいと思います。

use JWTAuth;  // if added to aliases as the install mentions
use Tymon\JWTAuth\Facades\JWTAuth; // if not aliased

更新:クラス内のコードを変更していない場合、つまり JWT への呼び出しがまだある場合は、代わりにこれらのインポートにエイリアスを設定でき、JWT への呼び出しを変更する必要はありません。

use JWTAuth as JWT;
use Tymon\JWTAuth\Facades\JWTAuth as JWT;
于 2015-12-08T09:45:37.503 に答える