【发布时间】:2013-11-30 05:55:59
【问题描述】:
我在考拉的 github 上发了同样的内容,但没有人回复我,所以我放在这里。
所以当我尝试使用 Omniauth 登录 Twitter 时:
I, [2013-11-15T18:57:12.371006 #28412] INFO -- omniauth: (twitter) Request phase initiated.
127.0.0.1 - - [15/Nov/2013 18:57:13] "GET /auth/twitter HTTP/1.1" 500 144366 0.9355
我还有一个 Koala 登录 Facebook 我不使用 Omniauth 登录 Facebook 我只使用 Omniauth 登录 twitter,如果我不需要 Koala 就可以,但如果我同时拥有它会生成:
undefined method `[]=' for #<Koala::Facebook::OAuth:0x00000001b03348>
~>In oauth.rb line 31
我使用的是 1.6.0 版的 Koala 和 Sinatra。
我的代码是:
#Facebook
get '/loginfb' do
session['oauth'] = Koala::Facebook::OAuth.new($APP_ID, $APP_SECRET, "#{request.base_url}/callbackfb")
redirect session['oauth'].url_for_oauth_code(:permissions => ["publish_stream"])
end
get '/callbackfb' do
session['access_token'] = session['oauth'].get_access_token(params[:code])
registerUserFB() #Just register the user function
redirect '/accounts'
end
#Twitter
#By defualt logs in with /auth/twitter
get '/auth/twitter/callback' do
erb "<h1>#{params[:provider]}</h1><pre>#{JSON.pretty_generate(request.env['omniauth.auth'])}</pre>"
p auth['credentials']['token']
end
get '/auth/failure' do
erb "<h1>Authentication Failed:</h1><h3>message:<h3> <pre>#{params}</pre>"
end
提前谢谢大家。
【问题讨论】:
-
我想在推特进度前删除红宝石并在登录后激活,但我认为这无法做到。
标签: ruby twitter sinatra omniauth koala