优步OAuth2:刷新令牌调用返回invalid_grant错误

时间:2016-12-08 23:35:58

标签: api oauth uber-api

优步OAuth2刷新令牌调用会返回以下错误:

invalid_grant
  

invalid_grant提供的授权许可(例如,授权   代码,资源所有者凭据)或刷新令牌无效,   已过期,已撤销,与中使用的重定向URI不匹配   授权请求,或已发给其他客户。

重定向URI,刷新令牌,客户端ID未更改。除了先前刷新尝试中断的网络问题或服务器问题之外,还有什么可能导致此错误?

我从另一篇文章中读到以下内容。这是真的吗?

  

您将获得" invalid_grant"如果您尝试刷新时出错   令牌没有过期。

在浏览Uber OAuth2登录页面后,浏览器一直存储登录cookie,因此将其应用于后续的OAuth2尝试,这导致服务器使用与其他用户关联的旧cookie。优步登录。这导致服务器为那些较旧的Uber登录生成新的访问权限和刷新令牌(即使它们没有像其他用户那样使用),使原始刷新令牌无效。

处理这种边缘情况的正确方法是双重的。首先,您希望在用户完成计算机后尽快清除Uber登录cookie。其次,每当你获得OAuth2令牌时,它应检查现有的凭证(通过匹配Uber driver_id进行检查,例如),并使用新获得的访问/刷新令牌更新这些凭证 - 这样即使发生此事件,您也会自动更新新的令牌。

1 个答案:

答案 0 :(得分:0)

可能的问题是刷新令牌无效。在发出新的访问令牌时,刷新令牌会失效,因此您需要始终保留最新的刷新令牌。授权新的访问令牌,然后使用最新的刷新令牌重试。