когда я вызываю в spec, метод get: authenticate_linkedin_login контроллера выдает ошибку oauth: разрешение проблемы неизвестно.
* файл спецификации. *
описать LinkedinProfileController сделать
включить LinkedinStubs
до (: каждый) сделать
@temp = Factory(:worker)
controller.stub (: authenticate_user!)
controller.stub!(:current_user).and_return(@temp)
WebMock.allow_net_connect!(:net_http_connect_on_start => true)
end
description "/ login" do
it "следует перенаправить на URL-адрес авторизации linkedin" do
stub_oauth_request_token!
get :linkedin_login
session[:rtoken].should == 't'
session[:rsecret].should == 's'
response.location.should =~ /www.linkedin.com/
response.should be_redirect #request authorize url
end
end
describe "/authenticate_linkedin_login" do
it "should be authorize_from_request" do
get :authenticate_linkedin_login,:oauth_verifier=>'12345'
* Контроллер * класс LinkedinProfileController
before_filter: authenticate_worker!
def linkedin_login client = LinkedIn:: Client.new ('lrkf3ol8f91k', 'OGJbzX3lKNSOxNwT')
request_token = client.request_token(:oauth_callback => "http://#{request.host_with_port}/authenticate_linkedin_login")
session[:rtoken] = request_token.token
session[:rsecret] = request_token.secret
redirect_to client.request_token.authorize_url
end
def authenticate_linkedin_login
client = LinkedIn::Client.new('lrkf3ol8f91k','OGJbzX3lKNSOxNwT')
if session[:atoken].nil?
pin = params[:oauth_verifier]
atoken, asecret = client.authorize_from_request(session[:rtoken], session[:rsecret], pin)
session[:atoken] = atoken
session[:asecret] = asecret
else
client.authorize_from_access (сеанс [: atoken], сеанс [: секунд):