修改目录结构

This commit is contained in:
zhengxinonly
2021-06-22 23:42:25 +08:00
parent 05dff28523
commit 6da6768f81
18 changed files with 637 additions and 626 deletions
+34 -37
View File
@@ -1,12 +1,13 @@
from flask import Blueprint, session, redirect, url_for, render_template, request
from flask import Blueprint, session, redirect, url_for, render_template, request, make_response
from flask_login import current_user, login_user, login_required, logout_user
from flask_restful import Resource, Api, reqparse
from applications.common.admin import index_curd
from applications.common.admin_log import login_log
from applications.common.utils.http import fail_api, success_api
from applications.models import User
passport_bp = Blueprint('passport', __name__, url_prefix='/passport')
passport_api = Api(passport_bp)
def register_passport_views(app):
@@ -21,49 +22,45 @@ def get_captcha():
return resp
# 登录
@passport_bp.get('/login')
def login():
if current_user.is_authenticated:
return redirect(url_for('admin.index'))
return render_template('admin/login.html')
@passport_api.resource('/login')
class Login(Resource):
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)
def get(self):
if current_user.is_authenticated:
return redirect(url_for('admin.index'))
# 登录
@passport_bp.post('/login')
def login_post():
req = request.form
username = req.get('username')
password = req.get('password')
code = req.get('captcha')
return make_response(render_template('admin/login.html'))
if not username or not password or not code:
return fail_api(msg="用户名或密码没有输入")
s_code = session.get("code", None)
def post(self):
if not all([code, s_code]):
return fail_api(msg="参数错误")
req = self.login_req.parse_args()
if code != s_code:
return fail_api(msg="验证码错误")
user = User.query.filter_by(username=username).first()
s_code = session.get("code", None)
if user is None:
return fail_api(msg="不存在的用户")
if req.captcha != s_code:
return fail_api(msg="验证码错误")
user = User.query.filter_by(username=req.username).first()
if user.enable is 0:
return fail_api(msg="用户被暂停使用")
if user is None:
return fail_api(msg="不存在的用户")
if username == user.username and user.validate_password(password):
# 登录
login_user(user)
# 记录登录日志
login_log(request, uid=user.id, is_access=True)
# 存入权限
index_curd.add_auth_session()
return success_api(msg="登录成功")
login_log(request, uid=user.id, is_access=False)
return fail_api(msg="用户名或密码错误")
if user.enable is 0:
return fail_api(msg="用户被暂停使用")
if user.validate_password(req.password):
# 登录
login_user(user)
# 记录登录日志
login_log(request, uid=user.id, is_access=True)
# 存入权限
index_curd.add_auth_session()
return success_api(msg="登录成功")
login_log(request, uid=user.id, is_access=False)
return fail_api(msg="用户名或密码错误")
# 退出登录