2012-06-27 16 views
5

प्राप्त करना मैं OAuth2 एकीकरण को प्रदर्शित करने के लिए Google के कैलेंडर API का उपयोग करने का प्रयास कर रहा हूं जिसे हमें किसी अन्य तृतीय पक्ष के साथ करने की आवश्यकता होगी। मैं DotNetOpenAuth लाइब्रेरी का उपयोग कर रहा हूं, और मैं Google को अनुमति/अस्वीकार करने के लिए प्रारंभिक रीडायरेक्ट प्राप्त करने में सक्षम हूं और प्राधिकरण कोड वापस प्राप्त कर रहा हूं।OAuth2 रीफ्रेश टोकन

अब मुझे एक्सेस टोकन प्राप्त करने और टोकन रीफ्रेश करने की आवश्यकता है, लेकिन मुझे केवल टोकन का उपयोग करने की प्रतीत होती है, टोकन रीफ्रेश शून्य है।

यह मेरा नियंत्रक कार्रवाई विधि जहां Google उपयोगकर्ता स्वीकार करता है के बाद वापस करने के लिए पुनर्निर्देश या इनकार करते है:

public ActionResult ProcessResponse(string state, string code, string error) 
{ 
    var oAuthClient = 
    new WebServerClient(
     new AuthorizationServerDescription 
     { 
     TokenEndpoint = new Uri("https://accounts.google.com/o/oauth2/token"), 
     AuthorizationEndpoint = new Uri("https://accounts.google.com/o/oauth2/auth"), 
     ProtocolVersion = ProtocolVersion.V20 
     }, 
     _applicationId, 
     _secret) 
     { 
     AuthorizationTracker = new TokenManager() 
     }; 


    var authState = oAuthClient.ProcessUserAuthorization(); 

    var accessToken = authState.AccessToken; 
    var refreshToken = authState.RefreshToken; 

    return View(new[] { accessToken, refreshToken }); 
} 

कोई भी विचार?

संपादित करें:

प्राधिकरण कोड प्राप्त करने के लिए, मैं सेटअप हूबहू क्या मैं ऊपर किया oAuthClient, और इस विधि का उपयोग:

oAuthClient.RequestUserAuthorization(new[] { "https://www.googleapis.com/auth/calendar" }, returnUrl); 
+0

कृपया अपना प्रश्न संपादित करें जिस तरीके से आप मूल प्राधिकरण अनुरोध जमा करते हैं उसे शामिल करें। –

+0

@AndrewArnott हो गया; यह 'RequestUserAuthorization' के लिए सिर्फ एक ही कॉल है। – Andy

+0

क्या आप अपने अनुरोध के लिए अधिक संदर्भ शामिल कर सकते हैं? उदाहरण के लिए, आप 'oAuthClient' का निर्माण कैसे करते हैं जिसका उपयोग आप अनुरोध भेजने के लिए करते हैं? –

उत्तर

1

मैं एक ऐसी ही समस्या थी, और हाथ से हल मेरा HttpRequest और HttpResponse हैंडलिंग कोडिंग। कोड यहां देखें: https://stackoverflow.com/a/11361759/29156

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