Rails,Omniauth和Facebook - "电子邮件不能空白"生产问题但不是发展问题

时间:2015-08-24 14:27:36

标签: ruby-on-rails facebook omniauth omniauth-facebook

非常简单的问题。

我遇到了"电子邮件不能空白"我的rails app / omniauth / facebook登录问题。关于这一点有很多问题,答案中有些用户提供的是电话号码而不是电子邮件地址。但是在我的情况下,我打开了一个facebook帐户,其中一个电子邮件地址可以在开发过程中与omniauth一起使用,但是当我使用它生产时它回来的电子邮件不能为空。我的凭据是正确的。

任何人都可以解释如何将这些事件组合起来吗?

编辑:这是我的控制器代码(请记住,我的设计模型是"会员"并且有相关的个人资料模型"用户"

def provider
     auth = request.env["omniauth.auth"]
     member_email_check = Member.find_by_email(auth.info.email)
     if member_email_check.present? && User.find_by_member_id(member_email_check.id)
     sign_in_and_redirect member_email_check
     return false
    else
       member = Member.where(provider: auth.provider, uid: auth.uid).first_or_create do |member|
      member.provider = auth.provider
      member.uid = auth.uid
      member.email = auth.info.email
     end
   end

  if auth.provider == "facebook"
    if member.save
       unless User.find_by_member_id(member.id)
           User.create(:member_id => member.id,
                  :full_name => auth.info.first_name + " " + auth.info.last_name,
                  :first_name => auth.info.first_name,
                  :last_name => auth.info.last_name,
                  :email => auth.info.email,
                  :picture => auth.info.image)
           end
         sign_in_and_redirect member
       else
         session["devise.member_attributes"] = member.attributes
         redirect_to new_member_registration_url
       end
     end
   end

   alias_method :facebook, :provider

 end

解决!

        config.omniauth :facebook, "<YOUR API KEY>", "<YOUR SECRET KEY>", scope: 'email', info_fields: 'email,name,first_name,last_name,gender'

刚刚添加了电子邮件范围和info_fields。

0 个答案:

没有答案