File size: 585 Bytes
66340f1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import secrets
import string
from typing import Any

from fastapi_users.jwt import generate_jwt

from app.deps.users import get_jwt_strategy
from app.models.user import User


def generate_random_string(length: int) -> str:
    return "".join(secrets.choice(string.ascii_lowercase) for i in range(length))


def get_jwt_header(user: User) -> Any:
    jwt_strategy = get_jwt_strategy()
    data = {"sub": str(user.id), "aud": jwt_strategy.token_audience}
    token = generate_jwt(data, jwt_strategy.secret, jwt_strategy.lifetime_seconds)
    return {"Authorization": f"Bearer {token}"}