首页 > 解决方案 > 我可以在一个项目中使用电子邮件验证功能和使用谷歌登录吗?(在 django 中)

问题描述

我尝试制作一个具有电子邮件验证和使用谷歌功能登录的网站,所以首先我制作了电子邮件验证功能,它可以工作,然后我尝试使用谷歌功能登录,但是当我在教程中看到时,只能有 1功能,即选择验证电子邮件或使用google登录,因为我使用自定义身份验证系统制作的验证电子邮件部分,而教程中使用google登录则使用包中的默认身份验证系统。如果两个都可以用,怎么用?

这是我的views.py(我的登录和注册功能)

class RegistrationView(View):
    def get(self, request):
        form = RegistrationForm()
        return render(request, 'app/register.html',{'form':form})
    def post(self, request):
        form = RegistrationForm(request.POST)
        if form.is_valid():
            messages.success(request,'Selamat Akun kamu telah Teregistrasi. Silahkan lihat email untuk memverifikasi')
            form.save()
        
        email = request.POST.get('email')
        user = User.objects.get(email=email)
        send_activation_email(user,request)
        return redirect('registration')  

class LoginView(View):
    def get(self, request):
        form = LoginForm()
        return render(request, 'app/login.html',{'form':form})
    def post(self, request):
        username = request.POST.get('username')
        password = request.POST.get('password')
        
        user = authenticate(request, username=username, password=password)
        
        if user and not user.is_email_verified:
            messages.add_message(request, messages.ERROR,
                                 'Email mu belum terverifikasi silahkan lihat inbox email mu')
            return redirect('login')
            
        if not user:
            messages.error(request,'Password atau Username Salah')
            return redirect('login')
        
        login(request, user)
        return redirect('profile')    

我在这篇文章中使用谷歌代码 在 django 中使用 Google OAuth 进行用户注册

标签: pythondjangogoogle-signinemail-verification

解决方案


推荐阅读