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}
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": "修改成功"}
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": "邮件发送成功"}
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": "注册成功"}
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
def logout(self): redis_obj = Redis() redis_obj.delete('admin_token_%s' % self.id)