[英]Linking existing Devise user (email sign up) with Omniauth-Twitter
[英]Devise + Twitter OmniAuth Get user Email
我一直在使用Devise + OmniAuth Twitter验证用户到我的门户的身份。 我目前面临两个问题。
当用户访问/ users / sign_up时,该表单是公开可见的。 相反,我想将他重定向到Twitter身份验证页面。
当用户访问/ users / sign_up时,将显示电子邮件表单。 在他从Twitter成功注册后,我正在使用此表单获取用户的电子邮件地址。
有人可以通过直接访问表单的人来帮助我解决此问题吗?
添加代码段:
#config/routes.rb
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }
devise_scope :user do
get "skcript1625" => "devise/sessions#new", as: :login
get "logout", to: "devise/sessions#destroy", as: :logout
end
# app/models/user.rb
devise :database_authenticatable, :registerable, :rememberable, :trackable, :validatable
def self.from_omniauth(auth)
where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
user.email = auth.info.email
user.password = Devise.friendly_token[0,20]
user.name = auth.info.name # assuming the user model has a name
user.profileimg = auth.info.profileimg # assuming the user model has an image
end
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.