|
@ -9,6 +9,7 @@ import jwt |
|
|
from jinja2 import Template |
|
|
from jinja2 import Template |
|
|
from jwt.exceptions import InvalidTokenError |
|
|
from jwt.exceptions import InvalidTokenError |
|
|
|
|
|
|
|
|
|
|
|
from app.core import security |
|
|
from app.core.config import settings |
|
|
from app.core.config import settings |
|
|
|
|
|
|
|
|
logging.basicConfig(level=logging.INFO) |
|
|
logging.basicConfig(level=logging.INFO) |
|
@ -107,14 +108,16 @@ def generate_password_reset_token(email: str) -> str: |
|
|
encoded_jwt = jwt.encode( |
|
|
encoded_jwt = jwt.encode( |
|
|
{"exp": exp, "nbf": now, "sub": email}, |
|
|
{"exp": exp, "nbf": now, "sub": email}, |
|
|
settings.SECRET_KEY, |
|
|
settings.SECRET_KEY, |
|
|
algorithm="HS256", |
|
|
algorithm=security.ALGORITHM, |
|
|
) |
|
|
) |
|
|
return encoded_jwt |
|
|
return encoded_jwt |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def verify_password_reset_token(token: str) -> str | None: |
|
|
def verify_password_reset_token(token: str) -> str | None: |
|
|
try: |
|
|
try: |
|
|
decoded_token = jwt.decode(token, settings.SECRET_KEY, algorithms=["HS256"]) |
|
|
decoded_token = jwt.decode( |
|
|
|
|
|
token, settings.SECRET_KEY, algorithms=[security.ALGORITHM] |
|
|
|
|
|
) |
|
|
return str(decoded_token["sub"]) |
|
|
return str(decoded_token["sub"]) |
|
|
except InvalidTokenError: |
|
|
except InvalidTokenError: |
|
|
return None |
|
|
return None |
|
|