前言
本篇博客记录管理员登录功能。
后端
接口:admin/getuser 获取当前注册用户的全部信息
admin/admin_login 管理员登录接口
def get_user(current_admin: Administrator = Depends(get_admin)):
session = Session(bind=engine)
users = session.query(User).all()
return BaseResponse(code=200, msg='用户查询成功', data={'user_list': [serialize_user(u) for u in users]})
def admin_login(admin_model: AdminModel):
session = Session(bind=engine)
admin = session.query(Administrator).filter(Administrator.name == admin_model.name).first()
if not admin:
return BaseResponse(code=400, msg='管理员不存在')
if admin.password != admin_model.password:
return BaseResponse(code=401, msg='密码错误')
access_token_expires = timedelta(minutes=JWT_ARGS["expire_time"])
access_token = create_access_token(
data={"sub": admin.id, "index": 1}, expires_delta=access_token_expires # index索引是0代表用户,1代表管理员
)
return BaseResponse(code=200, msg='管理员登录成功', data={"token": access_token, 'admin_id': admin.id})
前端
- 管理员登录按钮:在登录表单中,有一个按钮用于触发管理员登录。这个按钮通过
v-if="loginfiex == 1"
条件渲染,当loginfiex
变量为1时显示。 - 管理员登录方法:
admin_login
方法处理管理员登录。它将用 户名和密码封装成对象,调用login2
服务函数,并根据返回结果进行提示和跳转。 - 切换登录方式:
change
方法用于切换普通登录和管理员登录的界面。
效果展示
被封禁的帐号无法登录。