【问题标题】:Authenticate on an 'access code' using Devise in Rails 3在 Rails 3 中使用 Devise 对“访问代码”进行身份验证
【发布时间】:2011-06-11 22:54:48
【问题描述】:

我正在从事一个 Rails 项目,建议我使用 Devise 进行身份验证和用户会话管理。

我有两种用户类型需要用户/密码身份验证,另一种用户类型我只需要使用“access_code”进行身份验证。它们是不同的模型,没有继承关系。

在 Devise 中执行此操作的最佳方法是什么?有没有办法让所有这些不同的身份验证类型同时工作?

我已经考虑过允许用户使用用户名或电子邮件地址登录,但我将如何只使用一个字段来进行呢?不涉及密码。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 authentication devise


    【解决方案1】:

    使用没有数据库的令牌认证模块。在 Devise Wiki 中有一个 example

    这些令牌与您在密码恢复电子邮件中找到的令牌不同,它们是永久性的并存储在数据库中。默认情况下,它们的行为类似于服务 API 密钥,这意味着它们不会使用户保持会话状态,并且需要在每个请求中提供。

    让他们真正让用户登录:

    # If true, authentication through token does not store user in session and needs
    # to be supplied on each request. Useful if you are using the token as API token.
    config.stateless_token = false
    

    【讨论】:

    • 这不需要设置现有的用户名/密码系统吗?而且这似乎是暂时的(例如注册)。永久身份验证方法是否可行?
    • @Peter,只有database_authenticatable 模块需要密码才能进行身份验证。使用令牌身份验证,令牌就像服务的 API 密钥。成员可以通过在GETPOST 中提供?#{token_authentication_key}=access_token 参数来“登录”。
    猜你喜欢
    • 2014-01-04
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    相关资源
    最近更新 更多