在遵循 railscast (http://railscasts.com/episodes/235-omniauth-part-1) 之后,我在我的 rails3 应用程序中使用了设计和omniauth。
我可以登录,并且在我的数据库中看到 sign_in_count 列正在增加。
但是,whenuser_signed_in?总是返回 false,并current_user?返回 a no method error。
我看到其他答案说问题是由 rails.js 引起的,但我没有使用 rails.js。
我的控制器是
定义创建
omniauth = request.env["omniauth.auth"]
身份验证 = Authentication.find_by_provider_and_uid(omniauth['provider'],omniauth['uid'])
如果认证
sign_in_and_redirect(:user, authentication.user)
elsif 当前用户
current_user.authentications.create!(:provider => omniauth['provider'], :uid => omniauth['uid'])
重定向到 root_url
别的
用户 = User.new
user.apply_omniauth(omniauth)
如果 user.save(:validate => false)
登录(:用户,用户)
重定向到 root_url
别的
flash[:notice] = "创建帐户时出错"
重定向到 root_url
结尾
结尾
结尾