Skip to content

Instantly share code, notes, and snippets.

@tsatsujnr139
Created April 21, 2021 22:53
Show Gist options
  • Save tsatsujnr139/50fd1f2358bb93c91e9cdc7fb8ebda0f to your computer and use it in GitHub Desktop.
Save tsatsujnr139/50fd1f2358bb93c91e9cdc7fb8ebda0f to your computer and use it in GitHub Desktop.
from datetime import datetime, timedelta
from typing import Any, Union
from app.core.config import settings
from jose import jwt
from passlib.context import CryptContext
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
ALGORITHM = "HS256"
def create_access_token(
subject: Union[str, Any], expires_delta: timedelta = None
) -> str:
if expires_delta:
expire = datetime.utcnow() + expires_delta
else:
expire = datetime.utcnow() + timedelta(
minutes=settings.ACCESS_TOKEN_EXPIRE_MINUTES
)
to_encode = {"exp": expire, **subject}
encoded_jwt = jwt.encode(
to_encode, settings.SECRET_KEY, algorithm=ALGORITHM
)
return encoded_jwt
def verify_password(plain_password: str, hashed_password: str) -> bool:
return pwd_context.verify(plain_password, hashed_password)
def get_password_hash(password: str) -> str:
return pwd_context.hash(password)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment