Ruby on rails Omniauth具有Facebook和Twitter从头开始的身份验证

Ruby on rails Omniauth具有Facebook和Twitter从头开始的身份验证,ruby-on-rails,ruby-on-rails-3,authentication,omniauth,Ruby On Rails,Ruby On Rails 3,Authentication,Omniauth,我使用Hartl的Railstutorial从头开始创建身份验证 我想为我的网站项目实现Facebook和Twitter登录。在看了Railscasts简单的OmniAuth后,我开始考虑使用OmniAuth 在视频中,我们被指示生成一个用户模型: rails generate model user provider:string uid:string name:string uid是Twitter和Facebook登录所特有的,还是与我的用户模型中的“我的id”属性相同 简单地说,我需要在我

我使用Hartl的Railstutorial从头开始创建身份验证

我想为我的网站项目实现Facebook和Twitter登录。在看了Railscasts简单的OmniAuth后,我开始考虑使用OmniAuth

在视频中,我们被指示生成一个用户模型:

rails generate model user provider:string uid:string name:string
uid是Twitter和Facebook登录所特有的,还是与我的用户模型中的“我的id”属性相同

简单地说,我需要在我的用户模型中添加uid列来实现OmniAuth吗?


谢谢

UID是facebook或twitter登录的用户id。它与用户模型中的“id”字段不同

Omniauth使用环境变量设置哈希。在这个散列中有一个“uid”键,您希望使用它在数据库中查找您的用户。它还设置了“提供者”键,因此“uid”键和“提供者”键的组合使您能够查找用户记录,例如:

auth = request.env["omniauth.auth"]
user = User.find_by_provider_and_uid(auth["provider"], auth["uid"]) 

因此,您的模型(用户)需要同时具有“提供者”和“用户标识”列才能工作。

感谢您提供的简明答案。这有帮助。