如何将OmniAuth(Twitter)与现有用户模型集成?

时间:2013-04-10 05:24:55

标签: ruby-on-rails ruby twitter omniauth

我正在使用OmniAuth,我能够成功恢复回调。

当我浏览到/auth/twitter并使用Twitter登录时,它会将我带回/auth/twitter/callback,其中包含无格式文本,其中包含用户ID,个人资料图片网址,屏幕名称等。

我还没有对此输出做过任何事情,这就是我需要帮助的地方。

我已经有了一个现有的身份验证系统,我希望保持一切顺利。我希望从Twitter获取屏幕名称,他们的oauth_token,他们的oauth_token_secret和他们的电子邮件地址(如果可能的话)在我的网站上创建一个新帐户/登录我的网站。如果我想保持当前网站完全相同的行为并且只是想让人们使用Twitter登录/注册,我该怎么做?

这是我现有的用户表

create_table "users", :force => true do |t|
    t.string    "name"
    t.string    "email"
    t.timestamp "created_at",                         :null => false
    t.timestamp "updated_at",                         :null => false
    t.string    "password_digest"
    t.string    "remember_token"

我可以将oauth_token和oauth_token_secret列添加到此表并使其以这种方式工作吗?

1 个答案:

答案 0 :(得分:0)

你可以。检查Ryans railcasts.com/episodes/241-simple-omniauth。另请注意,Twitter不会返回电子邮件。您可能还需要更改用户模型以允许密码等为null,如果您计划允许使用twitter或传统用户/传递登录(如果用户选择后者,您可能需要处理验证部分)