fix: 登录时验证码卡住

pull/6688/head
xinwen 2021-08-19 15:11:55 +08:00 committed by 老广
parent 2af6ac504d
commit 7d123ff8c5
2 changed files with 6 additions and 2 deletions

View File

@ -2,6 +2,7 @@
# #
from django.urls import path, include from django.urls import path, include
from django.db.transaction import non_atomic_requests
from .. import views from .. import views
from users import views as users_view from users import views as users_view
@ -10,7 +11,7 @@ app_name = 'authentication'
urlpatterns = [ urlpatterns = [
# login # login
path('login/', views.UserLoginView.as_view(), name='login'), path('login/', non_atomic_requests(views.UserLoginView.as_view()), name='login'),
path('login/otp/', views.UserLoginOtpView.as_view(), name='login-otp'), path('login/otp/', views.UserLoginOtpView.as_view(), name='login-otp'),
path('login/wait-confirm/', views.UserLoginWaitConfirmView.as_view(), name='login-wait-confirm'), path('login/wait-confirm/', views.UserLoginWaitConfirmView.as_view(), name='login-wait-confirm'),
path('login/guard/', views.UserLoginGuardView.as_view(), name='login-guard'), path('login/guard/', views.UserLoginGuardView.as_view(), name='login-guard'),

View File

@ -4,6 +4,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import os import os
import datetime import datetime
from django.contrib.auth import login as auth_login, logout as auth_logout from django.contrib.auth import login as auth_login, logout as auth_logout
from django.http import HttpResponse from django.http import HttpResponse
from django.shortcuts import reverse, redirect from django.shortcuts import reverse, redirect
@ -17,6 +18,7 @@ from django.views.generic.edit import FormView
from django.conf import settings from django.conf import settings
from django.urls import reverse_lazy from django.urls import reverse_lazy
from django.contrib.auth import BACKEND_SESSION_KEY from django.contrib.auth import BACKEND_SESSION_KEY
from django.db.transaction import atomic
from common.utils import get_request_ip, FlashMessageUtil from common.utils import get_request_ip, FlashMessageUtil
from users.utils import ( from users.utils import (
@ -107,7 +109,8 @@ class UserLoginView(mixins.AuthMixin, FormView):
self.request.session.delete_test_cookie() self.request.session.delete_test_cookie()
try: try:
self.check_user_auth(decrypt_passwd=True) with atomic():
self.check_user_auth(decrypt_passwd=True)
except errors.AuthFailedError as e: except errors.AuthFailedError as e:
form.add_error(None, e.msg) form.add_error(None, e.msg)
self.set_login_failed_mark() self.set_login_failed_mark()