我目前正在开发一个API并且已经打了一堵砖墙.我正在使用带有"密码"授权类型的Passport.
我想用访问令牌返回用户信息,但是,我不知道如何.
我可以实现,编辑或扩展哪个类来获取它?
我想要退回:
{
"token_type": "Bearer",
"expires_in": 31536000,
"access_token": "lalalalalal",
"refresh_token": "lalalallala",
"user": {
"username": "a username",
"user_type": "admin"
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
尝试使用Laravel的Passport与移动客户端相处.密码授权类型的身份验证似乎是要走的路,我让它与我的iOS应用程序一起工作,但是我无法让令牌刷新工作.
在进行身份验证时,我会获得一个token和refresh token我存储的内容,但是当令牌过期时,调用该oauth/token/refresh路由不起作用.该路由使用web中间件,这意味着我的app使用api路由无法访问它.我不确定他们是否打算让移动客户永远不刷新,或者他们是否希望你自己刷新?如果有人了解这应该如何工作,那就太好了.
我正在使用lumen-passport进行身份验证和授权。当我解码 JWT 令牌时,我得到的有效负载如下:
{
"aud": "9420abb1-1470-4895-8666-a702b415cb59",
"jti": "03b55ab9d73953207a7e568657a1f83a9c5dcc0162b43fe4816c6086d30d4002b9bd74604ba99ea6",
"iat": 1635781614.447866,
"nbf": 1635781614.447872,
"exp": 1635783414.409659,
"sub": "1b910fc7-54bc-44ef-885b-869b2a095c11",
"scopes": []
}
Run Code Online (Sandbox Code Playgroud)
sub是用户uuid。我想传递自定义数据以及sub如下所示。
{
"aud": "9420abb1-1470-4895-8666-a702b415cb59",
"jti": "03b55ab9d73953207a7e568657a1f83a9c5dcc0162b43fe4816c6086d30d4002b9bd74604ba99ea6",
"iat": 1635781614.447866,
"nbf": 1635781614.447872,
"exp": 1635783414.409659,
"sub": "1b910fc7-54bc-44ef-885b-869b2a095c11",
"custom_data": "this is a custom data.",
"scopes": []
}
Run Code Online (Sandbox Code Playgroud)
我如何在dusterio/lumen-passport或laravel/passport中实现这一点?
我生成令牌如下:
public function authenticateWithPassword(
ServerRequestInterface $request,
string $email,
string $password,
string $scope = ''
): Response {
$newBody = [
'grant_type' => 'password',
'client_id' => $this->clientId,
'client_secret' => …Run Code Online (Sandbox Code Playgroud)