2016-03-04 11 views
7

मैंने बीटा के हिस्से के रूप में एक निश्चित सेवा के लिए आरईएसटी एपीआई एसेस प्राप्त किया है। मुझे बताया गया कि प्राधिकरण OAuth2 के माध्यम से है।उपयोगकर्ता नाम और पासवर्ड के साथ OAuth2 का उपयोग

  1. आईडी
  2. गुप्त
  3. साइट

मैं भी रूबी में एक कोड नमूना मिला:

मैं निम्नलिखित मिल गया

client = OAuth2::Client.new(key, secret, :site => site) 
token = client.password.get_token('[email protected]', 'your_password') 
access_token = OAuth2::AccessToken.new(client, token) 
JSON.parse access_token.get("/v1/users/me").body rescue {} 

मैं कोशिश कर रहा हूँके साथ अजगर में एक ही स्निपेट को लागू करने के लिएपैकेज, सफलता नहीं मिली:

consumer = oauth2.Consumer(key=self._client_id, 
          secret=self._client_secret) 
request_token_url = "api.theservice.com/" 
token = oauth2.Token(key=self._email, secret=self._password) 
client = oauth2.Client(consumer, token) 
resp, content = client.request(request_token_url, "GET") 
pprint.pprint(resp) 
pprint.pprint(content) 
resp, content = client.request(request_token_url + 'v1/users/me', "GET") 
pprint.pprint(resp) 
pprint.pprint(content) 

दूसरी प्रतिक्रिया के बाद शामिल हैं:

'www-authenticate': 'Bearer realm="Doorkeeper", error="invalid_token", ' 
        'error_description="The access token is invalid"', 

मैं भी एक टोकन के बिना एक oauth2.Client वस्तु बनाने की कोशिश की है, और एक access_token के लिए पहली प्रतिक्रिया की जाँच की है, लेकिन कुछ भी नहीं की तरह से आया था।

यहां प्रमाणीकृत करने का सही तरीका क्या है?

+0

इस सेवा ट्विटर जैसी एक तीन पैरों वाला OAuth वर्णित [यहां] का उपयोग कर है (https://github.com/joestump/अजगर-OAuth2/wiki/ट्विटर-तीन टांगों वाला-OAuth)? – skyline75489

+0

मेरे ज्ञान के लिए नहीं। –

उत्तर

0

जहां तक ​​मैं न तो oauth2 देखता हूं और न ही अनुरोध-oauth2 उपयोगकर्ता नाम/पासवर्ड रणनीति का समर्थन करता हूं। तो आपको अपने आप तक पहुंच टोकन प्राप्त करने की आवश्यकता है।

जानकारी के लिए अपने एपीआई डॉक्स की जाँच करें, लेकिन सामान्य रूप में यह ऐसा ही कुछ किया जाना चाहिए:

r = requests.post('http://api.theservice.com/auth', 
        data = {'email':email, 'password': password}).json() 

token = oauth2.Token(key=r['key'], secret=r['secret']) 
consumer = oauth2.Consumer(key=self._client_id, 
          secret=self._client_secret) 

client = oauth2.Client(consumer, token) 
संबंधित मुद्दे

 संबंधित मुद्दे