fastapi-login/models/Token.py
2024-01-24 10:23:42 +08:00

20 lines
581 B
Python

from datetime import datetime, timedelta
from typing import Union
from controllers.JWT import secret_key
import jwt
async def generate_token(username: str) -> str:
expiration = datetime.utcnow() + timedelta(minutes=30)
payload = {"username": username, "exp": expiration}
return jwt.encode(payload, secret_key, algorithm="HS256")
async def get_token_from_cookie(cookie: str) -> Union[str, None]:
for item in cookie.split("; "):
if "token=" not in item:
continue
token = item.replace("token=", "")
return token
return None