我正在关注教程:http://railscasts.com/episodes/235-omniauth-part-1?autoplay=true
我有自己的登录和退出流程。但是,当我尝试验证Twitter登录时,我有
AuthenticationsController中的NoMethodError #create
undefined method `authentications' for nil:NilClass
app/controllers/authentications_controller.rb:8:in `create'
我的路线是:
match '/auth/:provider/callback', to: 'authentications#create'
在我的身份验证控制器中,create方法是:
def create
auth = request.env["omniauth.auth"]
current_user.authentications.create(:provider => auth[:provider], :uid => auth[:uid])
flash[:notice] = "Success"
redirect_to authentications_url
end
我不知道是什么问题:/
如果你能帮助我,那将是很棒的。
感谢。
答案 0 :(得分:0)
我已经找到了问题所在。由于我没有登录系统,因此current_user为null,因此它会出错。
+
现在我写了我的所有经验并制作了一个源代码教程,它提供了Facebook和Twitter的多重身份验证: http://www.orhancanceylan.com/rails-twitter-and-facebook-authentications-with-omniauth-and-devise/