OAuth लॉगिन
HandyCafe Device Authorization Grant (RFC 8628) का उपयोग करके ग्राहकों के लिए सोशल/OAuth लॉगिन का समर्थन करता है। यह प्रवाह कियोस्क और सार्वजनिक वातावरण के लिए डिज़ाइन किया गया है जहां ग्राहक साझा PC पर सुरक्षित रूप से क्रेडेंशियल दर्ज नहीं कर सकते।
समर्थित प्रदाता
| प्रदाता | एंडपॉइंट |
|---|---|
| oauth2.googleapis.com | |
| graph.facebook.com/v21.0 | |
| Apple | appleid.apple.com |
| X (Twitter) | api.x.com/2/oauth2 |
| Discord | discord.com/api/oauth2 |
प्रत्येक प्रदाता को सेटिंग्स > OAuth में अलग-अलग सक्षम या अक्षम किया जा सकता है।
प्रमाणीकरण प्रवाह
डिवाइस प्राधिकरण प्रवाह निम्नलिखित चरणों से गुजरता है:
- ग्राहक एक प्रदाता चुनता है: क्लाइंट आइडल स्क्रीन पर ग्राहक प्रदाता बटन (जैसे Google, Discord) पर टैप करता है।
- क्लाइंट सर्वर को अनुरोध भेजता है: क्लाइंट HandyCafe सर्वर को सूचित करता है कि OAuth लॉगिन शुरू किया गया है।
- सर्वर डिवाइस कोड का अनुरोध करता है: सर्वर चयनित प्रदाता के डिवाइस प्राधिकरण एंडपॉइंट से संपर्क करता है और डिवाइस कोड, उपयोगकर्ता कोड और सत्यापन URI प्राप्त करता है।
- क्लाइंट कोड प्रदर्शित करता है: क्लाइंट ग्राहक को
user_codeऔरverification_uriदिखाता है, आम तौर पर आसान स्कैनिंग के लिए QR कोड के रूप में रेंडर किया जाता है। - ग्राहक अपने फ़ोन पर प्रमाणित करता है: ग्राहक अपने व्यक्तिगत डिवाइस (फ़ोन या टैबलेट) से QR कोड स्कैन करता है और प्रदाता की वेबसाइट पर प्रमाणीकरण पूरा करता है।
- सर्वर टोकन के लिए पोल करता है: सर्वर समय-समय पर प्रदाता से टोकन के लिए पोल करता है। पोल स्थितियों में शामिल हैं:
- लंबित: ग्राहक ने अभी तक प्रमाणीकरण पूरा नहीं किया है।
- धीमा करें: बहुत बार पोल हो रहा है; सर्वर अंतराल बढ़ाता है।
- सफल: प्रमाणीकरण पूरा हुआ; टोकन प्राप्त।
- समाप्त: प्रमाणीकरण से पहले डिवाइस कोड समाप्त हो गया।
- त्रुटि: एक अप्रत्याशित त्रुटि हुई।
- सर्वर उपयोगकर्ता जानकारी प्राप्त करता है: सफलता पर सर्वर ग्राहक की प्रोफ़ाइल प्रदाता से प्राप्त करने के लिए टोकन का उपयोग करता है, जिसमें
provider_uid,email,name, औरavatar_urlशामिल हैं। - एडमिन स्वीकृत या अस्वीकार करता है: लॉगिन अनुरोध अनुरोध पेज पर दिखाई देता है। एडमिन या कैशियर अनुरोध की समीक्षा करके स्वीकृत या अस्वीकार करता है।
- सदस्य बनाया या जोड़ा जाता है: स्वीकृत होने पर एक नया सदस्य खाता बनाया जाता है या OAuth पहचान मौजूदा सदस्य से जोड़ दी जाती है।
- क्लाइंट सत्र शुरू होता है: क्लाइंट को पुष्टि मिलती है और ग्राहक का सत्र शुरू होता है।
सुरक्षा विचार
- क्रेडेंशियल कभी साझा PC को स्पर्श नहीं करते। ग्राहक केवल अपने व्यक्तिगत डिवाइस पर प्रमाणित करते हैं। क्लाइंट मशीन पर कोई पासवर्ड या टोकन दर्ज नहीं किया जाता।
- एडमिन स्वीकृति द्वार। सत्र शुरू होने से पहले हर OAuth लॉगिन अनुरोध को एडमिन या कैशियर द्वारा स्वीकृत किया जाना चाहिए, जिससे अनधिकृत पहुंच रोकी जाती है।
- कॉन्फ़िगर करने योग्य क्रेडिट आवश्यकता। एक "बिना क्रेडिट के लॉगिन की अनुमति दें" विकल्प सक्षम या अक्षम किया जा सकता है, जो नियंत्रित करता है कि ग्राहकों को OAuth से लॉगिन करने के लिए सकारात्मक बैलेंस की आवश्यकता है या नहीं।
कॉन्फ़िगरेशन
OAuth प्रदाता सेटिंग्स > OAuth में कॉन्फ़िगर किए जाते हैं। प्रत्येक प्रदाता को प्रदाता के डेवलपर कंसोल से प्राप्त अपने क्लाइंट क्रेडेंशियल (क्लाइंट ID और क्लाइंट सीक्रेट) की आवश्यकता होती है। केवल वे प्रदाता सक्षम करें जो आप अपने ग्राहकों को प्रदान करना चाहते हैं।