我执行本课题中描述的步骤:
Laravel's 5.3 passport and api routes
从api的路线一切正常,我可以注册新用户,阅读他们的数据等。
然后在AuthServiceProvider
上添加此命令护照:: tokensExpireIn(碳::现在() - > addMinute(2)); 护照:: refreshTokensExpireIn(碳::现在() - > addDays(1));
我在邮局中登录网址 {{url}} / oauth / token
正文:application / x-www-form-urlencoded
{
grant_type:'密码'
client_id:{{用户注册的电子邮件}}
client_secret:{{从移动应用程序生成客户端密码}}
用户名:{{用户注册的电子邮件}}
密码:{{用户输入的密码}}
范围:'' }
成功的回应
{
“token_type”:“持票人”
“expires_in”:120
“access_token”:{{access_token}}
“refresh_token”:{{the refresh_token}}
}
我尝试将令牌续航时间刷新为一天发送到 {{url}} / oauth / token
邮递员发送
接头:
授权:持票人{{access_token}}
正文:application / x-www-form-urlencoded
{
client_secret:{{从移动应用程序生成客户端密码}}
grant_type:refresh_token
refresh_token:{{the refresh_token}}
client_id:{{用户注册的电子邮件}}
范围:'' }
预期的回应:
{
“access_token”:{{new access_token}}
“token_type”:'持票人' “expires_in”:86400
“refresh_token”:{{new access_token}}
}
但它没有按预期工作,响应是
{
“access_token”:{{new access_token}}
“token_type”:'持票人' “expires_in”:120
“refresh_token”:{{new access_token}}
}
答案 0 :(得分:2)
因为您使用access_token
生成refresh_token
。因此它显示access_token
的到期时间,即2分钟,由此行设置:
Passport::tokensExpireIn(Carbon::now()->addMinute(2));
答案 1 :(得分:1)
此外,您应该从oauth_clients表中发送客户端ID(id字段整数)...而不是您的客户电子邮件地址
答案 2 :(得分:0)
public function boot()
{
$this->registerPolicies();
Passport::routes();
Passport::tokensExpireIn(now()->addDays(1));
Passport::refreshTokensExpireIn(now()->addDays(1));
Passport::personalAccessTokensExpireIn(now()->addMonths(6));
}