मैं बाह्य लॉगिन को लागू करने के लिए ASP.Net पहचान का उपयोग कर रहा हूं। Google के साथ उपयोगकर्ता लॉगिन के बाद मुझे Google का बाहरी एक्सेस टोकन मिलता है। मैं फिर ObtainLocalAccessToken() पर दूसरा एपीआई कॉल करता हूं जो एक नए स्थानीय के लिए बाहरी पहुंच टोकन का व्यापार करता है।पहुंच टोकन सत्यापित करें - Asp.Net पहचान
ObtainLocalAccessToken()
VerifyExternalAccessToken() पर कॉल करता है जो मैन्युअल रूप से http कॉल करके और user_id को पार्स करके प्रदाता के साथ बाहरी पहुंच टोकन को सत्यापित करता है।
मैं पूरी विधि VerifyExternalAccessToken()
को हटाने के लिए एएसपी.NET पहचान का लाभ कैसे उठा सकता हूं?
मुझे विश्वास है कि [HostAuthentication(DefaultAuthenticationTypes.ExternalBearer)]
है ना? मुझे लगता है कि विशेषता के साथ ObtainLocalAccessToken()
endpoint सजाने और हैडर ({'Authorization' : 'Bearer xxx' }
) में external_access_token भेजना चाहते हैं, और इसे मैन्युअल रूप से बाहरी पहुँच टोकन को सत्यापित करने की जरूरत के बिना User.Identity
पॉप्युलेट करना चाहिए? मुझे विश्वास है कि यह उद्देश्य है, हालांकि मैं इसे काम नहीं कर सकता। मैं गूगल से एक वैध बाहरी पहुँच टोकन भेजने के लिए और यह एक 401
मैं Startup.Auth में इस लाइन btw के साथ खारिज कर दिया जाता है:
app.UseOAuthBearerTokens(new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(),
AuthorizeEndpointPath = new PathString("/AccountApi/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true
});
वैकल्पिक रूप से, इसका इस्तेमाल करने "/ टोकन" endpoint संभव है स्थानीय के लिए बाहरी पहुंच टोकन का व्यापार करने के लिए? कौन सा दृष्टिकोण सही है?
मैं यहां एक जंगली अनुमान लगाऊंगा।लेकिन Google से उपयोग की जाने वाली हर सेवा https के माध्यम से होती है। यह संभव है कि आप AllowInsecureHttp = true का उपयोग नहीं कर सकते? चूंकि आपकी त्रुटि 401 है, मुझे पूरा यकीन है कि इसका मतलब है कि http पर कॉल की अनुमति नहीं है। – GELR
वैसे मैं एसएसएल का उपयोग नहीं कर सकता, इसलिए मुझे http का उपयोग करके काम करने की ज़रूरत है, जैसे यह मेरे वेब एप्लिकेशन से है (लेकिन मोबाइल से नहीं)। लेकिन क्या मैं अपनी समझ में सही हूं कि [होस्ट प्रमाणीकरण (DefaultAuthenticationTypes.ExternalBearer)] बाहरी पहुंच टोकन भेजते समय सिद्धांत को पॉप्युलेट करना चाहिए? यदि हां, तो यह कैसे पता चलेगा कि एक्सेस प्रदाता किस प्रदाता से है? – parliament
और 401 = अनधिकृत के अलावा। "इस अनुरोध के लिए प्राधिकरण से इनकार कर दिया गया है।" – parliament