在Rails JSON API中使用Devise for Omniauth一次性代码流

时间:2014-11-12 23:15:21

标签: ruby-on-rails devise google-oauth omniauth json-api

我目前正在为Rails实施JSON API,以便为Android移动应用提供服务,这需要进行Google身份验证。

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

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

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

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

      

    INFO - omniauth:(google_oauth2)已启动回拨阶段。

  3. 作为参考,我使用Rails 4.1.6与Ruby 2.1.3和Devise 3.2.4。

    我非常感谢您的协助!

0 个答案:

没有答案