0

有什么办法可以手动触发omniauth回调?

我的意思是,我从 twitter 的 json 中获得了 oauth 响应,然后我可以将这些数据 POST/GET 到 omniauth 回调 url 吗?如果是这样,是否有任何特定格式我应该重新构造 json 数据?

我正在这些线上做一些事情,但无法request.env['omniauth.auth']在omniauth回调中填充。

这是请求规范

before(:each) do
  # response returned from twitter is in spec/fixtures/oauth_twitter_response.json
  twitter_oauth_response = File.join(Rails.root.to_s, 'spec', 'fixtures', 'oauth_twitter_response.json')
  data = File.read(twitter_oauth_response)
  @twitter_data = JSON.parse(data)
end

it 'should post the twitter data to omniauth callback' do
  post 'users/auth/twitter/callback', {}, {:env => {"omniauth.auth" => @twitter_data}}
end

知道这是否可能吗?

4

1 回答 1

1

这个有可能。您唯一缺少的是您在设置时遇到的问题omniauth.auth。你这样做:

controller.stub!(:env).and_return('omniauth.auth' => @twitter_data)
于 2012-05-07T04:45:12.107 回答