我正在尝试使用设计用于我的网站的用户身份验证。 它使用现有的用户表。
该表具有用户名和密码,但是当我尝试登录时,出现以下错误:
在90ms内完成401未经授权。
日志:
Started POST "/users/sign_in" for 127.0.0.1 at 2013-06-06 15:50:01 +0530
Processing by Devise::SessionsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"+uKE28LrkWW71EHeasDSDCENQogAGODfBc3ZJJLyi9U=", "user"=>{"email"=>"admin@abc.com", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign in"}
User Load (0.1ms) SELECT `users`.* FROM `users` WHERE `users`.`email` = 'admin@abc.com' LIMIT 1
Completed 401 Unauthorized in 90ms
Processing by Devise::SessionsController#new as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"+uKE28LrkWW71EHeasDSDCENQogAGODfBc3ZJJLyi9U=", "user"=>{"email"=>"admin@abc.com", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign in"}
答案 0 :(得分:1)
它解决了! 我在configs / initializers / devise.rb中更改了rails项目的加密密钥。
Rails版本:3.2.13 设计版本:2.04
答案 1 :(得分:0)
我只是遇到了这个确切的问题,但仅限于生产(使用rails 4和设计3)。
解决方案是在config / initializers / session_store.rb文件中添加域声明,如下所示:
YourAppName::Application.config.session_store :cookie_store, key: '_your_session', domain: {
production: 'prpoduction_domain',
development: 'development_domain'
}.fetch(Rails.env.to_sym, :all)
尽管最初由于向应用程序添加子域而更改了这一点很重要。