在遵循 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 结尾 结尾 结尾