我确实看过 Ryan Bates 的剧集,以便将设计与omniauth一起使用。问题是我可以用linkdin注册。我的代码
在我的 user.rb
field :provider, :type => String
field :uid, :type => String
field :name, :type => String
#has_many :authentications
def self.from_omniauth(auth)
where(auth.slice("provider", "uid")).first || create_from_omniauth(auth)
end
def self.create_from_omniauth(auth)
create! do |user|
user.provider = auth["provider"]
user.uid = auth["uid"]
user.name = auth["info"]["nickname"]
end
end
我添加了这个并在我的创建控制器中进行了身份验证
user = User.from_omniauth(env["omniauth.auth"])
session[:user_id] = user.id
redirect_to root_url, notice: "Signed in!"
我成功地将 linkdin 的值放入我的用户数据库中
{ "_id" : ObjectId("50b2f4e66d7ab88ac7000003"), "email" : "", "encrypted_password" : "", "sign_in_count" : 0, "provider" : "linkedin", "uid" : "wuBFLcbDyB", "name" : null, "updated_at" : ISODate("2012-11-26T04:49:42.549Z"), "created_at" : ISODate("2012-11-26T04:49:42.549Z") }
但是当我从 linkdin 登录时,它不会通过 linkdin 注册,否则它会重定向到
http://localhost:3000/users/sign_in
我如何通过该链接登录?