Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.shortcuts import render, HttpResponseRedirect,HttpResponse, redirect
- from django.contrib.auth import authenticate, login, logout
- from django.contrib import messages
- from django.urls import reverse
- from django.contrib.auth.decorators import login_required
- from django.core.mail import send_mail, BadHeaderError
- from django.template.loader import render_to_string
- from django.conf import settings
- import random
- from django.contrib.auth.models import User
- # Create your views here.
- @login_required()
- def home(request):
- context = {}
- return render(request, 'login/index.html', context)
- otp = 0
- @login_required()
- def otp_page(request):
- rno = random.randint(100000, 999999)
- global otp
- otp = str(rno)
- subject = 'Activate Your Account'
- message = render_to_string('login/otp_email.html', {
- 'otp': otp
- })
- sender = settings.EMAIL_HOST_USER
- recipients = [request.user.email]
- send_mail(subject, message,sender, recipients, fail_silently=True)
- messages.warning(request, ('you have received otp in your mail!'))
- context = {'otp':str(otp)}
- return render(request, 'login/otp_page.html', context)
- def validate_otp(request):
- user_otp = request.POST.get("otp")
- if user_otp == str(otp):
- return render(request, 'login/index.html')
- else:
- messages.success(request, "wrong otp")
- return render(request, 'login/login.html')
- def login_user(request):
- context = {}
- return render(request, 'login/login.html', context)
- def login_validate(request):
- if request.method == "POST":
- username = request.POST['username']
- password = request.POST['password']
- user = authenticate(request, username = username, password = password)
- if user is not None:
- login(request, user)
- return HttpResponseRedirect(reverse('otp_page'))
- else:
- messages.error(request, "bad username")
- context = {}
- return render(request, 'login/login.html', context)
- def logout_user(request):
- logout(request)
- return redirect('login')
Add Comment
Please, Sign In to add comment