के लिए क्विकस्टार्ट का पालन करने के बाद रीफ्रेश टोकन का उपयोग करके मैंने प्रलेखन पृष्ठ में क्विकस्टार्ट का पालन किया है और प्रमाणीकरण के लिए पहचान सर्वर का उपयोग करके तीन सेवाओं (पहचान सर्वर, एक एपीआई सेवा, एक एएसपीएनईटी एमवीसी अनुप्रयोग) की एक कार्यप्रणाली है।पहचान सर्वर 4 - हाइब्रिड एमवीसी
सब कुछ पूरी तरह से काम करता है (लॉगिन, लॉगिन, प्रमाणीकरण, आदि) 1 घंटे के बाद तक access_token की समयसीमा समाप्त हो जाती है। इस बिंदु पर, एमवीसी अनुप्रयोग एपीआई सेवा से 401 (सही ढंग से) प्राप्त करना शुरू कर देता है (क्योंकि टोकन समाप्त हो गया है)। उस बिंदु पर, मुझे पता है कि मुझे एक नया access_token प्राप्त करने के लिए refresh_token का उपयोग करना चाहिए।
मैं एक तंत्र की तलाश में था जो स्वचालित रूप से access_token को रीफ्रेश किया गया था और इस पर ठोकर खाई: https://github.com/mderriey/TokenRenewal/blob/master/src/MvcClient/Startup.cs (this answer से)। मैंने इसका उपयोग करने की कोशिश की लेकिन यह काम नहीं किया (प्रमाणीकरण सफल होने के बावजूद TokenEndpointResponse
शून्य था)।
मैं समझता हूं कि refresh_token
का उपयोग कैसे करें access_token
प्राप्त करने के लिए, लेकिन मेरे पास यह होने के बाद, मैं इसे कुकी में वापस कैसे डालूं ताकि भविष्य के अनुरोध के नए टोकन तक पहुंच हो?
McvHybrid नमूना RenewTokens में केवल (यदि लिंक पर क्लिक के माध्यम से) मैन्युअल रूप से लागू कर रहे हैं। क्या आप एक उदाहरण जानते हैं जहां एक्सेस टोकन समाप्त होने के बारे में टोकन रीफ्रेश किया जाता है? –
आप उपरोक्त कोड को कुछ मिडलवेयर में आसानी से फेंक सकते हैं जो एमवीसी से पहले आपकी पाइपलाइन में पंजीकृत है। – LugTread
@LugTread मुझे नहीं लगता कि आपको इसका कुछ उदाहरण होगा? मैं .NET कोर में एमवीसी के लिए काफी नया हूं और मैंने कभी भी मिडलवेयर नहीं लिखा है, मैं अब इसमें देख रहा हूं लेकिन अगर आपने कुछ ऐसा किया है और कोड नमूना है जो बहुत ही बढ़िया होगा। धन्यवाद। – bgs264