1- import base64
21from datetime import timedelta
3- from typing import List
4- from urllib import response
52from fastapi import APIRouter , Request , Response , status , Depends , HTTPException
6- from pydantic import BaseModel , EmailStr
3+ from pydantic import EmailStr
74
85from app import oauth2
96from .. import schemas , models , utils
1310from ..config import settings
1411
1512
16- class Settings (BaseModel ):
17- authjwt_algorithm : str = settings .JWT_ALGORITHM
18- authjwt_decode_algorithms : List [str ] = [settings .JWT_ALGORITHM ]
19- authjwt_token_location : set = {'cookies' , 'headers' }
20- authjwt_access_cookie_key : str = 'access_token'
21- authjwt_refresh_cookie_key : str = 'refresh_token'
22- authjwt_public_key : str = base64 .b64decode (
23- settings .JWT_PUBLIC_KEY ).decode ('utf-8' )
24- authjwt_private_key : str = base64 .b64decode (
25- settings .JWT_PRIVATE_KEY ).decode ('utf-8' )
26-
27-
28- @AuthJWT .load_config
29- def get_config ():
30- return Settings ()
31-
32-
3313router = APIRouter ()
3414ACCESS_TOKEN_EXPIRES_IN = settings .ACCESS_TOKEN_EXPIRES_IN
3515REFRESH_TOKEN_EXPIRES_IN = settings .REFRESH_TOKEN_EXPIRES_IN
@@ -48,7 +28,7 @@ async def create_user(payload: schemas.CreateUserSchema, db: Session = Depends(g
4828 raise HTTPException (
4929 status_code = status .HTTP_400_BAD_REQUEST , detail = 'Passwords do not match' )
5030 # Hash the password
51- payload .password = utils .hash (payload .password )
31+ payload .password = utils .hash_password (payload .password )
5232 del payload .passwordConfirm
5333 payload .role = 'user'
5434 payload .verified = True
0 commit comments