【问题标题】:Devise and OmniAuth for api为 api 设计和 OmniAuth
【发布时间】:2015-08-14 22:42:10
【问题描述】:

我有一个 Rails 网站,我在其中使用 deviseOmniAuth 进行身份验证(电子邮件 + 社交身份验证)。现在我想实现一个 api,作为我的 android 应用程序的后端。我想知道如何扩展我现有的身份验证系统,以便我可以为我的 android 用户提供与电子邮件和社交登录相同的身份验证功能?此外,一个人应该能够在 Web 和 Android 应用上使用相同的凭据登录。

【问题讨论】:

    标签: ruby-on-rails devise omniauth


    【解决方案1】:

    您需要在用户表中添加 api 令牌字段。

    每当android用户请求登录时,在成功匹配email和paasword后,将创建一个带有过期时间的API令牌。然后每次 API 令牌都必须与 android 请求一起发送。

    如果 API 令牌有效,请求将完成。

    为了区分您的请求,您可以在路由中使用命名空间,例如 /api/v1/login

    【讨论】:

    • 我已经添加了这个 auth_token 字段,我正在使用 gem simple_auth_token 来实现它。我关注这个博客来实现provoost.tumblr.com/post/80873086965/…。但是通过这样做,api的身份验证工作正常,但网站身份验证停止工作。
    • 根据您的建议,我为 api 使用了不同的命名空间,我实现的代码可在此处获得:github.com/lovishchoudhary/devisetest 使用这种方法,我的网站身份验证工作正常,但对于 api,只有 curl 的 sign_up 函数有效很好,但 sign_in 函数给出了错误。我还在这里stackoverflow.com/questions/32050423/… 提出了同样的问题,并提供了完整的详细信息。请看一下代码,让我知道我犯了什么错误
    猜你喜欢
    • 1970-01-01
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 2011-05-27
    • 2017-04-21
    • 2014-05-23
    相关资源
    最近更新 更多