有没有办法可以手动触发omniauth回调?
我的意思是说,我在json中得到了来自twitter的oauth响应,然后我可以将这些数据POST / GET发送到omniauth回调网址吗?如果是这样,我应该重新构造json数据的具体格式吗?
我在这些行上做了一些事情,但无法在omniauth回调中填充request.env['omniauth.auth']
。
这是请求规范
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
是否有可能这样做?
答案 0 :(得分:1)
这是可能的。你唯一缺少的是你遇到的问题 - 设置omniauth.auth
。你这样做:
controller.stub!(:env).and_return('omniauth.auth' => @twitter_data)