0

我执行此问题中描述的步骤:

Laravel 的 5.3 护照和 api 路由

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

然后在 AuthServiceProvider 上添加这个命令

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

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

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

响应成功

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

我尝试将令牌生命周期刷新到一天发送到{{url}}/oauth/token

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

在邮递员中我发送

标题:

授权:承载 {{access_token}}

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

预期的反应:

{
"access_token": {{new access_token}}
"token_type": 'Bearer'
"expires_in": 86400
"refresh_token": {{new access_token}}
}

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

{
"access_token": {{new access_token}}
"token_type": 'Bearer'
"expires_in": 120
"refresh_token": {{new access_token}}
}

4

3 回答 3

2

因为您正在access_token使用refresh_token. 所以它显示了access_token这一行设置的过期时间,即 2 分钟:

Passport::tokensExpireIn(Carbon::now()->addMinute(2));
于 2017-01-02T13:18:21.493 回答
1

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

于 2017-01-09T10:31:00.307 回答
1
 public function boot()
    {
        $this->registerPolicies();
        Passport::routes();
        Passport::tokensExpireIn(now()->addDays(1));
        Passport::refreshTokensExpireIn(now()->addDays(1));
        Passport::personalAccessTokensExpireIn(now()->addMonths(6));

    }
于 2019-12-31T17:01:39.380 回答