<पी> आज की डिजिटल दुनिया में, ऑनलाइन सुरक्षा वास्तव में महत्वपूर्ण है, और उपयोगकर्ता प्रमाणीकरण इसका एक प्रमुख पहलू है। पी> <पी> ईमेल-आधारित प्रमाणीकरण उपयोगकर्ता पंजीकरण और लॉगिन के लिए सबसे लोकप्रिय और व्यापक रूप से उपयोग की जाने वाली विधियों में से एक है। लेकिन यह हमेशा विश्वसनीय नहीं होता है, क्योंकि उपयोगकर्ता पंजीकरण के दौरान नकली या अमान्य ईमेल पते दर्ज कर सकते हैं। इससे सुरक्षा जोखिम और धोखाधड़ी हो सकती है। यहीं पर ईमेल सत्यापन सेवाएँ काम आती हैं। <पी> इस ट्यूटोरियल में, आप संपर्क जानकारी को सत्यापित करके उपयोगकर्ता पंजीकरण के दौरान अपनी ईमेल सत्यापन प्रक्रिया को स्वचालित करने में मदद के लिए ईमेल सत्यापन सेवा का उपयोग करेंगे। पी> <पी> एपीआई किसी ईमेल पते के सिंटैक्स, डोमेन और मेलबॉक्स की जांच करता है, और डिस्पोजेबल और जोखिम भरे ईमेल का भी पता लगा सकता है। पी> <पी> इस एपीआई को अपने एप्लिकेशन के साथ एकीकृत करके, आप यह सुनिश्चित कर सकते हैं कि उपयोगकर्ता पंजीकरण के लिए केवल वैध और वास्तविक ईमेल पते का उपयोग किया जाता है, जो आपके एप्लिकेशन की सुरक्षा को बढ़ाएगा। आवश्यकताएँ
<पी> इससे पहले कि आप ट्यूटोरियल शुरू करें, सुनिश्चित करें कि आपने निम्नलिखित आवश्यकताओं को पूरा कर लिया है: - पायथन का कार्यसाधक ज्ञान
- आपके सिस्टम पर Python 3.8+ स्थापित है
- फ्लास्क, फ्लास्क ब्लूप्रिंट और अनुरोधों का बुनियादी ज्ञान।
आभासी वातावरण कैसे सेट करें
<पी> कोडिंग शुरू करने से पहले, आपको यह सुनिश्चित करना होगा कि आपके पास सभी आवश्यक उपकरण और लाइब्रेरी स्थापित हैं। यह सुनिश्चित करने के लिए कि आपके पास एक स्वच्छ और पृथक वातावरण है, आप venv का उपयोग करके एक आभासी वातावरण बनाएंगे . <पी> एक प्रोजेक्ट निर्देशिका बनाएं और टर्मिनल में उस पर नेविगेट करें: mkdir email-validation
cd email-validation
<पी> env नाम का एक आभासी वातावरण बनाएं निम्नलिखित कमांड का उपयोग करें: python -m venv env
<पी> पायथन अब पूर्व-स्थापित venv के साथ आता है आभासी वातावरण बनाने के लिए लाइब्रेरी। <पी> आभासी वातावरण को इस प्रकार सक्रिय करें: source env/bin/activate
<पी> नोट:यदि आप विंडोज़ पर हैं, तो आपको source env/Scripts/activate का उपयोग करना होगा पर्यावरण को सक्रिय करने के लिए। <पी> आपको (env) देखना चाहिए आपके टर्मिनल प्रॉम्प्ट में, यह दर्शाता है कि वर्चुअल वातावरण सक्रिय हो गया है। <पी> ईमेल सत्यापन किसी भी वेब एप्लिकेशन के लिए एक आवश्यक प्रक्रिया है जिसके लिए उपयोगकर्ता प्रमाणीकरण की आवश्यकता होती है, और इसे करने के विभिन्न तरीके हैं। पी> <पी> एक तरीका ईमेल सत्यापन सेवा जैसे emailvalidation.io का उपयोग करना है। यह एपीआई डेवलपर्स को यह जांच कर ईमेल पते को मान्य करने की अनुमति देता है कि क्या वे वाक्यविन्यास की दृष्टि से सही हैं, क्या डोमेन मौजूद है, और क्या मेलबॉक्स संदेश प्राप्त कर सकता है। <पी> एपीआई विभिन्न आवश्यकताओं के अनुरूप मूल्य निर्धारण योजनाओं की एक श्रृंखला प्रदान करता है। मुफ़्त योजना डेवलपर्स को 100 ईमेल तक मान्य करने की अनुमति देती है, जो हमारे परीक्षण उद्देश्यों के लिए पर्याप्त होनी चाहिए। सशुल्क योजनाएँ $9.99 प्रति माह से शुरू होती हैं और अधिक अनुरोध, अधिक सुविधाएँ और तेज़ प्रतिक्रिया समय प्रदान करती हैं। <पी> इस अनुभाग में, आप एक पायथन फ़ंक्शन लिखेंगे जो एपीआई के एंडपॉइंट पर एक GET अनुरोध भेजता है और एक पैरामीटर के रूप में मान्य होने के लिए ईमेल पते को पास करता है। पी> <पी> एपीआई अनुरोध को प्रमाणित करने के लिए, आपको अनुरोध के साथ एपीआई कुंजी भी पास करनी होगी। आगे बढ़ने से पहले, आपको एपीआई कुंजी प्राप्त करने के लिए emailvalidation.io पर एक खाता बनाना होगा। एक बार जब आप अपना खाता बना लेंगे, तो आपको नीचे दिखाए गए डैशबोर्ड के समान, एक डैशबोर्ड पर पुनः निर्देशित किया जाएगा। एपीआई कुंजी काले हाइलाइट किए गए क्षेत्र में स्थित है। <पी>
<पी> GET अनुरोध करने के लिए, आपको requests इंस्टॉल करना होगा आपके आभासी वातावरण में लाइब्रेरी: pip install requests
<पी> इसके बाद, एक test.py बनाएं फ़ाइल करें और वहां निम्नलिखित कोड जोड़ें: import requests
from requests.structures import CaseInsensitiveDict
def is_valid(email: str):
url = f"https://api.emailvalidation.io/v1/info?email={email}"
headers = CaseInsensitiveDict()
headers["apikey"] = "your-api-key-here"
response = requests.get(url, headers=headers)
return response.json()
print(is_valid("support@emailvalidation.io"))
print(is_valid("venip42579@jdsdhak.com"))
<पी> is_valid फ़ंक्शन एक ईमेल पते को एक तर्क के रूप में लेता है और emailvalidation.io API को कॉल करने के लिए ईमेल पते के साथ एक यूआरएल बनाता है। CaseInsensitiveDict requests.structures से कक्षा मॉड्यूल का उपयोग अनुरोध के हेडर में एपीआई कुंजी सेट करने के लिए केस-असंवेदनशील कुंजियों के साथ एक शब्दकोश बनाने के लिए किया जाता है। फिर आप फ़ंक्शन से JSON प्रतिक्रिया लौटाते हैं। <पी> अंत में, आप is_valid पर कॉल करें यह प्रदर्शित करने के लिए अलग-अलग ईमेल पते के साथ दो बार कार्य करें कि फ़ंक्शन एक वैध ईमेल पते (support@emailvalidation.io) दोनों को कैसे मान्य कर सकता है ) और एक अमान्य ईमेल पता (venip42579@jdsdhak.com)। ). <पी> आउटपुट: {
"email":"support@emailvalidation.io",
"user":"support",
"tag":"",
"domain":"emailvalidation.io",
"smtp_check":true,
"mx_found":true,
"did_you_mean":"",
"role":true,
"disposable":false,
"score":0.64,
"state":"deliverable",
"reason":"valid_mailbox",
"free":false,
"format_valid":true,
"catch_all":"None"
}
{
"email":"venip42579@jdsdhak.com",
"user":"venip42579",
"tag":"",
"domain":"jdsdhak.com",
"smtp_check":false,
"mx_found":false,
"did_you_mean":"",
"role":false,
"disposable":false,
"score":0.64,
"state":"undeliverable",
"reason":"invalid_mx",
"free":false,
"format_valid":true,
"catch_all":"None"
}
<पी> आप यहां प्रतिक्रिया में विभिन्न कुंजियों के बारे में जान सकते हैं। यह निर्धारित करने के लिए कि emailvalidation.io से JSON प्रतिक्रिया के आधार पर कोई ईमेल पता वैध है या अमान्य, आपको निम्नलिखित फ़ील्ड की जाँच करनी चाहिए: format_valid :यदि true , ईमेल पता ठीक से स्वरूपित है। यदि false , ईमेल पता मान्य नहीं है।
mx_found :यदि true , डोमेन के लिए कम से कम एक एमएक्स रिकॉर्ड मिला। यदि false , डोमेन मान्य नहीं है.
smtp_check :यदि true , ईमेल पते में एक वैध मेलबॉक्स है। यदि false , मेलबॉक्स मान्य नहीं है।
state :ईमेल पते की वर्तमान स्थिति. मान "डिलीवर करने योग्य" या "डिलीवर करने योग्य" हो सकते हैं।
<पी> इस प्रकार, आप is_valid को संशोधित कर सकते हैं नीचे दिए गए अनुसार JSON ऑब्जेक्ट के बजाय बूलियन प्रतिक्रिया लौटाने के लिए फ़ंक्शन: import requests
from requests.structures import CaseInsensitiveDict
def is_valid(email: str):
url = f"https://api.emailvalidation.io/v1/info?email={email}"
headers = CaseInsensitiveDict()
headers["apikey"] = "nUH1hmV24lEwX1TIXmsgRPRRZw0L0NuOeHrdMp78"
response = requests.get(url, headers=headers)
if response.status_code == 200:
json_resp = response.json()
format_valid = json_resp["format_valid"]
mx_found = json_resp["mx_found"]
smtp_check = json_resp["smtp_check"]
state = json_resp["state"]
return format_valid and mx_found and smtp_check and state == "deliverable"
return False
print(is_valid("support@emailvalidation.io"))
print(is_valid("venip42579@jdsdhak.com"))
<पी> आउटपुट: True
False
<पी> आगामी अनुभाग में, आप उपयोगकर्ता पंजीकरण के दौरान ईमेल को सत्यापित करने के लिए इस फ़ंक्शन का उपयोग करेंगे। फ्लास्क में बेसिक यूजर ऑथेंटिकेशन कैसे सेट करें
<पी> इस अनुभाग में, आप फ्लास्क में बुनियादी उपयोगकर्ता प्रमाणीकरण स्थापित करने के चरणों से गुजरेंगे। आप मेरे पिछले लेखों में से एक कोड का उपयोग करेंगे जहां मैंने बताया था कि बुनियादी उपयोगकर्ता प्रमाणीकरण कैसे लागू किया जाए। पी> <पी> आप GitHub रिपॉजिटरी से कोड को email-validation पर खींचकर प्रारंभ कर सकते हैं फ़ोल्डर: git init
git remote add origin https://github.com/ashutoshkrris/Flask-User-Authentication.git
git pull origin main
<पी> नोट:कमांड git clone [https://github.com/ashutoshkrris/Flask-User-Authentication.git](https://github.com/ashutoshkrris/Flask-User-Authentication.git) . इस मामले में नहीं चलेगा क्योंकि आपकी निर्देशिका खाली नहीं है। <पी> इसके बाद, आपको एक requirements.txt दिखाई देगा फ़ाइल जिसमें आपके सिस्टम में एप्लिकेशन को चलाने के लिए निर्भरताएँ शामिल हैं। कमांड का उपयोग करके निर्भरताएँ स्थापित करें: pip install -r requirements.txt
<पी> एक बार सभी निर्भरताएँ स्थापित हो जाने के बाद, आपको प्रोजेक्ट के लिए आवश्यक पर्यावरण चर जोड़ने की आवश्यकता होगी। प्रोजेक्ट में एक .env शामिल है फ़ाइल जिसमें सभी पर्यावरण चर हैं। .env से सभी पर्यावरण चर निर्यात करने के लिए निम्नलिखित कमांड चलाएँ फ़ाइल: source .env
<पी> इसके बाद आपको डेटाबेस बनाना होगा. चूंकि प्रोजेक्ट फ्लास्क-माइग्रेट का उपयोग करता है, इसलिए निम्नलिखित कमांड का उपयोग करके डेटाबेस बनाना काफी सरल कार्य है: python manage.py db init
python manage.py db migrate
python manage.py db upgrade
<पी> अब, आप कमांड का उपयोग करके एप्लिकेशन चला सकते हैं: python manage.py run
<पी> एप्लिकेशन चलना शुरू हो जाएगा और आप http://localhost:5000/login पर जा सकते हैं एप्लिकेशन देखने के लिए अपने वेब ब्राउज़र में। <पी> यहां एक डेमो वीडियो है जो एप्लिकेशन दिखाता है: <पी> पी> <पी> आपके प्रोजेक्ट के अंदर flask-validation , आपके पास एक src होगा फ़ोल्डर जिसमें आपका स्रोत कोड और एक tests है फ़ोल्डर जिसमें यूनिट परीक्षण हैं। पी> <पी> इनके अतिरिक्त, आपके पास एक config.py भी होगा फ़ाइल जिसमें आपके एप्लिकेशन के लिए कॉन्फ़िगरेशन सेटिंग्स और एक manage.py शामिल है फ़ाइल जो आपके एप्लिकेशन को चलाने और परीक्षण करने के लिए विभिन्न कमांड जोड़ने के लिए फ्लास्क-सीएलआई का उपयोग करती है। आपको .env जैसी अन्य फ़ाइलें भी मिलेंगी और requirements.txt जिसके बारे में आप पहले से ही जानते हैं. <पी> src फ़ोल्डर में चार सबफ़ोल्डर हैं - accounts , core , templates , और static . templates और static फ़ोल्डरों में क्रमशः HTML फ़ाइलें और स्थिर फ़ाइलें जैसे CSS, छवियां और JavaScript फ़ाइलें होती हैं। अन्य दो फ़ोल्डर, accounts और core , फ्लास्क ब्लूप्रिंट की अवधारणा का उपयोग करें और एप्लिकेशन के विभिन्न भागों के लिए संबंधित कोड शामिल करें। <पी> यदि आप अपने फ्लास्क एप्लिकेशन के कार्यान्वयन के बारे में अधिक जानना चाहते हैं, तो आप इस ट्यूटोरियल का संदर्भ ले सकते हैं। अपने फ्लास्क ऐप में ईमेल सत्यापन सेवा को कैसे एकीकृत करें
<पी> इस बिंदु तक, किसी भी ईमेल पते का उपयोग करके एप्लिकेशन में सफलतापूर्वक पंजीकरण करना संभव है, भले ही वह वैध हो या नहीं। पी> <पी> लेकिन यह वांछनीय नहीं है कि आपके डेटाबेस में यादृच्छिक या गलत ईमेल पते अव्यवस्थित हों। इसलिए उपयोगकर्ता को पंजीकृत करने से पहले ईमेल पते को सत्यापित करना एक अच्छा विचार है। यदि ईमेल पता वैध है, तो आप उपयोगकर्ता को सफलतापूर्वक पंजीकृत करने के लिए आगे बढ़ सकते हैं। <पी> .env में अपनी ईमेल सत्यापन एपीआई कुंजी जोड़ें फ़ाइल करें ताकि आप इसे जनता के सामने उजागर किए बिना पढ़ सकें: export SECRET_KEY=fdkjshfhjsdfdskfdsfdcbsjdkfdsdf
export DEBUG=True
export APP_SETTINGS=config.DevelopmentConfig
export DATABASE_URL=sqlite:///db.sqlite
export FLASK_APP=src
export FLASK_DEBUG=1
export API_KEY=your-api-key-here
<पी> your-api-key-here को बदलें आपकी सही एपीआई कुंजी के साथ। इसके बाद, आपको पर्यावरण चर को निर्यात करने के लिए फिर से निम्नलिखित कमांड चलाने की आवश्यकता होगी: source .env
<पी> अब, एक utils.py बनाएं accounts के अंदर फ़ाइल src में सबफ़ोल्डर फ़ोल्डर. फ़ाइल में ईमेल को सत्यापित करने के लिए उपयोगिता फ़ंक्शन शामिल होगा। फ़ाइल में निम्नलिखित कोड जोड़ें: import requests
from requests.structures import CaseInsensitiveDict
from decouple import config
def is_valid(email: str):
url = f"https://api.emailvalidation.io/v1/info?email={email}"
headers = CaseInsensitiveDict()
headers["apikey"] = config("API_KEY")
response = requests.get(url, headers=headers)
if response.status_code == 200:
json_resp = response.json()
format_valid = json_resp["format_valid"]
mx_found = json_resp["mx_found"]
smtp_check = json_resp["smtp_check"]
state = json_resp["state"]
return format_valid and mx_found and smtp_check and state == "deliverable"
return False
<पी> जैसा कि पहले उल्लेख किया गया है, is_valid() फ़ंक्शन एक बूलियन मान लौटाता है जो दर्शाता है कि ईमेल पता वैध है या नहीं। यह ध्यान रखना महत्वपूर्ण है कि फ़ंक्शन एपीआई कुंजी मान को हार्डकोड नहीं करता है, इसके बजाय यह इसे पर्यावरण चर से पुनर्प्राप्त करता है। <पी> अगला, RegisterForm में forms.py में कक्षा फ़ाइल, आपके पास validate है विधि. यह विधि पंजीकरण प्रक्रिया के दौरान उपयोगकर्ता द्वारा सबमिट किए गए इनपुट डेटा को मान्य करने के लिए जिम्मेदार है। पी> <पी> पहले, यह विधि केवल यह जांच करती थी कि ईमेल पहले से पंजीकृत है या नहीं और पासवर्ड मेल खाते हैं या नहीं। लेकिन अब आप यह जांचने के लिए अतिरिक्त सत्यापन जोड़ सकते हैं कि ईमेल वैध है या नहीं। इस प्रकार संशोधित validate विधि इस प्रकार दिखती है: ...
from src.accounts.utils import is_valid
...
class RegisterForm(FlaskForm):
...
def validate(self):
initial_validation = super(RegisterForm, self).validate()
if not initial_validation:
return False
if not is_valid(self.email.data):
self.email.errors.append("Email is invalid")
return False
user = User.query.filter_by(email=self.email.data).first()
if user:
self.email.errors.append("Email already registered")
return False
if self.password.data != self.confirm.data:
self.password.errors.append("Passwords must match")
return False
return True
<पी> validate में विधि, यदि self.email.data (वह उपयोगकर्ता का ईमेल पता है) मान्य नहीं है, आप self.email.errors में एक त्रुटि संदेश जोड़ते हैं सूची बनाएं और False लौटाएं जिसका अर्थ है कि उपयोगकर्ता डेटा मान्य नहीं है। <पी> अब, जब आप एप्लिकेशन चलाते हैं और पंजीकरण करने का प्रयास करते हैं, तो आप इसे लाइव देख सकते हैं। यहां वैध और अमान्य दोनों मामलों को दर्शाने वाला एक डेमो है। <पी>
ईमेल सत्यापन सेवा के अन्य उपयोग के मामले
<पी> पंजीकरण के दौरान उपयोगकर्ता के ईमेल को मान्य करने के अलावा, ईमेल सत्यापन सेवाओं के लिए कई अन्य उपयोग के मामले भी हैं। इनमें से कुछ हैं: - ईमेल सूचियाँ साफ करना:आप अमान्य, गैर-मौजूद या जोखिम भरे ईमेल पतों को हटाकर ईमेल सूचियों को साफ करने के लिए ईमेल सत्यापन सेवाओं का उपयोग कर सकते हैं। यह ईमेल वितरण क्षमता को बेहतर बनाने में मदद कर सकता है और यह सुनिश्चित कर सकता है कि आपके ईमेल इच्छित प्राप्तकर्ताओं तक पहुंचें।
- धोखाधड़ी गतिविधियों को रोकना:आप फर्जी खाता निर्माण या धोखाधड़ी वाले आदेशों जैसी धोखाधड़ी गतिविधियों का पता लगाने के लिए ईमेल सत्यापन सेवाओं का भी उपयोग कर सकते हैं। इन गतिविधियों से जुड़े ईमेल पतों को सत्यापित करके, आप ऐसी गतिविधियों को होने से रोक सकते हैं।
- मार्केटिंग अभियानों को बढ़ाना:ये सेवाएँ ईमेल मार्केटिंग अभियानों की सटीकता और प्रभावशीलता को बेहतर बनाने में भी मदद कर सकती हैं। यह सुनिश्चित करके कि ईमेल पते वैध और सक्रिय हैं, व्यवसाय अपनी ईमेल वितरण दर बढ़ा सकते हैं और अपने समग्र अभियान प्रदर्शन में सुधार कर सकते हैं।
<पी> कुल मिलाकर, ईमेल सत्यापन सेवाएँ उपयोगकर्ता डेटा की सटीकता और वैधता सुनिश्चित करने, धोखाधड़ी को रोकने और उपयोगकर्ता अनुभव को बेहतर बनाने में एक शक्तिशाली उपकरण हो सकती हैं। निष्कर्ष
<पी> ईमेल सत्यापन सेवाएँ किसी भी एप्लिकेशन के लिए एक शक्तिशाली उपकरण है जिसके लिए उपयोगकर्ता ईमेल पते को सत्यापित करने की आवश्यकता होती है। त्रुटियों को रोकने और यह सुनिश्चित करने के लिए कि उपयोगकर्ता इनपुट डेटा सही है, यह सुनिश्चित करना आवश्यक है कि ईमेल पते वैध हैं। पी> <पी> इस लेख में, आपने देखा कि Python में ईमेल पते को मान्य करने के लिए emailvalidation.io API का उपयोग कैसे करें। आपने ईमेल सत्यापन सेवाओं के लिए अन्य संभावित उपयोग के मामलों के बारे में भी सीखा, जैसे धोखाधड़ी का पता लगाना और ईमेल मार्केटिंग। पी> <पी> अपने एप्लिकेशन में ईमेल सत्यापन सेवाओं को लागू करके, आप अपने उपयोगकर्ता अनुभव को बेहतर बना सकते हैं और यह सुनिश्चित कर सकते हैं कि आपका डेटा सटीक और अद्यतित है। अतिरिक्त संसाधन
- अपने फ्लास्क ऐप्स को व्यवस्थित करने के लिए ब्लूप्रिंट का उपयोग कैसे करें
- फ्लास्क ऐप में ईमेल सत्यापन कैसे सेट करें
- emailvalidation.io दस्तावेज़ीकरण
<पी> मुफ़्त में कोड करना सीखें. फ्रीकोडकैंप के ओपन सोर्स पाठ्यक्रम ने 40,000 से अधिक लोगों को डेवलपर्स के रूप में नौकरी पाने में मदद की है। आरंभ करें