Google OAuth2 请求中获取移动应用授权码的redirect_uri 到底是什么?

问题描述 投票:0回答:3

根据移动应用程序Googledocumentation,有一个名为

redirect_uri
的参数我不清楚。例如,在Google OAuth2的Web App流程中,流程是前端、后端和Google服务器之间的一些通信。事实上,后端准备了两个端点,一个用于重定向到 google auth 页面,该页面将由前端调用,另一个端点是
/oauth2callback
,它将由 google 服务器作为
redirect_uri
调用。

我的问题是,移动应用程序流程中的

redirect_uri
是什么?与我的后端一样吗
/oath2callback
或者移动应用程序流程不需要任何后端部分?


[注意]:

实际上,我将从移动端接收凭证内容,包括 access_token、refresh_token 等,并将其存储到后端并将其存储到数据库中,并用它来调用服务器端的 google API。


[更新]

这是我实现的流程:

flask oauth-2.0 google-api google-oauth
3个回答
0
投票

重定向uri实际上并没有区分是后端还是前端。

当您在 Google 中创建 authz 凭据时,您应该定义重定向方法和 uri 本身。这是谷歌从您链接的文档中建议的类型:

自定义 URI 方案(Android、iOS、UWP) 建议为 Android 应用程序、iOS 应用程序和通用 Windows 平台 (UWP) 应用程序使用自定义 URI 方案。

uri 方案告诉操作系统,当它看到匹配的 url 时,打开特定的应用程序(而不是浏览器)。

显然,如果您使用手机的网络浏览器进行流程,则无需担心自定义方案。这甚至是 native apps rfc 中的首选方法。


0
投票

我认为你想要实现的目标可以通过以下方式完成:

在移动应用程序上实现授权请求,并以重定向回您的应用程序的方式设置redirect_uri,即:使用您的应用程序声明该url。当您在应用程序中获取身份验证代码时,将该身份验证代码发送到后端,然后从后端执行令牌请求。这样,您将在后端拥有所有令牌。

流程是:

  1. 从移动应用程序到 OAuth 提供商(例如:Google)的授权请求。
  2. Google 使用 auth_code 响应您的移动应用程序。
  3. 将该 auth_code 发送到后端(这是您自己的令牌请求路由)。
  4. 使用auth_code在后端执行令牌请求并获取access_token和refresh_token - 在这里您可以存储它。
  5. 使用所需的令牌响应移动应用程序,以便它可以使用它进行身份验证/授权。

0
投票

你能告诉我我需要什么 OAuth 2.0 客户端 ID 类型吗? android/ios 应用程序或网络应用程序或两者。我需要在哪里使用redirect_uri?在 android/ios 应用程序或网络应用程序中?

© www.soinside.com 2019 - 2024. All rights reserved.