【问题标题】:Rails 3- Devise - Authentication via web serviceRails 3- 设计 - 通过 Web 服务进行身份验证
【发布时间】:2012-01-05 13:02:38
【问题描述】:

我需要在 RoR 3 中实现登录 Web 服务。 我将 Devise 应用到用户模型并添加了一些字段。

我想做的是: 1- 客户端执行 REST 服务,发送用户和密码。 2- 服务器对其进行身份验证(使用 User 表中的 encrypted_pa​​ssword 字段)并返回具有过期时间的访问令牌 3- 客户端在他执行的所有服务中发送该访问令牌,如果令牌未过期,则服务器将无错误地发送响应。

我如何使用 Devise 来实现这个方案。我已经将设计应用于用户模型。

谢谢!

【问题讨论】:

标签: ruby-on-rails ruby rest ruby-on-rails-3.1 devise


【解决方案1】:

Devise 并没有开箱即用。

Devise 可以处理初始身份验证,例如取消注释以允许对电子邮件/密码进行基本身份验证。

# config/initializers/devise.rb
config.http_authenticatable = true

发送和存储访问令牌是您必须在家做饭的事情,据我所知,Devise 不会做这样的事情。也许是属于用户的令牌模型?

您可以创建一个自定义 Warden 策略来通过您的令牌进行身份验证,在 devise.rb 的底部有一个如何工作的示例。

谈论身份验证令牌让我想到了 Oauth,它比您想象的要复杂得多,但具有作为某种标准的优势。如果您对该路线感到好奇,我会查看:https://github.com/nov/rack-oauth2

【讨论】:

    【解决方案2】:

    答案是:Devise 不是为此目的而设计的。

    【讨论】:

      猜你喜欢
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 2013-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多