| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | 
							- #!/usr/bin/env python3
 
- # -*- coding: utf-8 -*-
 
- from django.views import View
 
- from Controller.CheckUserData import DataValid
 
- from Object.RedisObject import RedisObject
 
- from Object.ResponseObject import ResponseObject
 
- from Object.TokenObject import TokenObject
 
- from Service.CommonService import CommonService
 
- class VerifyCodeView(View):
 
-     def get(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         operation = kwargs.get('operation', None)
 
-         request_dict = request.GET
 
-         return self.validate(request_dict, operation)
 
-     def post(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         operation = kwargs.get('operation', None)
 
-         request_dict = request.POST
 
-         return self.validate(request_dict, operation)
 
-     def validate(self, request_dict, operation):
 
-         response = ResponseObject()
 
-         lang = request_dict.get('lang', 'en')
 
-         response.lang = lang
 
-         if operation == 'forget':
 
-             return self.verify_forget(request_dict, response)
 
-         elif operation == 'register':
 
-             return self.verify_register(request_dict, response)
 
-         elif operation == 'image':
 
-             return self.verify_image(request_dict, response)
 
-         else:
 
-             return response.json(404)
 
-     def verify_forget(self, request_dict, response):
 
-         email = request_dict.get('email', None)
 
-         phone = request_dict.get('phone', None)
 
-         authcode = request_dict.get('authcode', None)
 
-         key = '_forgetPwdResetCode'
 
-         if authcode is None:
 
-             return response.json(444)
 
-         authcode = CommonService.decode_data(authcode)
 
-         if email is not None:
 
-             email = email.strip()
 
-             return self.email_validate(key, email, authcode, response)
 
-         elif phone is not None:
 
-             phone = phone.strip()
 
-             return self.phone_validate(key, phone, authcode, response)
 
-         else:
 
-             return response.json(444)
 
-     def verify_register(self, request_dict, response):
 
-         email = request_dict.get('email', None)
 
-         phone = request_dict.get('phone', None)
 
-         authcode = request_dict.get('authcode', None)
 
-         key = '_identifyingCode'
 
-         if authcode is None:
 
-             return response.json(444)
 
-         authcode = CommonService.decode_data(authcode)
 
-         if email is not None:
 
-             email = email.strip()
 
-             return self.email_validate(key, email, authcode, response)
 
-         elif phone is not None:
 
-             phone = phone.strip()
 
-             return self.phone_validate(key, phone, authcode, response)
 
-         else:
 
-             return response.json(444)
 
-     def verify_image(self, request_dict, response):
 
-         imageCodeId = request_dict.get('imageCodeId', None)
 
-         authcode = request_dict.get('authcode', None)
 
-         if imageCodeId and authcode:
 
-             authcode = CommonService.decode_data(authcode)
 
-             image_code_key = 'image_code_' + imageCodeId
 
-             redisObj = RedisObject(db=6)
 
-             # redis里面的验证码
 
-             redis_image_code = redisObj.get_data(key=image_code_key)
 
-             # 验证用户输入的验证码和redis中的验证码
 
-             if redis_image_code is False or authcode.lower() != redis_image_code.lower():
 
-                 return response.json(121)
 
-             else:
 
-                 return response.json(0)
 
-         else:
 
-             return response.json(444)
 
-     def email_validate(self, key, email, authcode, response):
 
-         authcode.strip()
 
-         data_valid = DataValid()
 
-         if data_valid.email_validate(email) is not True:
 
-             return response.json(105)
 
-         reds = RedisObject()
 
-         resetCode = reds.get_data(key=email + key)
 
-         if resetCode is False:
 
-             return response.json(120)
 
-         if authcode != resetCode:
 
-             return response.json(121)
 
-         return response.json(0)
 
-     def phone_validate(self, key, phone, authcode, response):
 
-         authcode.strip()
 
-         data_valid = DataValid()
 
-         if data_valid.mobile_validate(phone) is not True:
 
-             return response.json(100)
 
-         reds = RedisObject()
 
-         resetCode = reds.get_data(key=phone + key)
 
-         if resetCode is False:
 
-             return response.json(120)
 
-         print(resetCode)
 
-         if authcode != resetCode:
 
-             return response.json(121)
 
-         return response.json(0)
 
 
  |