wip:(重构接口实现方式4)
This commit is contained in:
@@ -2,7 +2,8 @@ from flask import render_template, make_response
|
||||
from flask import session, redirect, url_for
|
||||
from flask.views import MethodView
|
||||
from flask_login import current_user, login_user
|
||||
from flask_restful import reqparse
|
||||
from flask_pydantic import validate
|
||||
from pydantic import BaseModel
|
||||
|
||||
from common.gen_captcha import add_auth_session
|
||||
from common.utils.http import fail_api, success_api
|
||||
@@ -10,6 +11,12 @@ from common.utils.rights import record_logging
|
||||
from models import UserModel
|
||||
|
||||
|
||||
class LoginModel(BaseModel):
|
||||
username: str
|
||||
password: str
|
||||
captcha: str
|
||||
|
||||
|
||||
class LoginAPI(MethodView):
|
||||
|
||||
def get(self):
|
||||
@@ -17,19 +24,14 @@ class LoginAPI(MethodView):
|
||||
return redirect(url_for('admin.index'))
|
||||
return make_response(render_template('index/login.html'))
|
||||
|
||||
def post(self):
|
||||
login_req = reqparse.RequestParser(bundle_errors=True)
|
||||
login_req.add_argument('username', type=str, help='请输入用户名', required=True)
|
||||
login_req.add_argument('password', type=str, help='请输入密码', required=True)
|
||||
login_req.add_argument('captcha', type=str, help='请输入验证码', required=True)
|
||||
req = login_req.parse_args()
|
||||
|
||||
@validate()
|
||||
def post(self, body: LoginModel):
|
||||
s_code = session.get("code", None)
|
||||
session["code"] = None
|
||||
|
||||
if req.captcha != s_code:
|
||||
if body.captcha != s_code:
|
||||
return fail_api(message="验证码错误")
|
||||
user = UserModel.query.filter_by(username=req.username).first()
|
||||
user = UserModel.query.filter_by(username=body.username).first()
|
||||
|
||||
if user is None:
|
||||
return fail_api(message="不存在的用户")
|
||||
@@ -37,7 +39,7 @@ class LoginAPI(MethodView):
|
||||
if user.enable == 0:
|
||||
return fail_api(message="用户被暂停使用")
|
||||
|
||||
if user.validate_password(req.password):
|
||||
if user.validate_password(body.password):
|
||||
# 登录
|
||||
login_user(user)
|
||||
# 记录登录日志
|
||||
|
||||
Reference in New Issue
Block a user