Azure 请求刷新令牌失败。在令牌存储中找不到刷新令牌

Azure 请求刷新令牌失败。在令牌存储中找不到刷新令牌,azure,authentication,azure-web-app-service,Azure,Authentication,Azure Web App Service,我正在尝试从应用服务中获取谷歌的刷新令牌,但我不能 日志说 2016-11-04T00:04:25 PID[500]详细接收请求:获取 2016-11-04T00:04:25 PID[500]详细下载OpenID配置 2016-11-04T00:04:25 PID[500]详细下载OpenID颁发者密钥 2016-11-04T00:04:25 PID[500]信息重定向: 2016-11-04T00:05:17 PID[500]详细接收请求:获取 2016-11-04T00:05:17 PID[

我正在尝试从应用服务中获取谷歌的刷新令牌,但我不能

日志说

2016-11-04T00:04:25 PID[500]详细接收请求:获取 2016-11-04T00:04:25 PID[500]详细下载OpenID配置

2016-11-04T00:04:25 PID[500]详细下载OpenID颁发者密钥

2016-11-04T00:04:25 PID[500]信息重定向:

2016-11-04T00:05:17 PID[500]详细接收请求:获取

2016-11-04T00:05:17 PID[500]详细调用外部HTTP端点POST

2016-11-04T00:05:18 PID[500]信息登录已完成'xxxxx@gmail.com'. 提供者:“谷歌”

2016-11-04T00:05:18 PID[500]详细编写“noteappsvr.azurewebsites.net”站点的“AppServiceAuthSession”cookie。长度:728

2016-11-04T00:05:18 PID[500]信息重定向:

2016-11-04T00:05:50 PID[500]详细接收请求:获取

2016-11-04T00:05:50 PID[500]详细JWT验证成功。主题:“sid:4fd4f6…”,颁发者:“”

2016-11-04T00:05:50 PID[500]警告sid:4fd4f6发出的刷新请求。。。失败,因为在令牌存储中找不到刷新令牌

2016-11-04T00:05:50 PID[500]信息发送响应:403.80禁止

令牌存储中似乎没有刷新令牌,但为什么?
我已经在门户上打开了令牌存储设置。

如果谷歌检测到它已经给了你的用户一个刷新令牌,那么它不会给你额外的刷新令牌,除非你明确提示用户同意。您可以通过向登录URL添加prompt=approve查询字符串参数来完成此操作。就你而言

试试这个,看看这是否会恢复Google刷新令牌

有关此行为的Google文档可在此处(HTTP/REST选项卡下)找到:

重要信息:当应用程序收到刷新令牌时,存储该刷新令牌以备将来使用非常重要。如果应用程序丢失了刷新令牌,则必须在获得另一个刷新令牌之前重新提示用户同意。如果需要重新提示用户同意,请在授权码请求中包含“提示”参数,并将值设置为“同意”


在正常使用中,刷新令牌不应丢失。如果你看到它确实丢失了,请告诉我。

如果谷歌检测到它已经给了你的用户一个刷新令牌,那么它不会给你额外的刷新令牌,除非你明确提示用户同意。您可以通过向登录URL添加prompt=approve查询字符串参数来完成此操作。就你而言

试试这个,看看这是否会恢复Google刷新令牌

有关此行为的Google文档可在此处(HTTP/REST选项卡下)找到:

重要信息:当应用程序收到刷新令牌时,存储该刷新令牌以备将来使用非常重要。如果应用程序丢失了刷新令牌,则必须在获得另一个刷新令牌之前重新提示用户同意。如果需要重新提示用户同意,请在授权码请求中包含“提示”参数,并将值设置为“同意”


在正常使用中,刷新令牌不应丢失。如果您看到的是丢失的案例,请告诉我。

感谢您的回复,我可以通过添加prompt=consent参数再次收到刷新令牌。感谢您的回复,我可以通过添加prompt=consent参数再次收到刷新令牌。但不建议总是添加此参数?在实际使用中,首先敦促用户使用dialog登录,然后多次使用刷新令牌。如果刷新令牌过期,则再次显示登录对话框。一开始添加该参数似乎没有问题。不是吗?我建议您按照以前的方式执行正常的登录和刷新流程。如果刷新失败,并且代码检测到没有刷新令牌,那么您可能可以调用prompt=approve重新创建刷新令牌。感谢您的响应,我可以通过添加prompt=approve参数再次接收刷新令牌。感谢您的响应,我可以通过添加prompt=approve参数再次接收刷新令牌。但不建议总是添加此参数?在实际使用中,首先敦促用户使用dialog登录,然后多次使用刷新令牌。如果刷新令牌过期,则再次显示登录对话框。一开始添加该参数似乎没有问题。不是吗?我建议您按照以前的方式执行正常的登录和刷新流程。如果刷新失败,并且代码检测到没有刷新令牌,那么您可能可以调用prompt=approve来重新创建刷新令牌。