Skip to content

Commit d04280e

Browse files
committed
fixed bug with auth set cookie form
1 parent a417b10 commit d04280e

2 files changed

Lines changed: 15 additions & 17 deletions

File tree

osbot_fast_api/api/routes/Routes__Set_Cookie.py

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from fastapi import Request, Response
22
from fastapi.responses import HTMLResponse
33
from osbot_utils.type_safe.Type_Safe import Type_Safe
4+
from osbot_utils.utils.Env import get_env
45
from osbot_fast_api.api.routes.Fast_API__Routes import Fast_API__Routes
56
from osbot_fast_api.schemas.consts__Fast_API import ENV_VAR__FAST_API__AUTH__API_KEY__NAME
67

@@ -11,7 +12,8 @@ class Routes__Set_Cookie(Fast_API__Routes):
1112
tag: str = 'auth'
1213

1314
def set_cookie_form(self, request: Request): # Display form to edit auth cookie with JSON submission
14-
current_cookie = request.cookies.get(ENV_VAR__FAST_API__AUTH__API_KEY__NAME, '')
15+
cookie_name = get_env(ENV_VAR__FAST_API__AUTH__API_KEY__NAME)
16+
current_cookie = request.cookies.get(cookie_name, '')
1517

1618
html_content = f"""
1719
<!DOCTYPE html>
@@ -108,21 +110,17 @@ def set_cookie_form(self, request: Request): # Display form to edit auth cooki
108110

109111
return HTMLResponse(content=html_content)
110112

111-
def set_auth_cookie(self, set_cookie: Schema__Set_Cookie, response: Response):
112-
"""Set the auth cookie via JSON request"""
113-
cookie_name = ENV_VAR__FAST_API__AUTH__API_KEY__NAME
114-
response.set_cookie(
115-
key=cookie_name,
116-
value=set_cookie.cookie_value,
117-
httponly=True,
118-
secure=True,
119-
samesite='strict'
120-
)
121-
return {
122-
"message": "Cookie set successfully",
123-
"cookie_name": cookie_name,
124-
"cookie_value": set_cookie.cookie_value
125-
}
113+
def set_auth_cookie(self, set_cookie: Schema__Set_Cookie, request: Request, response: Response): # Set the auth cookie via JSON request
114+
cookie_name = get_env(ENV_VAR__FAST_API__AUTH__API_KEY__NAME)
115+
secure_flag = request.url.scheme == 'https'
116+
response.set_cookie(key = cookie_name ,
117+
value = set_cookie.cookie_value,
118+
httponly = True ,
119+
secure = secure_flag ,
120+
samesite ='strict' )
121+
return { "message" : "Cookie set successfully",
122+
"cookie_name" : cookie_name ,
123+
"cookie_value": set_cookie.cookie_value }
126124

127125
def setup_routes(self):
128126
self.add_route_get (self.set_cookie_form)

osbot_fast_api/schemas/consts__Fast_API.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# todo: the names of these variables need a bit of refactoring and normalising
44

5-
AUTH__EXCLUDED_PATHS = [ '/auth/auth-cookie-form',
5+
AUTH__EXCLUDED_PATHS = [ '/auth/set-cookie-form',
66
'/auth/set-auth-cookie' ,
77
'/docs' , # Maybe also exclude docs
88
'/openapi.json' ,

0 commit comments

Comments
 (0)