fix: access_tokens issues

This commit is contained in:
swve 2024-01-26 00:32:28 +01:00
parent fdd21c2eda
commit 1b57195a7a
2 changed files with 8 additions and 2 deletions

View file

@ -1,3 +1,4 @@
from datetime import timedelta
from fastapi import Depends, APIRouter, HTTPException, Response, status, Request from fastapi import Depends, APIRouter, HTTPException, Response, status, Request
from fastapi.security import OAuth2PasswordRequestForm from fastapi.security import OAuth2PasswordRequestForm
from sqlmodel import Session from sqlmodel import Session
@ -28,6 +29,7 @@ def refresh(response: Response, Authorize: AuthJWT = Depends()):
value=new_access_token, value=new_access_token,
httponly=False, httponly=False,
domain=get_learnhouse_config().hosting_config.cookie_config.domain, domain=get_learnhouse_config().hosting_config.cookie_config.domain,
expires=int(timedelta(hours=8).total_seconds()),
) )
return {"access_token": new_access_token} return {"access_token": new_access_token}
@ -53,12 +55,14 @@ async def login(
access_token = Authorize.create_access_token(subject=form_data.username) access_token = Authorize.create_access_token(subject=form_data.username)
refresh_token = Authorize.create_refresh_token(subject=form_data.username) refresh_token = Authorize.create_refresh_token(subject=form_data.username)
Authorize.set_refresh_cookies(refresh_token) Authorize.set_refresh_cookies(refresh_token)
# set cookies using fastapi # set cookies using fastapi
response.set_cookie( response.set_cookie(
key="access_token_cookie", key="access_token_cookie",
value=access_token, value=access_token,
httponly=False, httponly=False,
domain=get_learnhouse_config().hosting_config.cookie_config.domain, domain=get_learnhouse_config().hosting_config.cookie_config.domain,
expires=int(timedelta(hours=8).total_seconds()),
) )
user = UserRead.from_orm(user) user = UserRead.from_orm(user)

View file

@ -21,7 +21,9 @@ class Settings(BaseModel):
authjwt_secret_key: str = "secret" if isDevModeEnabled() else SECRET_KEY authjwt_secret_key: str = "secret" if isDevModeEnabled() else SECRET_KEY
authjwt_token_location = {"cookies", "headers"} authjwt_token_location = {"cookies", "headers"}
authjwt_cookie_csrf_protect = False authjwt_cookie_csrf_protect = False
authjwt_access_token_expires = False if isDevModeEnabled() else 28800 authjwt_access_token_expires = (
False if isDevModeEnabled() else timedelta(hours=8).total_seconds()
)
authjwt_cookie_samesite = "lax" authjwt_cookie_samesite = "lax"
authjwt_cookie_secure = True authjwt_cookie_secure = True
authjwt_cookie_domain = get_learnhouse_config().hosting_config.cookie_config.domain authjwt_cookie_domain = get_learnhouse_config().hosting_config.cookie_config.domain