使用 Twitter 的 Omniauth 在用户创建后不存储某些值
我按照 Ruby on Rails 教程书创建了自己的身份验证和注册系统。我现在正尝试使用 Twitter 身份验证将其替换为 Omniauth。
我遵循了 Railscast 中的所有步骤并且它有效,但现在我试图在用户创建时保存更多用户信息字段,但它们没有保存。这是创建用户的代码:
def self.create_with_omniauth(auth)
create! do |user|
user.provider = auth["provider"]
user.uid = auth["uid"]
user.name = auth["user_info"]["name"]
user.email = auth["user_info"]["email"]
user.time_zone = auth["user_info"]["time_zone"]
end
end
如果需要的话,这是我的 current_user 代码:
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
另外,在哪里可以找到可以从使用 Twitter 登录的用户那里获得的用户信息列表?我需要一些其他信息,但似乎找不到。
谢谢!
I followed the Ruby on Rails Tutorial book and created my own authentication and signup system. I now am trying to replace that with Omniauth using Twitter authentication.
I followed all the steps in the railscast and it works, but now I'm trying to save a couple more user info fields upon user creation and they aren't saving. Here's the code to create the user:
def self.create_with_omniauth(auth)
create! do |user|
user.provider = auth["provider"]
user.uid = auth["uid"]
user.name = auth["user_info"]["name"]
user.email = auth["user_info"]["email"]
user.time_zone = auth["user_info"]["time_zone"]
end
end
and here's my code for current_user if needed:
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
Also, where can I find a list of user info I can get from a user signing in using twitter? I need a couple other pieces of info and can't seem to find it.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
简单的答案是 Twitter 不允许您获取他们的电子邮件地址。
Simple answer is twitter doesn't allow you to grab their email address.