Beispiel #1
0
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='邮件发送成功')
Beispiel #2
0
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='邮件发送成功')
Beispiel #3
0
 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='短信验证码错误')
Beispiel #4
0
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
Beispiel #5
0
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
Beispiel #6
0
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('参数错误')