2013-05-17 3 views
3

Я пытаюсь выполнить аутентификацию в веб-сервисе с использованием 2legged oauth. У меня есть следующий рабочий Java примера создания аутентификации URL с помощью signpost библиотеки:Аутентификация на систему с двумя ногами Oauth

String consumerKey = "KEY"; 
String consumerSecret = "SECRET"; 
DefaultOAuthConsumer consumer = new DefaultOAuthConsumer(consumerKey, consumerSecret); 
consumer.setTokenWithSecret(consumerKey, consumerSecret); 
return consumer.sign(targetUrl); 

И это создает URL, как этого

http://example.com/my/method?oauth_consumer_key=KEY&oauth_nonce=4779611081457530684&oauth_signature=v19lL74VVMTibCMja5vnwIE2q5g%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1368778106&oauth_token=KEY&oauth_version=1.0

И я пытаюсь воссоздать его с помощью рубина oauth. Мой код теперь выглядит так:

consumer = OAuth::Consumer.new(@creds[:key], @creds[:secret], 
           :site => "URL", 
           :scheme => :query_string) 
token = OAuth::AccessToken.new(consumer) 
token.get "METHOD" 

И генерирует URLS как:

http://example.com/my/method?oauth_signature_method=HMAC-SHA1&oauth_nonce=7eQe4cAE27uBE9Bftfx7Pcjj1kqfuXHPWt5d3NZw0&oauth_version=1.0&oauth_consumer_key=KEY&oauth_timestamp=1368778250&oauth_signature=EbM0BjslzB5yXYWeC8EJGAEGi1k%3D

Но я всегда получаю Несанкционированное ошибку, даже если я вручную установить oauth_token для ключа (как указатель делать). Похоже, что nonce недействителен, но обе они являются допустимыми библиотеками для oauth

Может ли кто-нибудь мне помочь?

Заранее спасибо

ответ

3

Я была такая же проблема с 2-протокола OAuth, я установил с:

consumer = OAuth::Consumer.new(key, secret, { :site => 'http://api.mysite.com' }) 
access_token = OAuth::AccessToken.from_hash(consumer, :oauth_token => key, :oauth_token_secret => secret) 

Общие вопросы, происходит от рассинхронизации метки времени

Ваши запросы должны синхронизироваться с системными часами сервера, например, в linkedin должен находиться в пределах 5 минут от ее системных часов.

Надеюсь, что это поможет;)

Смежные вопросы