我目前正在为Rails实施JSON API,以便为Android移动应用提供服务,这需要进行Google身份验证。
我希望的流程是Google API OAuth2的一次性代码流(混合身份验证),如omniauth-google-oauth gem中所述。简而言之,Android应用从Google帐户的服务器获取一次性代码并将其交给Rails API操作,该操作将其转换为访问令牌,然后使用它来获取用户的个人资料信息。
考虑到这一点,我有两个关于Rails中的Devise omniauth实现的问题:
我看到Javascript的一次性代码客户端流程实现已在omniauth-google-oauth gem的文档中描述。但是,Devise通过将用户重定向到新的注册页面来处理授权失败,并且回调阶段需要一组我没有文档的参数。 Devise是否支持JSON API的此类流程?如果是这样,应该如何处理?
我注意到有一种触发器可以启动omniauth的回调阶段,如下所示。问题是,当我将omniauth的path_prefix更改为/ users / auth /的其他内容时,当我对回调URL发出POST请求时,不会触发此操作。 Devise / Omniauth使用此触发器的标准是什么?
INFO - omniauth:(google_oauth2)已启动回拨阶段。
作为参考,我使用Rails 4.1.6与Ruby 2.1.3和Devise 3.2.4。
我非常感谢您的协助!