【发布时间】:2019-08-11 16:16:09
【问题描述】:
我对 Laravel Passport 以及管理 api access_tokens 的最佳方式有疑问。
目前我们有:
- 由
grant_type: password发出且没有范围的令牌:$data = [ 'grant_type' => 'password', 'client_id' => $client_id, 'client_secret' => $client_secret, 'username' => $user->email, 'password' => $user->password, 'scope' => '', ]; - 一个仅用于查看用户图片的令牌,方法如下:
$token = $user->createToken('User Picture token', ['view-picture'])->accessToken;
grant_type: password发布的第一个令牌将仅用于获取个人用户信息。
这是一个好习惯吗?
我们希望限制对资源的访问,如下所示: 一种“消息”资源,包含对其访问令牌的 CRUD 操作,具有特定范围。
所以我们希望每个资源由不同的令牌和不同的范围保护。
个人 access_token 是用来做的吗?
编辑 1:
为了管理用户权限,我们使用 Laravel 的 Gates & Policies。
【问题讨论】:
-
也许你可以使用像spatie/laravel-permission 这样的包来处理你的 Laravel 应用程序中的权限?你到底需要令牌做什么?
-
@DeesOomens 感谢您的回复,我需要令牌来验证用户,但有时令牌会传递给 DOM,就像这样:
<img src="https://domain/picture?token=eyaehzaoe" /> -
在我们的应用中,我们已经使用 laravel 的 Gates & Policies 来管理用户权限