2017-09-03 17 views
5

मेरा सीआई ऐप तृतीय पक्ष रेस्ट एपीआई सर्वर पर एपीआई कॉल बनाता है जो फ्रंट एंड द्वारा उपभोग किया जाएगा। सबसे पहले, फ्रंट एंड ऐप मेरे सीआई ऐप को हिट करेगा और बदले में तीसरे पक्ष LogInAPI (15 मिनट के लिए मान्य सत्र) पर क्लिक करेगा, और लॉगिन के बाद, हमें कुंजी पास करके (loginApi की प्रतिक्रिया) को बाद में एपीआई कॉल हिट करने की आवश्यकता होगी हेडर तो मूल रूप से मुझे हर 15 मिनट के लिए loginAPI पर हिट करने की आवश्यकता है। मैं अपने कोडिनेटर एप में कोणीय वादे थोड़े दृष्टिकोण की कोशिश कर रहा हूं, यह नहीं पता कि इसे कैसे प्राप्त किया जाए? खाली या सत्र की समाप्ति प्रतिक्रिया प्राप्त करने से आगे के अंत को रोकने के लिए ऐसा करने का सबसे अच्छा तरीका क्या है?कोडइग्निटर 3 वादा लागू करें

उत्तर

1

आपको लॉगिन करने के लिए ताज़ा रखने की आवश्यकता नहीं है। जब आप तृतीय पक्ष API से लॉगिन प्राप्त करते हैं तो समय टिकट बनाएं। फिर प्रत्येक अनुरोध पर इसे वापस अंत तक पास करें।

फ्रंट एंड चेक टाइम स्टैम्प से प्रत्येक कॉल पर बैक एंड पर, यदि यह समाप्त हो गया है तो एपीआई को सामान्य कॉल न करें लेकिन पहले नया लॉगिन प्राप्त करें, फिर अनुरोध किए गए कॉल करें।

प्रत्येक फ्रंट एंड कॉल रिटर्न के जवाब के रूप में भी लॉगिन जानकारी है, ताकि फ्रंट एंड नवीनीकरण के बाद नए प्रमाण-पत्र प्राप्त हो जाएं।

यदि प्रमाण-पत्र ऐप चौड़े हैं, तो फ्रंट एंड को उनसे अवगत नहीं होना चाहिए। बस किसी प्रकार के स्टोरेज (एसक्यूएल डीबी, कुंजी वैल्यू स्टोर इत्यादि) में क्रेडेंशियल्स स्टोर करें, और उपयुक्त होने पर ऑटो नवीनीकरण करें।

+1

महान विचार, प्रत्येक अनुरोध के लिए टाइमस्टैम्प को पास करने के बजाय और आप एक कुकी प्रविष्टि बना सकते हैं जो एपीआई से अनुरोध करने से पहले 15 मिनट के बाद हटा दिया जाएगा, यदि आप – dEL

+0

उत्तर के अनुसार लॉगिन के लिए आगे नहीं बढ़ते हैं तो कुकी मौजूद है या नहीं क्या फ्रंट एपी –

+0

@PsycheGenie हां से लॉगिन एपीआई को कॉल करने के बजाय PHP सीआई में इसे प्राप्त करने का कोई तरीका है, मेरा अंतिम पैराग्राफ देखें। जो भी कोड बाहरी एपीआई कॉल करता है, वह टाइमस्टैम्प की जांच कर सकता है, और पहले नए क्रेडेंशियल्स को पुनः प्राप्त करने का निर्णय ले सकता है, और उसके बाद केवल मुख्य एपीआई कॉल कर सकता है। –