6

我目前正在为 Rails 实现 JSON API 以服务于需要 Google 身份验证的 Android 移动应用程序。

我希望的流程是 Google API OAuth2 的一次性代码流程(混合身份验证),如omniauth-google-oauth gem 中所述。简而言之,Android 应用程序从 Google 帐户的服务器获取一次性代码并将其交给 Rails API 操作,后者将其转换为访问令牌,然后使用它来获取用户的个人资料信息。

考虑到这一点,我对 Rails 中的 Devise omniauth 实现有两个问题:

  1. 我看到omniauth-google-oauth gem的文档中已经描述了Javascript的一次性代码客户端流程实现。但是,Devise 通过将用户重定向到新的注册页面来处理授权失败,并且回调阶段需要一组我没有文档记录的参数。Devise 是否支持这种类型的 JSON API 流?如果是这样,它应该如何处理?

  2. 我注意到有某种触发器启动了omniauth的回调阶段,如下所示。问题是,当我将omniauth 的path_prefix 更改为/users/auth/ 以外的其他内容时,当我向回调URL 发出POST 请求时,这不会触发。Devise/Omniauth 对此触发器使用什么标准?

    信息——omniauth:(google_oauth2)回调阶段已启动。

作为参考,我将 Rails 4.1.6 与 Ruby 2.1.3 和 Devise 3.2.4 一起使用。

我非常感谢您的帮助!

4

0 回答 0