首页 文章

Passport密码授予令牌刷新

提问于
浏览
0

我执行本课程中描述的步骤:

Laravel's 5.3 passport and api routes

从api的路线一切正常,我可以注册新用户,阅读他们的数据等 .

然后在AuthServiceProvider上添加此命令

Passport :: tokensExpireIn(Carbon :: now() - > addMinute(2));护照:: refreshTokensExpireIn(碳::现在() - > addDays(1));

我在url {}/oauth/token 登录邮递员

正文:application / x-www-form-urlencoded {grant_type:'password'client_id:{{用户注册的电子邮件}} client_secret:{{从移动应用程序生成客户端密码}}用户名:{{email用户注册的用户}}密码:{{用户输入的密码}}范围:''}

它的成功回应

{“token_type”:“Bearer”“expires_in”:120“access_token”:{}“refresh_token”:{}}

我尝试刷新令牌生命时间到一天发送到 {}/oauth/token

ref => https://laravel.com/docs/5.3/passport#refreshing-tokens

在邮递员我发送

头:

授权:持票人{}正文:application / x-www-form-urlencoded {client_secret:{{从移动应用程序生成客户端密码}} grant_type:refresh_token refresh_token:{} client_id:{ {用户注册的电子邮件}}范围:''}

预期的回应:

{“access_token”:{}“token_type”:'Bearer'“expires_in”:86400“refresh_token”:{}}

但它没有按预期工作,响应它

{“access_token”:{}“token_type”:'Bearer'“expires_in”:120“refresh_token”:{}}

2 回答

  • 0

    因为您正在使用 refresh_token 生成 access_token . 因此它显示 access_token 的到期时间,即2分钟,由此行设置:

    Passport::tokensExpireIn(Carbon::now()->addMinute(2));
    
  • 1

    此外,您应该从oauth_clients表中发送客户端ID(id字段整数)...而不是您的客户端电子邮件地址

相关问题