繁体   English   中英

谷歌 OAuth2 请求中的 redirect_uri 究竟是什么,用于在移动应用中获取授权码?

[英]What exactly is redirect_uri in Google OAuth2 request for getting authorization code in Mobile App?

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

我的问题是,移动应用流程中的redirect_uri是什么? 我的后端/oath2callback是否相同或移动应用程序流不需要任何后端部分?


[笔记]:

实际上,我将从移动端接收凭证内容,包括 access_token、refresh_token 等,并将其存储到 db 中,并用于在服务器端调用 google API。


[更新]

这是我实现的流程:

在此处输入图像描述

重定向 uri 实际上不区分它是后端还是前端。

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

Custom URI scheme (Android, iOS, UWP) A custom URI scheme is recommended for Android apps, iOS apps, and Universal Windows Platform (UWP) apps.

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

显然,如果您使用手机的web浏览器进行流量,那么您不必担心自定义方案。 这甚至是本机应用程序 rfc中的首选方法。

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

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

流程是:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM