11from fastapi import Request , Response
22from fastapi .responses import HTMLResponse
33from osbot_utils .type_safe .Type_Safe import Type_Safe
4+ from osbot_utils .utils .Env import get_env
45from osbot_fast_api .api .routes .Fast_API__Routes import Fast_API__Routes
56from 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 )
0 commit comments