def generate_otp_recovery_code(user): OtpRecoveryCode.objects.filter(user=user).delete() code_list = [] for row in xrange(3): code = random_char_list(12, 3) code_list.append(code) OtpRecoveryCode.objects.create(user=user,code=code,is_active=True) return code_list
def send_email_code(self, request): """ 发送邮箱验证码 """ serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) email = serializer.validated_data["email"] char_list = map(str, random_char_list(4)) code = ''.join(char_list) try: cache.set(email, code, 3 * 60) subject = content = '您的验证码是: %s ,该验证码有效期3分钟, 如非本人操作请忽略此邮件!' % code send_html_mail(email, subject, content) except Exception as e: return Response({"detail": e[0]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return Response({"email": email}, status=status.HTTP_201_CREATED)
def send_sms_code(self, request): """ 发送短信验证码 """ serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) phone = serializer.validated_data["phone"] char_list = map(str, random_char_list(4)) code = ''.join(char_list) try: cache.set(phone, code, 3 * 60) content = '您的验证码是: %s ,该验证码有效期3分钟, 如非本人操作请忽略此短信!' % code send_sms(phone, content) except Exception as e: return Response({"detail": e[0]}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return Response({"phone": phone}, status=status.HTTP_201_CREATED)