5
5
6
6
class AuthConfig :
7
7
_token = None
8
+ _token_location = {'headers' }
9
+ _response = None
10
+ _request = None
11
+
8
12
_secret_key = None
9
13
_public_key = None
10
14
_private_key = None
@@ -22,6 +26,34 @@ class AuthConfig:
22
26
_access_token_expires = timedelta (minutes = 15 )
23
27
_refresh_token_expires = timedelta (days = 30 )
24
28
29
+ # option for create cookies
30
+ _access_cookie_key = "access_token_cookie"
31
+ _refresh_cookie_key = "refresh_token_cookie"
32
+ _access_cookie_path = "/"
33
+ _refresh_cookie_path = "/"
34
+ _cookie_max_age = None
35
+ _cookie_domain = None
36
+ _cookie_secure = False
37
+ _cookie_samesite = "lax"
38
+
39
+ # option for double submit csrf protection
40
+ _cookie_csrf_protect = True
41
+ _access_csrf_cookie_key = "csrf_access_token"
42
+ _refresh_csrf_cookie_key = "csrf_refresh_token"
43
+ _access_csrf_cookie_path = "/"
44
+ _refresh_csrf_cookie_path = "/"
45
+ _access_csrf_header_name = "X-CSRF-Token"
46
+ _refresh_csrf_header_name = "X-CSRF-Token"
47
+ _csrf_methods = {'POST' ,'PUT' ,'PATCH' ,'DELETE' }
48
+
49
+ @property
50
+ def jwt_in_cookies (self ) -> bool :
51
+ return 'cookies' in self ._token_location
52
+
53
+ @property
54
+ def jwt_in_headers (self ) -> bool :
55
+ return 'headers' in self ._token_location
56
+
25
57
@classmethod
26
58
def load_config (cls , settings : Callable [...,List [tuple ]]) -> "AuthConfig" :
27
59
try :
0 commit comments