为了在 Laravel Sanctum 中创建访问令牌,需要在createToken
方法。我觉得这很奇怪,因为您传入的任何内容都会使用 SHA-256 进行哈希处理,或者您可以获取纯文本令牌。
为什么访问令牌不是基于随机字符串创建的?它可以很容易地完成Str::random(10)
例如。我不太确定该用什么名字。
您传递给 createToken 的字符串是令牌名称。
虽然您可能不需要它,但在某些用例中它会很有用。
例如,如果您可能有两种不同类型的令牌,一种用于网络,一种用于移动应用程序,并且每种类型都有不同的到期时间,则您可以将每种类型分组到特定名称下,例如“web-token”和“mobile” -令牌'。
不是每个人都需要该功能,但拥有它是件好事,但你永远不知道什么时候会需要它。
如果你想自动生成一个随机名称,你可以简单地覆盖 createToken 方法来生成一个随机字符串,如下所示:
打开 app/User.php 并粘贴以下方法。
public function createToken(array $abilities = ['*'])
{
$token = $this->tokens()->create([
'name' => Str::random(10),
'token' => hash('sha256', $plainTextToken = Str::random(80)),
'abilities' => $abilities,
]);
return new NewAccessToken($token, $token->id.'|'.$plainTextToken);
}
这尚未经过测试,但应该可以工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)