Skip to content

Commit 75a5c65

Browse files
committed
Add optional parameter samesite for set_cookie
1 parent cbdf342 commit 75a5c65

File tree

5 files changed

+8
-0
lines changed

5 files changed

+8
-0
lines changed

examples/demonstration/router_api.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,6 @@ def sim_auth(request: Request):
2828
max_age=request.auth.expires,
2929
expires=request.auth.expires,
3030
httponly=request.auth.http,
31+
samesite=request.auth.samesite,
3132
)
3233
return response

src/fastapi_oauth2/config.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class OAuth2Config:
1010

1111
enable_ssr: bool
1212
allow_http: bool
13+
samesite: str
1314
jwt_secret: str
1415
jwt_expires: int
1516
jwt_algorithm: str
@@ -20,6 +21,7 @@ def __init__(
2021
*,
2122
enable_ssr: bool = True,
2223
allow_http: bool = False,
24+
samesite: str = "lax",
2325
jwt_secret: str = "",
2426
jwt_expires: Union[int, str] = 900,
2527
jwt_algorithm: str = "HS256",
@@ -29,6 +31,7 @@ def __init__(
2931
os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
3032
self.enable_ssr = enable_ssr
3133
self.allow_http = allow_http
34+
self.samesite = samesite
3235
self.jwt_secret = jwt_secret
3336
self.jwt_expires = int(jwt_expires)
3437
self.jwt_algorithm = jwt_algorithm

src/fastapi_oauth2/core.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ async def token_redirect(self, request: Request, **kwargs) -> RedirectResponse:
145145
expires=request.auth.expires,
146146
secure=not request.auth.http,
147147
httponly=True,
148+
samesite=request.auth.samesite,
148149
)
149150
return response
150151

src/fastapi_oauth2/middleware.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ class Auth(AuthCredentials):
3737

3838
ssr: bool
3939
http: bool
40+
samesite: str
4041
secret: str
4142
expires: int
4243
algorithm: str
@@ -90,6 +91,7 @@ def __init__(
9091
) -> None:
9192
Auth.ssr = config.enable_ssr
9293
Auth.http = config.allow_http
94+
Auth.samesite = config.samesite
9395
Auth.secret = config.jwt_secret
9496
Auth.expires = config.jwt_expires
9597
Auth.algorithm = config.jwt_algorithm

tests/conftest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ def auth(request: Request):
7575
max_age=request.auth.expires,
7676
expires=request.auth.expires,
7777
httponly=request.auth.http,
78+
samesite=request.auth.samesite,
7879
)
7980
return response
8081

0 commit comments

Comments
 (0)