gpt4 book ai didi

android - 移动应用程序中的 Uber OAuth 最佳实践

转载 作者:可可西里 更新时间:2023-11-01 05:51:08 26 4
gpt4 key购买 nike

我想制作一个代表用户发出请求的移动应用程序。我了解以下 OAuth 流程:

  1. 在 Web View 中打开用户以授予我的应用访问权限以代表他们发出请求
  2. 当他们点击授予访问权限时,我的服务器端应用程序将收到一个带有授权代码的调用
  3. 然后我的服务器端应用程序需要为访问 token 交换授权码

我的困惑始于第 2 步。Uber 使用授权代码向我的端点发出请求,但我无法知道该授权属于哪个用户。我可以将其交换为访问 token 并将其存储在数据库中 30 天,但我无法将其取回给用户用于发出请求。

一个想法是我可以让用户使用电子邮件地址登录我的应用程序,然后我可以将其用作 key 以从我的服务器应用程序获取适当的访问 token ,但我无法将访问 token 与首先是我的数据库表中的电子邮件地址。

我想知道这里有哪些最佳实践。我的移动应用程序应该如何知道给定用户使用什么访问 token ?

(我直接联系了 Uber API 支持,但他们让我打开一个 StackOverflow 问题)

最佳答案

显然,这是一个广泛的问题,在很大程度上取决于您正在构建的应用类型、您希望用户流程是什么样子等等,但我会尽力为您指出正确的方向。

首先,Uber API 具有/v1/me 端点,它将返回用户的名字、姓氏和电子邮件地址等信息。因此,一种可能的流程是用户打开您的应用程序,然后他们通过整个 OAuth 流程,一旦您将授权代码交换为访问 token ,您立即使用它(从服务器)调用/v1/me 端点,然后使用用户电子邮件地址或 UUID 作为数据库中的键。如果您使用电子邮件地址,您可以只允许用户使用相同的电子邮件地址登录您的应用程序,并允许帐户创建过程只是 OAuth 流程。

我不是移动开发人员,但我对嵌入式 Web View 的理解是它们可以像任何其他浏览器一样使用 cookie。在这种情况下,您可以使用的另一件事是 session /cookie。假设您有某种类型的现有用户标识符,您可以将其添加为您的网络服务器的 cookie,然后当您的用户使用授权代码重定向到您的网络服务器时,附加的 cookie 将告诉您要关联哪个用户访问 token 。

最后,Uber 开发者平台在 OAuth 流程的授权阶段包含一个状态参数,如此处所示 https://developer.uber.com/docs/authentication您可以执行与我在上一段中描述的类似的操作,除了您可以将用户标识符存储在 state 参数中,并在用户重定向时将其发送回给您,而不是使用 cookie。您可以使用该信息将访问 token 绑定(bind)回数据库中的特定用户。

希望对您有所帮助!如果您仍然感到困惑,请随时联系我们。

干杯!

关于android - 移动应用程序中的 Uber OAuth 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35262550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com