Jac*_*chi 1 php token jwt laravel laravel-passport
我试图找到该方法返回的令牌$user->createToken('MyApp')->accessToken;
存储在数据库中的位置,但似乎找不到。它首先存储在服务器中吗?如果是这样,在哪里?
如果由于它是独立的而未存储在服务器上,那么Laravel的开发人员为什么要进行$table->rememberToken();
默认create_users_table.php
迁移?专栏的目的是remember_token
什么?
谢谢您的帮助。
我猜您可以说令牌的某些部分存储在数据库中。
返回的令牌是JWT(JSON Web令牌)。在其中编码的是关于令牌的信息,例如令牌的到期时间,用于对其进行哈希处理的算法,令牌作用域及其ID(在有效负载中称为jti
)。该ID是oauth_access_tokens
表中存储的ID 。
在\Laravel\Passport\PersonalAccessTokenFactory::findAccessToken
该类的此方法中,您可以看到Laravel如何检查令牌是否在数据库中:
/**
* Get the access token instance for the parsed response.
*
* @param array $response
* @return Token
*/
protected function findAccessToken(array $response)
{
return $this->tokens->find(
$this->jwt->parse($response['access_token'])->getClaim('jti')
);
}
Run Code Online (Sandbox Code Playgroud)
如果您获得有效的令牌并将其粘贴到此在线工具中,您将看到它的结构。外观如下:
现在,知道了有效载荷的预期格式,如果您稍微了解一下此信息以及您所拥有的数据oauth_access_tokens
(ID,范围,创建和到期日期),就应该能够创建有效的令牌。
归档时间: |
|
查看次数: |
2458 次 |
最近记录: |