我正在使用Laravel 5.8和VUE创建一个SPA,并使用JWT通过令牌进行身份验证。
身份验证工作,但它返回真值,而不是令牌值。我认为我的配置已损坏,我无法再次修复它。
我的登录方式是:
$credentials = request(['email', 'password']);
if (Auth::attempt($credentials)) {
if (! $token = auth()->attempt($credentials, false)) {
return response()->json(['error' => 'Unauthorized'], 401);
}
return $token;
}
结果为“true”,但我需要JWT值。
退几步说:
我正在使用:tymon/jwt-auth
授权人:
function auth($guard = null)
{
if (is_null($guard)) {
return app(AuthFactory::class);
}
return app(AuthFactory::class)->guard($guard);
}
配置文件/授权文件php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
'users' => [
'driver' => 'jwt',
'provider' => 'users',
],
],
有什么建议来检查我的配置吗?
3条答案
按热度按时间plupiseo1#
您应该使用包提供的
JWTAuth
facade:8iwquhpp2#
您可以使用**guard('api ')或guard('users')**方法,因为您有多个防护
i2loujxw3#
如果您使用auth()-〉attempt($个凭证);或验证::尝试($个凭证);
它将返回True,因此使用JWTAuth::attempt($凭据)
它将帮助您获得Web会话和API JWT令牌。