1
我正在使用Sinatra和OmniAuth嘗試使用Facebook進行身份驗證。一切似乎都正常工作,除了暱稱屬性。我的授權哈希正在爲暱稱返回一些內容,但它不是該人的暱稱。對於我想要做的事,獲取這個人的暱稱是非常重要的。而且我已經檢查了我的Facebook頁面,以確保我有一個暱稱集,而我確實。它應該返回「HeroicEric」。OmniAuth Facebook身份驗證暱稱返回「profile.php?id = ..」
get '/auth/:name/callback' do
auth = request.env["omniauth.auth"]
user = User.first_or_create({ :uid => auth["uid"]}, {
:uid => auth["uid"],
:username => auth["user_info"]["nickname"],
:name => auth["user_info"]["name"],
:email => auth["user_info"]["email"]
})
session[:user_id] = user.id
redirect '/user/' + user.id.to_s
end
正在被退回看起來像這樣的哈希:
"user_info"=>{
"name"=>"Eric Kelly",
"urls"=>
{
"Facebook"=>"http://www.facebook.com/profile.php?id=550432081",
"Website"=>nil
},
"nickname"=>"profile.php?id=550432081",
"last_name"=>"Kelly",
"image"=>"http://graph.facebook.com/550432081/picture?type=square",
"first_name"=>"Eric",
"email"=>"[email protected]"
},
這聽起來很不錯。 [rstat.us](http://rstat.us)發現了同樣的問題。我們現在查找包含profile.php的用戶名,並顯示用戶輸入新用戶名的HAML模板。 – 2011-05-04 16:14:32
OmniAuth修復了此問題。 – HeroicEric 2011-06-11 19:55:06