20 lines
581 B
Python
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
|