当Android应用程序获取Web后端的脱机访问权限时,如何处理redirect_uri_mismatch错误?

我想实现这个问题中描述的流程:

Authenticating with OAuth2 for an app *and* a website

这个要求的Google解决方案在这里被描述:

https://developers.google.com/identity/protocols/CrossClientAuth#offlineAccess

我遵循本指南,但不幸的是,当我在后端使用授权码来访问令牌并从谷歌刷新令牌时,google抛出此错误:

{
  "error": "invalid_request",
  "error_description": "Missing parameter: redirect_uri"
}

redirect_uri对于这种情况没有意义,因为客户端是android.

还有一些建议,他们说使用“postmessage”作为重定向uri或使用http://localhost作为重定向uri或添加服务器地址在重定向URI在您的谷歌应用程序控制台,但没有一个适用于此流程.

我花费了很多时间来解决这个问题,而这个工具(https://developers.google.com/oauthplayground)已经由谷歌提供,让我更加想念主角,因为它是为主要的web流设计的,并且这个工具生成的访问令牌是不同的,需要重定向uri. (即使使用承载令牌类型并使用客户端ID和密码)
毕竟我用户空字符串(“”)作为重定向网址,最后我成功通过服务器端访问令牌.
翻译自:https://stackoverflow.com/questions/30194644/how-to-handle-redirect-uri-mismatch-error-when-android-app-obtains-offline-acces

转载注明原文:当Android应用程序获取Web后端的脱机访问权限时,如何处理redirect_uri_mismatch错误?