需求:
前端通过表单数据的形式发送用户名与密码到后端,后端通过用户信息校验,过滤出合法用户,并为用户设置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)
if result:
return cookie_detail(username)
return {"msg": "登录失败"}
def check_user(username, password):
if username == "admin" and password == "admin":
return True
else:
return False
def cookie_detail(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接口测试
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)