/ / Laravel 5.1 AppHttpControllersJWT clase no encontrada - laravel, laravel-5.1, jwt, json-web-token

Laravel 5.1 AppHttpControllersJWT clase no encontrada - laravel, laravel-5.1, jwt, json-web-token

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 № 1

Tratar,

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;