def email_captcha(): #/cms/email_capthcha/[email protected] email = request.args.get('email') print(email) if not email: return xjson.json_params_error('请传递邮件参数!') #生成6位数的随机验证码 source = list(string.ascii_letters) source.extend(map(lambda x: str(x), range(0, 10))) captcha = ''.join(random.sample(source, 6)) #发送邮件 msg = Message('BBS论坛更换邮箱验证码', recipients=[email], body='您的验证码:{},5分钟内邮箱'.format(captcha)) try: mail.send(msg) except Exception as err: print(err) return xjson.json_server_error(message='邮件发送失败') #验证码存入memcached xcache.set(email, captcha) return xjson.json_sucess(message='邮件发送成功')
def email_captcha(): email = request.args.get('email') if not email: return xjson.json_paramserror('请传递邮箱地址') #生成6位数的随机验证码 source = list(string.ascii_letters) source.extend(map(lambda x:str(x),range(0,10))) captcha = ''.join(random.sample(source,6)) #发送验证码邮件 msg = Message('Aroma的BBS论坛更换邮箱验证码', recipients=[email], body='您的验证码是:{},5分钟内有效'.format(captcha) ) try: mail.send(msg) except Exception as err: print(err) return xjson.json_servererror(message='邮件发送失败') # 验证码存入memcache print(email+'*'*10+captcha) xcache.set(email, captcha) return xjson.json_success(message='邮件发送成功')
def validate_sms_captcha(self, field): telephone = self.telephone.data sms_captcha = field.data xcache.set('13297554024', 'luck') sms_captcha_mem = xcache.get(telephone) print('用户输入的验证码:{}'.format(sms_captcha)) print('服务器存储的验证码:{}'.format(sms_captcha_mem)) if not sms_captcha_mem or sms_captcha_mem != sms_captcha: raise ValidationError(message='短信验证码错误')
def graph_captcha(): text, image = Captcha.gene_graph_captcha() out = BytesIO() image.save(out, 'png') out.seek(0) resp = make_response(out.read()) resp.content_type = 'image/png' xcache.set(text.lower(),text.lower()) #图片验证码这里,不好设置一个唯一的key,索性直接也用验证码的值作为key return resp
def graph_captcha(): text, image = Captcha.gene_graph_captcha() xcache.set(text.lower(), text.lower()) out = BytesIO() image.save(out, 'png') out.seek(0) resp = make_response(out.read()) resp.content_type = 'image/png' return resp
def sms_captcha(): sms_captcha_form = SmsCaptchaForm(request.form) if sms_captcha_form.validate(): telephone = sms_captcha_form.telephone.data #生成随机的验证,之前图片那里有方法实现了,我们直接调用就行,生成6位的验证码 radom_code = Captcha.gene_text(6) cont = '测试bbs,您的验证码为:%s' % (radom_code) params = {'code': cont} result = send_sms(telephone, params) dict_res = json.loads(result) if dict_res['code'] == 0: xcache.set(telephone,radom_code) #把手机号作为key return xjson.json_sucess('短信发送成功') else: return xjson.json_server_error('短信发送失败') else: return xjson.json_params_error('参数错误')