Beispiel #1
0
 def check_token(cls, user_id, token):
     redis_obj = Redis()
     current_token = redis_obj.read('user_token_%s' % user_id)
     if not current_token: return {"status": "failure", "msg": "token已过期"}
     if current_token != token: return {"status": "failure", "msg": "您的账号已在别处登录"}
     user = User.query.filter_by(id=user_id, is_delete=0).first()
     return {"status": "success", "user": user}
Beispiel #2
0
    def modify_password(self, password, password_, code):
        redis_obj = Redis()
        email_code = redis_obj.read(self.email)

        if not email_code or email_code != code:
            return {"status": "failure", "msg": "邮箱校验失败"}
        if password != password_:
            return {"status": "failure", "msg": "两次密码不一致"}

        self.password = md5(md5(password) + self.encryption)
        db.session.commit()
        return {"status": "success", "msg": "修改成功"}
Beispiel #3
0
    def post(self):
        req_val = SendEmailCodeParse().load(request.values)

        param = {
            "app": current_app._get_current_object(),
            "email": req_val['email'],
            "title": "邮箱验证通知",
            "template": "code",
            "code": random_str(2, 6)
        }
        thr = Thread(target=send_email, kwargs=param)
        thr.start()
        redis_obj = Redis()
        redis_obj.write(req_val['email'], param['code'], 300)
        return {"code": 200, "msg": "邮件发送成功"}
Beispiel #4
0
    def register(cls, email, password, password_, code):
        redis_obj = Redis()
        email_code = redis_obj.read(email)
        exist = User.query.filter_by(email=email, is_delete=0).first()

        if not email_code or email_code != code:
            return {"status": "failure", "msg": "邮箱校验失败"}
        if exist:
            return {"status": "failure", "msg": "该邮箱已被注册"}
        if password != password_:
            return {"status": "failure", "msg": "两次密码不一致"}

        encryption = random_str(6)
        user = User(email=email, password=md5(md5(password) + encryption), encryption=encryption)
        db.session.add(user)
        db.session.commit()
        redis_obj.delete(email)  # 删除邮箱code
        return {"status": "success", "msg": "注册成功"}
Beispiel #5
0
 def create_token(self):
     token = encrypt({"id": self.id, "type": "admin"})
     redis_obj = Redis()
     redis_obj.write('admin_token_%s' % self.id, token,
                     current_app.config['TOKEN_EXPIRE'])
     return token
Beispiel #6
0
 def logout(self):
     redis_obj = Redis()
     redis_obj.delete('admin_token_%s' % self.id)