移动应用程序上的三脚oauth流量

Ven*_* D. 5 mobile ruby-on-rails oauth oauth-2.0 swift

我有一个三脚auth流程在我的网络应用程序上工作.它如下:

  • 使用点击与Google相关联
  • 他们接受Google提供的OAuth对话框
  • 该页面将重定向到我的后端的/ oauth/google端点,并带有一个代码参数,我发送给Google以获取refresh_token,以便我可以代表他们访问数据(如日历信息)
  • 我重定向回Web应用程序,在URL中传递我自己的JWT令牌.
  • 每当Web应用程序发出像api.mybackend.com/me这样的请求时,他们都会使用我提供的JWT令牌

我正试图在移动应用程序中完成类似的事情.这样做的可接受方式是什么?几乎是相同的逻辑吗?

如果它有帮助,我的后端是Ruby on Rails,我正在Swift中编写移动应用程序.

谢谢!

btm*_*lis 3

如果您使用 NSURLSession 发出 HTTP 请求,请参阅此内容以获取有关处理重定向的信息。

Google 还提供了一些适用于 iOS 和 Android 的预构建 Google 登录包,您可以将其包含在应用程序中,类似于 Web 客户端中的包。但我从未使用过它们,所以我不知道它们到底如何与您的应用程序集成。

或者,您可以在后端设置一个身份验证端点来处理整个事情,应用程序仅向您的服务器发出一个请求,而您的服务器则处理与 Google 的通信。例如,您可以让用户向 /oauth/mobile 提交请求。然后,服务器向 Google 提交身份验证请求并获取访问令牌和刷新令牌。然后您可以从服务器返回您自己的应用程序的令牌。Google 有一些可能相关的有关服务器端应用程序 Google 登录的文档。