需求:

前端通过表单数据的形式发送用户名与密码到后端,后端通过用户信息校验,过滤出合法用户,并为用户设置cookie(超时时间为24h)
接口路径:/login
请求类型:post方法发送的文件
响应结果:成功就返回登录成功消息,并设置cookie,失败则发送失败消息
实现方案: 使用Form方法接受用户名与密码,并设置cookie。【cookie设置方法参考https://editor.csdn.net/md/?articleId=129065505

实现代码:

from fastapi import FastAPI, Request, Form
from fastapi.responses import JSONResponse
import hashlib
from pydantic import BaseModel
from datetime import datetime,timedelta
@app.post("/login")
async def login_user_info_detail(username: str = Form(),
                                 password: str = Form(),
                                 ):
    # 输出用户名与密码到控制台
    print(username, password)
    # 校验用户信息
    result = check_user(username, password)

    # 4
    if result:
        # 添加cookie
        return cookie_detail(username)
    return {"msg": "登录失败"}


# 3
def check_user(username, password):
    # 用于校验用户信息
    if username == "admin" and password == "admin":
        return True
    else:
        return False


# 5.
def cookie_detail(username):
    # md5加密username
    m = hashlib.md5()
    m.update(username.encode('utf-8'))
    session_id = m.hexdigest()
    print("生成的cookie值为==>", session_id)
    response = JSONResponse({"msg": "登录成功"})
    expires = datetime.now() + timedelta(hours=24)
    response.set_cookie(key='sessionId', value=session_id,expires=expires)
    return response

swaggerui接口测试

在这里插入图片描述

python接口测试

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐