Je travaille avec JWT pour l'authentification dans mon application angular - laravel. Tout fonctionne correctement sauf lorsque le jeton doit être généré, un message d'erreur s'affiche.
AppHttpControllersJWT
J'ai essayé d'ajouter les lignes suivantes dans AuthController: -
use TymonJWTAuthProvidersJWTAuthServiceProvider;
et
use AppHttpControllersJWT;
et
use JWT;
mais rien ne semble fonctionner
Mon compositeur.json: -
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"tymon/jwt-auth": "0.5.*"
},
AuthController -
$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)]);
}
Réponses:
2 pour la réponse № 1Essayer,
JWTAuth;
cependant, JWTAuth::encode
n'existe pas, si vous devez utiliser encode
méthode alors essayez ceci,
use TymonJWTAuthJWTManager as JWT;
Ensuite, vous pouvez accéder encode
méthode
$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"));
0 pour la réponse № 2
Cela devrait juste être un problème de namespacing. Je pense que tu veux le JWTAuth
façade.
use JWTAuth; // if added to aliases as the install mentions
use TymonJWTAuthFacadesJWTAuth; // if not aliased
mettre à jour: Si vous n'avez pas modifié le code dans la classe, ce qui signifie que vous avez toujours des appels à JWT, vous pouvez également créer un alias pour ces importations et ne pas devoir modifier les appels à JWT.
use JWTAuth as JWT;
use TymonJWTAuthFacadesJWTAuth as JWT;