Hi,
I completed OTP verification in Django. With html form and django views and
I am saving otp in the user model itself. There I was successfully
completed. Here is a code snippet.
`HTML form`
```
 <form method="post" name="passwordResetForm"
action="/phone-otp-verify/{{id}}" onsubmit="return myfn()">
                {% csrf_token %}
                <input id="codeBox1" class="secure_code" type="number"
name="security_1" maxlength="1" onkeyup="onKeyUpEvent(1, event)"
onfocus="onFocusEvent(1)" autofocus/>
                <input id="codeBox2" class="secure_code" type="number"
name="security_2" maxlength="1" onkeyup="onKeyUpEvent(2, event)"
onfocus="onFocusEvent(2)"/>
                <input id="codeBox3" class="secure_code" type="number"
name="security_3" maxlength="1" onkeyup="onKeyUpEvent(3, event)"
onfocus="onFocusEvent(3)"/>
                <input id="codeBox4" class="secure_code" type="number"
name="security_4" maxlength="1" onkeyup="onKeyUpEvent(4, event)"
onfocus="onFocusEvent(4)"/>
                <input id="codeBox5" class="secure_code" type="number"
name="security_5" maxlength="1" onkeyup="onKeyUpEvent(5, event)"
onfocus="onFocusEvent(5)"/>

                <input type="submit">

            </form>
```
`Views.py`
```
def phone_otp_verify(request, id):
    Qurycustomer = customer.objects.get(id=id)
    email = Qurycustomer.email
    email_split = email.split('@')
    email_list = email_split[0]
    email_hide = email_list[:2] + "*****" + email_split[1]
    phone_number = Qurycustomer.phonenumber
    phone_hide = phone_number[-4:]
    modified_date = Qurycustomer.modified_date
    date_now = timezone.now()
    date_total = date_now - modified_date
    minutes = date_total.seconds / 60
    OTP = Qurycustomer.phone_OTP

    if minutes < 11:
        OTP = Qurycustomer.phone_OTP
        # To get server side IP address. We are using ipware django package.
        client_ip, is_routable = get_client_ip(request)
        ip_address = client_ip
        #  here we took one variable as osname and concatenated os name and
version
        osname = request.user_agent.os.family + " " +
request.user_agent.os.version_string
        webname = request.user_agent.browser.family + " " +
request.user_agent.browser.version_string
        if request.method == 'POST':
            security_1 = request.POST['security_1']
            security_2 = request.POST['security_2']
            security_3 = request.POST['security_3']
            security_4 = request.POST['security_4']
            security_5 = request.POST['security_5']
            # password = request.POST['password']
            # repassword = request.POST['repassword']
            OTP_entered = str(security_1) + str(security_2) +
str(security_3) + str(security_4) + str(security_5)
            # OTP_entered = str(security_1) + str(security_2) +
str(security_3) + str(security_4)
            OTP_en = int(OTP_entered)
            if OTP == OTP_en:
                # Here, encrypting password by using hashers library in
django.
                # enc_password = pbkdf2_sha256.encrypt(password,
rounds=12000, salt_size=32)
                # enc_repassword = pbkdf2_sha256.encrypt(repassword,
rounds=12000, salt_size=32)
                Qurycustomer.cust_status = 1
                Qurycustomer.phone_verify = 1
                # Qurycustomer.password = enc_password
                # Qurycustomer.repassword = enc_repassword
                Qurycustomer.phone_OTP = 00000
                Qurycustomer.os_name = osname
                Qurycustomer.browser = webname
                Qurycustomer.ip_address = ip_address
                Qurycustomer.history.change_by_reason = "Phone number
verified"
                Qurycustomer.save()
                # Welcome back! your membership activation is completed.
                success = "Thank you for registering with Vikreya. Your
membership activation is completed. "
                # success = "Security code has been validated and Phone
number verification is completed. You can now "
                return redirect('/home')
            else:
                messages.add_message(request, messages.ERROR,
                                     """You enter Security code is not
valid.
                                Try once again with correct Security
code.""", fail_silently=False)
                return render(request, 'phone_otp_verify.html', {'id':
Qurycustomer.id, 'otp': OTP,

 'fullname': fullname(email),
                                                                 'name':
first_last_initial(email),
                                                                 'time':
settings.SESSION_IDLE_TIMEOUT,

 'phone_hide': phone_hide})
    else:
        Qurycustomer.phone_OTP = 00000
        Qurycustomer.save()
        messages.add_message(request, messages.ERROR, "Sorry the OTP is
expired, please click Re-send OTP to generate new OTP.")
        return render(request, 'phone_otp_verify.html', {'id':
Qurycustomer.id, 'otp': OTP,
                                                       'fullname':
fullname(email),
                                                       'name':
first_last_initial(email),
                                                       'time':
settings.SESSION_IDLE_TIMEOUT,
                                                         'phone_hide':
phone_hide})
    return render(request, 'phone_otp_verify.html', {'id': Qurycustomer.id,
'otp': OTP,
                                                    'fullname':
fullname(email),
                                                    'name':
first_last_initial(email),
                                                    'time':
settings.SESSION_IDLE_TIMEOUT,
                                                   'phone_hide':
phone_hide})
````
 and how to write in Django rest framework for otp verification.
Please help me.
Thank you
~Salima

-- 
You received this message because you are subscribed to the Google Groups 
"Django REST framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-rest-framework+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-rest-framework/CAMSz6bnP49s7xK22pK1qiw3Luffh03VqhhsRhoq4%2B4X1Eyyi5A%40mail.gmail.com.

Reply via email to