User Registration with OTP, User Registration with Email OTP, How to Send Mail Using Apps Script
यदि आप चाहते हैं की भी आप जब भी कोई नया User Registered हो तब user के Mail पर के OTP जाए और सही OTP Enter करने के बाद ही User Registered हो सके, इसका एक फायदा यह भी हैं की user अपनी सही mail id ही enter करेगा क्युकी गलत Mail id देने पर OTP उसे नहीं मिलेगा और वह Registration नहीं कर पाएगा।
आइए Step by Step Code को समझते हैं ।
Table of Contents
1. Google Sheet For User Registration with OTP
सबसे पहले एक Google Sheet बना लीजिए, हम जो User Registration Page बनाएंगे तब वहाँ से Entry करेंगे तो वह आकार Google Sheet पर Store हो जाएगी। इसलिए इस मे आपको केवल Columns ही बनाना हैं , Entry हम जब Page पर करेंगे तब यहा दिखाई देगी।
इस sheet का नाम login रखना हैं जो की हमे Apps Script से link करते समय काम आएगा ।
2. HTML Code for User Registration with OTP
इसके बाद हम Apps Script मे एक register.html File बना लेंगे। इसमे फाइल मे आप नीचे CSS और JavaScript का Code लिखा हैं उसे भी Add कर लीजिएगा ।
आपने जो भी Login Page बनाया हो उस पर आप यह Code add कर दीजिएगा ताकि Login से Register Page open किया जा सके ।
login.html
<spanhref="#"onclick="OpenRegisterPage()">Register (New User)</a><script>functionOpenRegisterPage(){
google.script.run.withSuccessHandler(ShowRegister).OpenPage("register");}</script>
3. CSS for User Registration with OTP
यह Css का Code भी आपको HTML फाइल मे ही लिखना हैं यदि आप अलग से फाइल बनाना चाहते हैं तो बना कर Add कर लीजिएगा।
यह JavaScript का Code भी आपको HTML File मे ही add करना हैं । इसमे जो function बनाये हैं उसके बारे मे नीचे Detail मे लिखा हैं ।
<script>functionSendOTP(){var unm = document.getElementById("reg_uname").value.trim();var uid = document.getElementById("reg_uid").value.trim();if(unm ==""){RegReturnMsg("danger,Please Enter User Name...");return;}if(uid ==""){RegReturnMsg("danger,Please Enter Correct Email ID...");return;}
google.script.run.withSuccessHandler(RegReturnMsg).sendPassword(uid,unm);}functionRegister(){var unm = document.getElementById("reg_uname").value.trim();var uid = document.getElementById("reg_uid").value.trim();var pass = document.getElementById("reg_pass").value.trim();var repass = document.getElementById("reg_repass").value.trim();var otp = document.getElementById("reg_otp").value.trim();if(pass != repass){RegReturnMsg("danger,Password Not Matched...");}else{
google.script.run.withSuccessHandler(RegReturnMsg).CheckOTP(uid,pass,unm, otp);}}functionRegReturnMsg(data){let v = data.split(",");let type=v[0];$('#RetMsgReg').removeClass("alert-success").removeClass("alert-danger").addClass("alert-"+type);$('#RetMsgReg').html(v[1]);$('#RetMsgReg').show();if(type =='success'){//setTimeout(function(){ //document.getElementById("myid").click();// }, 3000);}}</script>
SendOTP() : इस Function से E-mail पर OTP send किया जाएगा।
Register() : इस Function का उपयोग कर हम Screen से सभी जरूरी Columns की Value को लेकर उसे Apps Script पर भेज देते हैं । साथ ही मे Screen Level के Validation भी हमने इसमे लगाए हैं । जो भी Apps Script से Return आता हैं उससे एक नया Function Call कर देते हैं जो की निम्न हैं । इसमे हमारे द्वारा दिया गया OTP ओर जो हमे Mail पर OTP प्राप्त हुवा हैं जब दोनों ही मैच होंगे तब है User Registration हो पाएगा।
RegReturnMsg(data) : इस Function से जीतने भी Validation लगाए हैं उन्हे दिखाया गया हैं।
5. Apps Script Code for User Registration with OTP
let MySheets = SpreadsheetApp.getActiveSpreadsheet();let LoginSheet = MySheets.getSheetByName("login");functiondoGet(e){var output = HtmlService.createTemplateFromFile('login');return output.evaluate();}functionOpenPage(PageName){return HtmlService.createHtmlOutputFromFile(PageName).getContent();}functionsetSession(session){var sId = Session.getTemporaryActiveUserKey();var uProp = PropertiesService.getUserProperties();
uProp.setProperty(sId,JSON.stringify(session));}functiongetSession(){var sId = Session.getTemporaryActiveUserKey();var uProp = PropertiesService.getUserProperties();var sData = uProp.getProperty(sId);return sData ?JSON.parse(sData):{loggedIn:false};}functionUserRegister(pUID, pPassword, pName){let RetMsg ='';let ReturnData = LoginSheet.getRange("A:A").createTextFinder(pUID).matchEntireCell(true).findAll();let StartRow =0;
ReturnData.forEach(function(range){
StartRow = range.getRow();});if(StartRow >0){
RetMsg ='danger, User Already Exists';}else{
LoginSheet.appendRow([pUID, pPassword, pName]);
RetMsg ='success, User Successfully Registered';}return RetMsg;}functionsendPassword(id,nm){letOTP=""+ Math.ceil((Math.random()+1)*1000);OTP=OTP.substring(0,4);let MsgBody ="<h4>Hello, <b>"+nm+"</b><p>Your OTP for Login</p></h4><h1>"+OTP+"</h1>";//MailApp.sendEmail(id, "OTP For Login", MsgBody);
MailApp.sendEmail({to: id,subject:"OTP For Login",htmlBody: MsgBody});var sess =getSession();
sess.OTP=OTP;setSession(sess);return'success, OTP has been sent to your Mail';}functionCheckOTP(pUID, pPassword, pName, pOTP){var sess =getSession();if(sess.OTP== pOTP){returnUserRegister(pUID, pPassword, pName);}else{return'danger, OTP Not Matched';}}
6. Video के माध्यम से समझने के लिए
7. Execution (User Registration)
इस Page से हम कोई भी नए User का Registration कर सकते हैं । इसमे Example के केवल वही Columns लिए हैं जो जरूरी हैं आप चाहे तो और भी Columns ले सकते हैं । इस Page पर हमने कुछ Validation भी लगाए हैं ।
सभी Field Enter करने के बाद आप Send OTP Button पर Click करेंगे ऐसा करने पर आपके Mail पर एक OTP प्राप्त होगा और साथ ही मे आपको निम्न प्रकार से Message दिखाई देगा।
Mail मे OTP कुछ इस प्रकार से दिखाई देगा।
इस OTP को आपको Screen पर Type करना हैं सही सही हुवा तो आगे के Success के Message आएंगे
और यदि आपने Password और Re-enter Password same नहीं होने पर निम्न प्रकार से Message आएगा, यह JavaScript से किया हैं ।
यदि एक बार पहले से User Registered हैं तब User Already Exists का Message आएगा।
8. Google Apps Script Email Quotas (Daily Mail Sending Limit)
Google Apps Script पूरी तरह से Free नहीं हैं , एक लिमिट तक आप Free मे उपयोग कर सकते हैं उसके बाद आपको निम्न Table के अनुसार Charges लगेंगे। यह टेबल 16-08-2023 को बनाई हैं इस समय के Charges यह हैं ।
आशा हैं मुझे आपको User Registration with OTP बहुत ही अच्छे से समझ मे आ गया हैं, इस Article से related कोई भी Query हो तो आप मुझे निःसंकोच comment कर सकते हैं । यह Article कैसा लगा Comment करना न भूले । अपना कीमती समय देने के लिए धन्यवाद ।