我遵循了https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview中描述的步骤,并在用户模型中有一个方法,如下所示:
def self.find_for_facebook_oauth(access_token, signed_in_resource=nil)
data = access_token.extra.raw_info
if user = self.find_by_email(data.email)
user
else # Create a user with a stub password.
self.create!(:email => data.email, :password => Devise.friendly_token[0,20])
end
end
我间歇性地收到错误,例如
在 omniauth_callbacks#facebook 中发生 NoMethodError:
未定义的方法email' for "false":String
app/models/user.rb:138:in
find_for_facebook_oauth'
我无法重现。这个问题的根源是什么?