Laravel 的 JWT 身份验证

Nit*_*tra 1 laravel laravel-5.4

我正在尝试从应用程序验证用户身份,并且我已经在 laravel 中编写了 API。我想知道 JWTAuth::fromUser($user)、JWTAuth::toUser($user) 和 JWTAuth::attempt($user) 之间有什么区别以及使用它的优势?

rkj*_*rkj 7

JWTAuth::fromUser($user)

如果您已经有用户实例并希望为该用户生成令牌,那么您可以使用fromUser

$token = JWTAuth::fromUser($user);
Run Code Online (Sandbox Code Playgroud)

JWTAuth::尝试($用户)

此函数用于根据凭据对用户进行身份验证,如果身份验证成功,则会为经过身份验证的用户生成令牌

if (! $token = JWTAuth::attempt($credentials)) {
    return Response::json(['error' => 'invalid_credentials'], 401);
}
Run Code Online (Sandbox Code Playgroud)

JWTAuth::toUser($user)

当你想从中获取用户时,token你可以使用toUser方法。像这样

$user = JWTAuth::toUser($token);
Run Code Online (Sandbox Code Playgroud)

有关详细信息,您可以在此处查看https://github.com/tymondesigns/jwt-auth/wiki/Creating-Tokens

  • 出于登录目的,如果您有“$credentials”,则使用“attempt”,但如果您已经有“user”实例,则使用“fromUser”。当您使用“token”调用 api 时,您将使用“toUser”从令牌中获取用户。 (2认同)