|
@@ -21,6 +21,8 @@ from django.utils import timezone
|
|
|
from Ansjer.config import *
|
|
|
from Service.ResponseService import *
|
|
|
from Service.TemplateService import TemplateService
|
|
|
+from ratelimit.decorators import ratelimit
|
|
|
+
|
|
|
'''
|
|
|
http://13.56.215.252:82/account/authcode?userName=123456&language=en&mid=1234
|
|
|
http://13.56.215.252:82/account/authcode?userEmail=123456&language=en&mid=1234
|
|
@@ -31,7 +33,11 @@ class getAuthCodeView(TemplateView):
|
|
|
def dispatch(self, *args, **kwargs):
|
|
|
return super(getAuthCodeView, self).dispatch(*args, **kwargs)
|
|
|
|
|
|
+ @ratelimit(key='ip', rate='2/m')
|
|
|
def post(self, request, *args, **kwargs):
|
|
|
+ was_limited = getattr(request, 'limited', False)
|
|
|
+ if was_limited is True:
|
|
|
+ return ResponseJSON(5)
|
|
|
request.encoding ='utf-8'
|
|
|
username = request.POST.get('userName', None)
|
|
|
useremail = request.POST.get('userEmail', None)
|
|
@@ -42,7 +48,11 @@ class getAuthCodeView(TemplateView):
|
|
|
mid = request.POST.get('mid', sessionID)
|
|
|
return self.ValidationError(username,useremail,language,mid)
|
|
|
|
|
|
+ @ratelimit(key='ip', rate='2/m')
|
|
|
def get(self, request, *args, **kwargs):
|
|
|
+ was_limited = getattr(request, 'limited', False)
|
|
|
+ if was_limited is True:
|
|
|
+ return ResponseJSON(5)
|
|
|
request.encoding = 'utf-8'
|
|
|
username = request.GET.get('userName', None)
|
|
|
useremail = request.GET.get('userEmail', None)
|
|
@@ -86,11 +96,7 @@ class getAuthCodeView(TemplateView):
|
|
|
|
|
|
if validateFlag is True:
|
|
|
identifyingCode = CommonService.get_redis_data(key=mid+'_identifyingCode')
|
|
|
- getcodename = CommonService.get_redis_data(key=mid + '_getcodename')
|
|
|
-
|
|
|
- if getcodename is not False:
|
|
|
- getcodename = getcodename.decode("utf-8")
|
|
|
- if identifyingCode is False or getcodename != val:
|
|
|
+ if identifyingCode is False:
|
|
|
identifyingCode = RandomStr(6, True)
|
|
|
if type == 1:
|
|
|
CommonService.set_redis_data(key=mid + '_identifyingCode', val=identifyingCode, expire=300)
|
|
@@ -110,7 +116,6 @@ class getAuthCodeView(TemplateView):
|
|
|
send_res = True
|
|
|
if send_res is True:
|
|
|
CommonService.set_redis_data(key=mid+'_identifyingCode', val=identifyingCode, expire=300)
|
|
|
- CommonService.set_redis_data(key=mid+'_getcodename', val=val, expire=300)
|
|
|
return ResponseJSON(0, {'identifyingCode': identifyingCode},language=language)
|
|
|
else:
|
|
|
return ResponseJSON(44,language=language)
|