Estoy trabajando con JWT para la autenticación en mi aplicación angular - laravel. Todo funciona bien, excepto cuando es necesario generar el token, aparece un error.
AppHttpControllersJWT
He intentado agregar las siguientes líneas en el AuthController:
use TymonJWTAuthProvidersJWTAuthServiceProvider;
y
use AppHttpControllersJWT;
y
use JWT;
Pero nada parece funcionar
Mi compositor.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)]);
}
Respuestas
2 para la respuesta № 1Tratar,
JWTAuth;
Sin embargo, JWTAuth::encode
No existe, si debes usarlo. encode
Método, entonces prueba esto,
use TymonJWTAuthJWTManager as JWT;
Entonces puedes acceder encode
método
$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 para la respuesta № 2
Esto solo debería ser un problema de espacios de nombre. Creo que quieres el JWTAuth
fachada.
use JWTAuth; // if added to aliases as the install mentions
use TymonJWTAuthFacadesJWTAuth; // if not aliased
actualizar: Si no ha modificado el código dentro de la clase, lo que significa que todavía tiene llamadas a JWT, puede alias estas importaciones en su lugar y no tendrá que cambiar las llamadas a JWT.
use JWTAuth as JWT;
use TymonJWTAuthFacadesJWTAuth as JWT;