तुम्ही तुमचे Google खाते कधीही एखाद्या ऍप्लिकेशनमध्ये साइन इन करण्यासाठी वापरले असल्यास, ते किती सोपे आहे हे तुम्ही पाहिले असेल. तुम्हाला फक्त एक बटण क्लिक करावे लागेल आणि तुम्हाला तुमचा ईमेल किंवा पासवर्ड टाइप करण्याची गरज नाही. जरी हे सोपे वाटत असले तरी, हुड अंतर्गत काय होते ते खूपच क्लिष्ट आहे. तथापि, पासपोर्ट सारख्या साधनांमुळे ते सोपे होते.

या ट्युटोरियलमध्ये, तुम्ही पासपोर्ट आणि एक्सप्रेस वापरून नोडमध्ये गुगल ऑथेंटिकेशन कसे लागू करायचे ते शिकाल.

पासपोर्ट म्हणजे काय?

पासपोर्ट (किंवा Passport.js) हे एक नोड प्रमाणीकरण मिडलवेअर आहे जे Google आणि Twitter सारख्या प्लॅटफॉर्मचा वापर करून सोशल ऑथेंटिकेशनसह वापरकर्त्यांना प्रमाणीकरण करण्यासाठी 500 पेक्षा जास्त धोरणे प्रदान करते.

वापरकर्त्यांना Google वर प्रमाणीकृत करण्यासाठी तुम्ही पासपोर्ट-google-oauth2 धोरण वापराल.

नोडमध्ये Google प्रमाणीकरण प्रणाली तयार करणे

जेव्हा वापरकर्ता लॉगिन बटणावर क्लिक करतो, तेव्हा त्यांना Google साइन-इन पृष्ठावर पाठवले जाईल जिथे ते साइन इन करतील.

Google प्रवेश टोकनसह वापरकर्त्याला तुमच्या अनुप्रयोगाकडे पुनर्निर्देशित करेल. प्रवेश टोकन तुम्हाला त्या वापरकर्त्याच्या प्रोफाइल माहितीमध्ये प्रवेश करण्याची परवानगी देते.

पासपोर्ट वापरून NodeJS मध्ये Google प्रमाणीकरण कसे सेट करावे

Google OAuth सह वापरकर्त्यांना अधिकृत करण्यासाठी खालील पायऱ्या फॉलो करा.

पायरी 1: Google क्लायंट आयडी आणि क्लायंट सीक्रेट तयार करा

तुम्ही तुमच्या अॅपमध्ये वापरकर्त्यांना साइन इन करण्यासाठी Google वापरण्यापूर्वी, पासपोर्ट कॉन्फिगर करताना क्लायंट आयडी आणि क्लायंट सीक्रेट वापरण्यासाठी तुम्ही तुमचा अर्ज Google वर नोंदणीकृत करणे आवश्यक आहे.

Google Cloud Console मध्ये लॉग इन करा आणि तुमच्या अॅपची नोंदणी करण्यासाठी या पायऱ्या फॉलो करा.

नवीन प्रकल्प तयार करा. मेनू बारमध्ये, क्रेडेन्शियल्स निवडा आणि ड्रॉप-डाउन सूचीमध्ये, OAuth क्लायंट आयडी निवडा.

अनुप्रयोग प्रकारासाठी, वेब अनुप्रयोग निवडा. नाव फील्डमध्ये तुमच्या अर्जासाठी प्राधान्य असलेले नाव जोडा.

तुमच्या आवडत्या मजकूर संपादकासह फोल्डर उघडा आणि नवीन फाइल app.js तयार करा. हे तुमच्या अर्जासाठी एंट्री पॉइंट म्हणून काम करेल.

mongodb सेट करा

तुम्ही Google कडून प्राप्त केलेला वापरकर्ता डेटा मोंगोडीबी डेटाबेसमध्ये संचयित कराल. वापरकर्ता माहिती जतन करण्यापूर्वी, आपल्याला डेटा संचयित केला जाईल अशी रचना परिभाषित करणे आवश्यक आहे. यासाठी वीसेल योग्य आहे. हे डेटा मॉडेल तयार करण्याचा एक सोपा मार्ग प्रदान करते.

UserModel.js मध्ये, तुम्ही मुंगूस इंपोर्ट केले आहे आणि एक नवीन स्कीमा तयार केला आहे.

लक्षात घ्या की तुम्ही Google वरून माहितीचे गटबद्ध करत आहात. जेव्हा तुम्ही इतर प्रमाणीकरण पद्धती वापरत असाल आणि वापरकर्ता एकापेक्षा जास्त वापरत असाल तेव्हा हे विशेषतः उपयुक्त आहे. यामुळे दुहेरी नोंदणी रोखणे सोपे होते.

एकदा तुम्हाला Google कडून प्रोफाइल माहिती मिळाल्यावर, डेटाबेसमध्ये वापरकर्ता अस्तित्वात आहे का ते तपासा. त्यांनी तसे केल्यास, फक्त सापडलेल्या वापरकर्त्यास परत करा. वापरकर्ता नवीन असल्यास, डेटाबेसमध्ये एक नवीन दस्तऐवज तयार करा आणि तयार केलेला वापरकर्ता परत करा.

लक्षात घ्या की तुम्ही env व्हेरिएबल्ससह काम करत आहात त्यामुळे तुमच्या ऍप्लिकेशनमध्ये त्यांचा प्रवेश करण्यासाठी npm पॅकेज dotenv वापरा.

खाजगी मार्गांचे संरक्षण करा

आता तुम्ही वापरकर्ता म्हणून लॉग इन केले आहे, तुम्ही तुमच्या ॲप्लिकेशनचे काही भाग केवळ प्रमाणीकृत वापरकर्त्यांपुरते कसे मर्यादित करू शकता? यावर जाण्याचा एक मार्ग म्हणजे JSON वेब टोकन (JWTs) वापरणे. JWTs माहिती प्रसारित करण्याचा एक सुरक्षित मार्ग प्रदान करतात.

येथे, तुम्ही ऑथोरायझेशन हेडरमधून टोकन काढत आहात जिथे ते संग्रहित केले आहे – जे विनंतीच्या मुख्य भागामध्ये संग्रहित करण्यापेक्षा जास्त सुरक्षित आहे.

टोकन सत्यापित झाल्यानंतर, वापरकर्ता ऑब्जेक्ट विनंती मुख्य भागामध्ये परत पाठविला जातो. वापरकर्त्यांना अधिकृत करण्यासाठी, संरक्षित मार्गांमध्ये पासपोर्ट JWT प्रमाणीकरण मिडलवेअर जोडा.

आता, वैध टोकन प्रदान करणाऱ्या विनंत्यांनाच प्रवेश मिळेल.

पुढील पायऱ्या

वापरकर्त्यांना त्यांचे Google खाते वापरून तुमच्या ऍप्लिकेशनमध्ये साइन इन करण्याची परवानगी देण्यासाठी तुम्ही पासपोर्ट कसा वापरू शकता हे या ट्यूटोरियलने तुम्हाला दाखवले आहे. पासपोर्ट वापरणे इतर फॉर्मच्या तुलनेत खूप सोपे आहे आणि तो वापरून तुमचा बराच वेळ वाचेल.

पासपोर्ट Twitter आणि Facebook सारख्या इतर ओळख प्रदात्यांसह वापरण्यासाठी इतर प्रमाणीकरण धोरणे देखील प्रदान करतो. म्हणून, ते देखील तपासण्यासारखे आहे.

Leave a Reply

Your email address will not be published. Required fields are marked *