如何在Laravel中创建后检索用户访问令牌



当我登录或注册用户时,我可以生成用户访问权限

我希望稍后能够在API 中使用该令牌

我有问题

  1. 创建后将用户访问令牌存储在数据库中是否安全
  2. 创建后如何检索访问令牌

我试过这个

public function showprofile(Request $request)
{
$user = new UserResource(User::find($request->id));
$token = $user->token();
dd($token);
// return response ($user);
}

它返回null,我已经检查了oauth访问令牌表,我正在发送的用户id存在。

谢谢。

1(是的,这没有问题。事实上,如果你使用Laravel Passport,它会自动完成。Passport的默认迁移将确保它以安全的方式存储。如果需要,您可以选择自己发布迁移以进行调整:

php artisan vendor:publish --tag=passport-migrations

2( 如果您已将HasApiTokens特性添加到用户模型中。您将能够访问这样的令牌:

$user->token()

或者,如果您需要所有令牌$user->tokens()。更多信息可以在护照文件中找到。

更新


您正试图访问UserResource上的令牌。这不包含token((。在创建这样的资源之前尝试访问令牌:

public function showprofile(Request $request)
{
$user = User::find($request->id);
$token = $user->token();
$user = new UserResource($user);
dd($token);
// return response ($user);
}

此外,我建议您使用路由模型绑定。这将使你的控制器更干净,因为你不需要自己查找模型,Laravel会自动为你做这件事。

最新更新