我正在尝试为我当前的设计系统添加身份验证控制器,以便通过 facebook 和 twitter 提供多个登录。为此,我正在关注本教程:http ://railscasts.com/episodes/236-omniauth-part-2
我的问题是,对于尚未注册并尝试在 Twitter 上注册的人。所以我需要为此创建用户和身份验证。
我的代码如下:
user = User.new
token = omni['credentials'].token
token_secret = omni['credentials'].secret
user.provider = omni.provider
user.uid = omni.uid
user.authentications.build(:provider => omni['provider'], :uid => omni['uid'], :token => token, :token_secret => token_secret)
if user.save
flash[:notice] = "Logged in."
sign_in_and_redirect(:user, user)
else
session["devise.user_attributes"] = user.attributes
redirect_to new_user_registration_path
end
因此,在注册过程结束时,会创建新用户。但是在数据库中,我没有看到任何关于该用户的 Twitter 身份验证记录。
那是因为 user.authentications.build 吗?
如果你能帮助我,那就太好了。
谢谢。