ruby-on-rails - 如何使用具有多字段的 ruby​​cas-server 对用户进行身份验证?

标签 ruby-on-rails ruby single-sign-on rubycas-server

我用了rubycas-server构建一个sso系统,使用devise来做用户的系统,但现在我的问题是,rubycas-server只有一个字段,如“电子邮件”,我想使用“电子邮件”/“电话”/“昵称”进行用户登录。 wiki 中没有更多信息

authenticator:
 class: CASServer::Authenticators::SQLBcrypt
 database:
   adapter: mysql2
   database: xxxx
   username: root
   password: xxxx
   host: localhost
 user_table: users
 username_column: email # tel/nickname
 password_column: encrypted_password

抱歉我的英语不好!帮助我,非常感谢!

最佳答案

恐怕这不可能。官方可以看到repository ,此身份验证器仅将给定的列名与用户名匹配:

  def matching_users
    results = user_model.find(:all, :conditions => ["#{username_column} = ?", @username])
    results.select { |user| BCrypt::Password.new(user.send(password_column.to_sym)) == @password }
  end

对于您的情况,最好的办法是编写与 email/tel/nickname 匹配的自定义身份验证器。不过,这是非常难用的登录名,请考虑一些对用户更友好的名称。

关于ruby-on-rails - 如何使用具有多字段的 ruby​​cas-server 对用户进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26837521/

相关文章:

ruby-on-rails - Amazon s3/Cloudfront Ruby on rails 视频流

ruby-on-rails - Rails ActionView::Template::Error 未定义方法 `count' 解析器

asp.net-mvc - ADFS 2.0 Windows 2008 R2 Web API

ruby-on-rails - Time.now.to_i 在 heroku 和本地不同

ruby-on-rails - 在 Rails 3 中为 ajax 与 html 请求呈现不同的操作

ruby-on-rails - 将 Oulook/Exchange 任务与基于 Linux 的 Rails 集成

ruby-on-rails - rails : Initialization Code for Redis: Where to put?

ruby-on-rails - 尝试安装最新的 Rails 更新,但 excomf.rb 失败,这对编程来说很新

c# - 运行 SQL 语句时出现页面 404,然后重定向

java - 具有多个 Web 应用程序的 CAS SSO