【发布时间】:2016-03-14 00:53:30
【问题描述】:
无法通过 facebook oauth 将新用户保存到我的数据库,因为我将电子邮件设置为 null:false,并且在尝试进行身份验证时它没有抓取电子邮件。不想更改我的数据库作为解决方法。
config.facebook.key = ENV['facebook_app_id']
config.facebook.secret = ENV['facebook_api_secret']
config.facebook.callback_url = "http://0.0.0.0:3000/oauth/callback?provider=facebook"
config.facebook.user_info_mapping = { :email => "email", :name=> "name"}
config.facebook.user_info_path = "me?fields=email, name"
config.facebook.scope = "email" #etc
config.facebook.display = "popup"
config.facebook.access_permissions = ["email", "user_friends", "public_profile"]
config.facebook.api_version = "v2.5"
users 表如下所示:
create_table "users", force: :cascade do |t|
t.string "name"
t.text "about_me"
t.string "email", null: false
t.string "crypted_password"
t.string "salt"
t.datetime "created_at"
t.datetime "updated_at"
# .....
服务器日志:
SQL (1.6ms) INSERT INTO "users" ("created_at", "updated_at") VALUES ($1, $2) RETURNING "id" [["created_at", "2016-03-14 00:50:35.548272" ], ["updated_at", "2016-03-14 00:50:35.548272"]]
(0.2ms) 回滚
【问题讨论】:
-
您是用户,用户的电子邮件地址已通过验证?
-
是的。也尝试使用其他帐户
-
尝试在 Graph Explorer 中使用相同的访问令牌执行相同的查询
-
请给出用户保存到数据库的代码。或者用户保存发生在 gem 中?他们告诉我们您使用的是什么宝石。
标签: ruby-on-rails facebook email oauth sorcery