我正在使用Omniauth和Devise来通过Facebook认证用户,用于编写基于Rails 3.0.4的Web应用程序。我参考了Ryan Bates的Railscasts。
我不知道回调哈希是否随用户设置而变化——实际上,我已经在Facebook上限制了我的电子邮件显示设置,但它仍然出现了。为了确保我的代码处理此哈希的任何可能变化,我想找一些关于Facebook登录回调哈希的参考,以及它如何变化的信息。到目前为止,我在SO或Facebook开发者文档中没有找到任何相关内容。
问题是:是否有Facebook登录回调哈希的官方参考?我不想假设所有用户都具有相同的哈希元素。我在此处包含了尽可能多的信息,以供其他希望使用Facebook和Omniauth验证其Rails应用程序的人使用。
http://railscasts.com/episodes/235-omniauth-part-1
http://railscasts.com/episodes/236-omniauth-part-2
此时,我可以使用我的Facebook账号登录我的网站,并从回调哈希中获取我的电子邮件,对于我来说它看起来像这样:
request.env["omniauth.auth"]
{"user_info"=>
{"name"=>"Eric Hu",
"urls"=>
{"Facebook"=>"http://www.facebook.com/...", "Website"=>nil},
"nickname"=>"...",
"last_name"=>"Hu",
"first_name"=>"Eric"},
"uid"=>"...",
"credentials"=>
{"token"=> "..."},
"extra"=>
{"user_hash"=>
{"name"=>"Eric Hu",
"timezone"=>-8,
"gender"=>"male",
"id"=>"...",
"last_name"=>"Hu",
"updated_time"=>"2011-02-21T17:46:19+0000",
"verified"=>true,
"locale"=>"en_US",
"link"=>"http://www.facebook.com/...",
"email"=>"...",
"first_name"=>"Eric"}},
"provider"=>"facebook"}
(replaced some fields with "..." for my own privacy)
现在,我使用这个字段来获取用户的电子邮件地址。
request.env["omniauth.auth"]["user_info"]["extra"]["email"]
我不知道回调哈希是否随用户设置而变化——实际上,我已经在Facebook上限制了我的电子邮件显示设置,但它仍然出现了。为了确保我的代码处理此哈希的任何可能变化,我想找一些关于Facebook登录回调哈希的参考,以及它如何变化的信息。到目前为止,我在SO或Facebook开发者文档中没有找到任何相关内容。
问题是:是否有Facebook登录回调哈希的官方参考?我不想假设所有用户都具有相同的哈希元素。我在此处包含了尽可能多的信息,以供其他希望使用Facebook和Omniauth验证其Rails应用程序的人使用。