我执行本问题中描述的步骤:
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}}
}
public function boot()
{
$this->registerPolicies();
Passport::routes();
Passport::tokensExpireIn(now()->addDays(1));
Passport::refreshTokensExpireIn(now()->addDays(1));
Passport::personalAccessTokensExpireIn(now()->addMonths(6));
}
另外,您应该从oauth_clients表发送客户机id(id字段整数)。。。不是你客户的电子邮件地址
因为您正在使用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