整合 dsAiTeachingModel 接口
This commit is contained in:
81
dsLightRag/Util/CookieUtil.py
Normal file
81
dsLightRag/Util/CookieUtil.py
Normal file
@@ -0,0 +1,81 @@
|
||||
from fastapi.responses import Response
|
||||
from fastapi.requests import Request
|
||||
import logging
|
||||
|
||||
|
||||
class CookieUtil:
|
||||
@staticmethod
|
||||
def set_cookie(res: Response, key: str, value: str, max_age: int = 3600, path: str = "/", secure: bool = False,
|
||||
httponly: bool = True):
|
||||
"""
|
||||
设置cookie
|
||||
|
||||
:param res: FastAPI的Response对象
|
||||
:param key: cookie的键
|
||||
:param value: cookie的值
|
||||
:param max_age: cookie的有效时间(秒),默认1小时(3600秒)
|
||||
:param path: cookie的路径,默认为根路径("/")
|
||||
:param secure: 是否仅通过HTTPS传输,默认False
|
||||
:param httponly: 是否仅通过HTTP请求访问,默认True
|
||||
"""
|
||||
res.set_cookie(
|
||||
key=key,
|
||||
value=value,
|
||||
httponly=httponly,
|
||||
secure=secure,
|
||||
max_age=max_age,
|
||||
path=path
|
||||
)
|
||||
logging.info(f"设置 cookie: {key}={value}")
|
||||
|
||||
@staticmethod
|
||||
def get_cookie(req: Request, key: str) -> str:
|
||||
"""
|
||||
从请求中获取cookie的值
|
||||
|
||||
:param req: FastAPI的Request对象
|
||||
:param key: cookie的键
|
||||
:return: cookie的值,如果未找到则返回None
|
||||
"""
|
||||
token_value = req.cookies.get(key)
|
||||
logging.info(f"从 cookie 中获取的 {key}: {token_value}")
|
||||
return token_value
|
||||
|
||||
@staticmethod
|
||||
def remove_cookie(res: Response, key: str, path: str = "/"):
|
||||
"""
|
||||
移除cookie
|
||||
|
||||
:param res: FastAPI的Response对象
|
||||
:param key: cookie的键
|
||||
:param path: cookie的路径,默认为根路径("/")
|
||||
"""
|
||||
res.delete_cookie(key, path=path)
|
||||
logging.info(f"移除 cookie: {key}")
|
||||
|
||||
|
||||
# 示例使用
|
||||
if __name__ == "__main__":
|
||||
# 创建一个示例响应对象
|
||||
response = Response(content="示例响应")
|
||||
|
||||
# 设置一个cookie
|
||||
CookieUtil.set_cookie(response, key="auth_token", value="your_token_value")
|
||||
|
||||
# 创建一个示例请求对象(通常从FastAPI请求中获取)
|
||||
request = Request(scope={
|
||||
"type": "http",
|
||||
"headers": [
|
||||
(b"cookie", b"auth_token=your_token_value")
|
||||
]
|
||||
})
|
||||
|
||||
# 获取cookie
|
||||
token = CookieUtil.get_cookie(request, key="auth_token")
|
||||
print(token)
|
||||
|
||||
# 移除cookie
|
||||
CookieUtil.remove_cookie(response, key="auth_token")
|
||||
|
||||
# 打印示例响应头
|
||||
print(response.headers)
|
Reference in New Issue
Block a user