当前位置: 首页 > 知识库问答 >
问题:

Passport密码授权令牌刷新

须巴英
2023-03-14

执行本问题中描述的步骤:

Laravel的5.3护照和api路由

从api的路径来看,一切都很好,我可以注册新用户,读取他们的数据等等。

然后在AuthServiceProvider上添加此命令

护照::代币ExpireIn(碳::现在()-

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

正文:application/x-www-form-urlencoded
{
授权类型:{password'
客户端id:{{用户注册的电子邮件}}
客户端机密:{{从移动应用程序生成客户端机密}
用户名:{用户注册的电子邮件}
密码:{用户输入的密码}
范围:{br>}

反应是成功的

{
“令牌类型”:“承载者”
“到期于”:120
“访问令牌”:{{访问令牌}
“刷新令牌”:{{刷新令牌}
}

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

我派邮递员去

标题:

授权:承载{{访问令牌}

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

预期的答复:

{
"access_token":{{新access_token}}
"token_type":"承载"
"expires_in": 86400
"refresh_token":{{新access_token}}
}

但它并没有像预期的那样起作用,其反应是

{
"access_token":{{新access_token}}
"token_type":'承载'
"expires_in": 120
"refresh_token":{{新access_token}}
}

共有3个答案

王长卿
2023-03-14
 public function boot()
    {
        $this->registerPolicies();
        Passport::routes();
        Passport::tokensExpireIn(now()->addDays(1));
        Passport::refreshTokensExpireIn(now()->addDays(1));
        Passport::personalAccessTokensExpireIn(now()->addMonths(6));

    }
姬昀
2023-03-14

另外,您应该从oauth_clients表发送客户机id(id字段整数)。。。不是你客户的电子邮件地址

左丘善
2023-03-14

因为您正在使用refresh\u-token生成access\u-token。因此,它显示了访问\u令牌的过期时间,即由此行设置的2分钟:

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

 类似资料:
  • 如果我有一个带有Laravel后端的单页web应用程序,那么我最好的身份验证选择似乎是Passport,它具有密码授权身份验证流。在Passport中,返回一个访问令牌和一个刷新令牌。 为了安全起见,我想发布一个短期访问令牌,并在它过期时刷新它。然而,关于在Javascript应用程序中使用OAuth的所有可用信息都说“不要让前端访问您的刷新令牌”,因为它寿命很长,其他人可以使用它来生成新的访问令

  • 登录时我总是得到无效的授权类型。我使用的是Laravel 7和passport 8.4。 我可以确认,我创建的client_secret没有错误运行php artisan护照:安装,但我找不到任何可能性,为什么获取访问令牌和刷新令牌不工作。 我使用自定义用户提供商,正确地设置在配置,我注意到如果我改变grant_typeclient_credentials它将只是工作,但没有刷新令牌,我想要什么。

  • 我想我获得了使用授权代码授予类型的OAuth2流。资源所有者登录到服务器,然后使用授权代码重定向到客户端。然后客户端使用授权代码向授权服务器查询访问令牌和刷新令牌。这就是我困惑的地方。 当访问令牌过期时,客户端应该使用授权码还是刷新令牌来获取新的访问令牌?如果您有授权代码,为什么要使用刷新令牌? 注:我并不是在找一个回答说“刷新令牌是可选的”,因为我正在为amazon-alexa编写这个服务器,这

  • 我正在努力了解如何使用带有电子邮件和密码的Laravel Passport。 我知道我不该储存client_id 还阅读了如何使用带有密码授权令牌的Laravel Passport?但对于我来说,如何以及是否有可能刷新令牌并没有明确的答案。 谢谢你的帮助!

  • 下面是我使用的命令。 在融合表中上传数据 curl-s-s--data-binary“input_csv_file”-h“授权:承载ACCESS_TOKEN_FROM_PLAYGROUNDLINK”-h“内容-类型:application/octet-stream”https://www.googleapis.com/upload/fusiontables/v1/tables/fusion_tab

  • 我能够获得此访问令牌,但是,当我试图获得刷新令牌时,我得到一个错误。 在这一刻,我正在测试这个使用邮递员。 我正在做以下工作: null null null null null