मैं एक स्थिर वेबसाइट, एचटीएमएल, सीएसएस, और वेनिला जेएस बना रहा हूं। मैं एक ऐसे बिंदु पर आ गया जहां जब भी कोई फॉर्म जमा होता है तो मुझे क्लाइंट को ईमेल भेजने के लिए MailChamp का उपयोग करना पड़ता है। इतना मुश्किल नहीं है, एपीआई कॉल कैसे करें इस पर दस्तावेज़ बहुत स्पष्ट हैं। लेकिन मुझे प्रत्येक अनुरोध के साथ एक API_KEY भेजने की आवश्यकता है। जो एक समस्या है। मैं इस गुप्त कुंजी को कोड में सहेजना नहीं चाहता। मैंने इसे जीथब रेपो पर एक रहस्य के रूप में जोड़ा है। लेकिन मुझे यकीन नहीं है कि मैं इसे वेनिला जेएस फाइलों पर कैसे एक्सेस कर सकता हूं। मैंने निम्नलिखित की कोशिश की,

process.env.API_KEY और API_KEY

मुझे यह त्रुटि मिल रही है, sendEmail.js:1 Uncaught ReferenceError: process is not defined

जो समझ में आता है, क्योंकि यह एक स्थिर वेबसाइट है। लेकिन मैं किसी अन्य तरीके के बारे में नहीं सोच सकता। यदि यह एक नोड प्रक्रिया होती तो यह बहुत आसान होता:/


मान लें कि मैं एक एपीआई एंडपॉइंट बनाता हूं, और सर्वर जहां मैं सुरक्षित रूप से API_KEY को सहेज सकता हूं, मैं फ्रंट-एंड/स्टेटिक वेबसाइट से आने वाले अनुरोध को कैसे प्रमाणित करूं? यह मानते हुए कि मैं क्लाइंट साइड पर टोकन को सुरक्षित रूप से सहेज नहीं सकता।

5
Hafiz Temuri 21 पद 2020, 04:30
अच्छा हाँ और नहीं, मुझे पहले से ही पता था कि क्लाइंट ब्राउज़र में कुंजी को सुरक्षित करना असंभव होगा। मैं यह जानने की उम्मीद कर रहा था कि क्या बैक-एंड सर्वर की आवश्यकता के बिना मेलचैम्प को इसकी देखभाल करने की कोई संभावना है।
 – 
Hafiz Temuri
21 पद 2020, 06:20
आपकी मेल सेवा के लिए यह कैसे संभव होगा कि यदि आपको प्रत्येक कॉल के लिए प्रमाणीकरण जानकारी प्रदान न करनी पड़े तो बिल की सदस्यता क्या होगी...? इसके अलावा, "MailChamp" क्या है? मुझे ऐसी किसी भी सेवा की जानकारी नहीं है, इसलिए मैं निश्चित रूप से यह नहीं कह सकता कि क्या वे इस तरह के डिज़ाइन का समर्थन करेंगे। उनके दस्तावेज़ीकरण या अन्य सहायक सामग्री को जोड़ने पर विचार करें? या आप "मेलचिंप" की बात कर रहे हैं?
 – 
esqew
21 पद 2020, 06:48
क्षमा करें, मैं उन्हें गलत वर्तनी देता रहता हूं। हाँ, यह है MailChimp
 – 
Hafiz Temuri
21 पद 2020, 07:02
किसी भी मामले में, मेरा प्रश्न अभी भी खड़ा है: आपकी मेल सेवा कैसे जान सकती है कि इस प्रकार के प्रमाण-पत्रों को पारित करने के लिए नहीं तो किसे बिल देना है?
 – 
esqew
21 पद 2020, 07:04

1 उत्तर

सबसे बढ़िया उत्तर

इसे जिस तरह से आप चाहते हैं, करने का कोई तरीका नहीं है, यानी शुद्ध फ्रंट एंड (एफई) के साथ क्योंकि इसका मतलब यह होगा कि आपको अपने रहस्य उन्हें भेजने की जरूरत है। आप जो कुछ भी फ़्रंट एंड को भेजते हैं वह आपके उपयोगकर्ताओं के लिए हमेशा पहुंच योग्य रहेगा, इसलिए यह सुरक्षित नहीं है। आपको बैक-एंड (बीई) की आवश्यकता है, किसी प्रकार का सर्वर जो एफई से एसिंक कॉल प्राप्त करेगा, बाहरी एपीआई से कनेक्ट होगा और जो कुछ भी आप चाहते हैं उसे करें, और फिर किसी प्रकार की पुष्टि भेजें एफई कि प्रक्रिया सफल रही। अब, बीई आपके रहस्यों को जान लेगा, और यह ठीक है क्योंकि आप इसे नियंत्रित करते हैं और उपयोगकर्ताओं के पास सीधे उस तक पहुंच नहीं होगी।

अब, आपको इसके लिए हमेशा एक पूर्ण विकसित एप्लिकेशन की आवश्यकता नहीं होती है, कुछ लोग फायरबेस जैसे प्लेटफॉर्म के साथ काम कर रहे हैं, जो आपके लिए उदाहरण के लिए उपयोगकर्ताओं के प्रमाणीकरण को संभाल सकता है।

3
IvanD 21 पद 2020, 04:49
@ हाफिज-टेमुरी, अगर इससे आपकी मदद मिली तो कृपया मेरा जवाब स्वीकार करें :)
 – 
IvanD
21 पद 2020, 06:20
क्या PHP जैसी किसी सेवा या गतिशील भाषा का उपयोग किए बिना फॉर्म जमा करने पर ईमेल प्राप्त करना संभव है? यदि ब्राउज़र एपीआई कॉल कर सकता है, तो ईमेल क्यों न भेजें ?! ईमेल स्पैमिंग के कारण? जो रोज मिलता है।
 – 
Hafiz Temuri
21 पद 2020, 06:25
क्या आप सोच सकते हैं कि यदि कोई मनमानी वेबसाइट जिसे आपने आसानी से ब्राउज़ किया है, वह आपके ब्राउज़र को आपकी ओर से ईमेल भेजने का निर्देश दे सकती है? यदि अल्पविकसित मैलवेयर आपकी तरह ईमेल भेज सकता है? ब्राउज़र ईमेल क्लाइंट नहीं हैं, और अच्छे कारण के लिए।
 – 
esqew
21 पद 2020, 06:47
क्या यह नहीं है कि ईमेल स्कैमिंग कैसे काम करती है, वे किसी और के होने का दिखावा करते हैं।
 – 
Hafiz Temuri
21 पद 2020, 07:01
बिल्कुल नहीं, वास्तव में। ईमेल स्पैमर्स ने समय के साथ कई विधियों का उपयोग किया है लेकिन जावास्क्रिप्ट मानक के भीतर परिभाषित किसी भी विधि को कॉल के माध्यम से किसी अन्य उपयोगकर्ता के रूप में ईमेल भेजना एक नहीं है। क्योंकि यह कार्यक्षमता कभी भी मानक का हिस्सा नहीं रही है।
 – 
esqew
21 पद 2020, 07:03