Skip to content

Commit 88717e1

Browse files
committed
feat: Suggested changes
1 parent 986e912 commit 88717e1

File tree

12 files changed

+37
-109
lines changed

12 files changed

+37
-109
lines changed

supertokens_python/recipe/session/access_token.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,7 @@ def get_info_from_access_token(
113113
if anti_csrf_token is None and do_anti_csrf_check:
114114
raise Exception("Access token does not contain the anti-csrf token")
115115

116-
assert isinstance(
117-
expiry_time, (int, float)
118-
) # FIXME: Use only int once core is updated
116+
assert isinstance(expiry_time, int)
119117

120118
if expiry_time < get_timestamp_ms():
121119
raise Exception("Access token expired")
@@ -141,12 +139,8 @@ def validate_access_token_structure(payload: Dict[str, Any], version: int) -> No
141139
if version >= 3:
142140
if (
143141
not isinstance(payload.get("sub"), str)
144-
or not isinstance(
145-
payload.get("exp"), (int, float)
146-
) # TODO: Leave only int once core is updated
147-
or not isinstance(
148-
payload.get("iat"), (int, float)
149-
) # TODO: Leave only int once core is updated
142+
or not isinstance(payload.get("exp"), int)
143+
or not isinstance(payload.get("iat"), int)
150144
or not isinstance(payload.get("sessionHandle"), str)
151145
or not isinstance(payload.get("refreshTokenHash1"), str)
152146
):

supertokens_python/recipe/session/asyncio/__init__.py

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
refresh_session_in_request,
4747
)
4848
from supertokens_python.types import MaybeAwaitable
49-
from supertokens_python.utils import FRAMEWORKS, resolve, deprecated_warn
49+
from supertokens_python.utils import FRAMEWORKS, resolve
5050
from ..exceptions import InvalidClaimsError
5151
from ..utils import get_required_claim_validators
5252
from ...jwt.interfaces import (
@@ -487,23 +487,6 @@ async def update_session_data_in_database(
487487
)
488488

489489

490-
async def update_access_token_payload(
491-
session_handle: str,
492-
new_access_token_payload: Dict[str, Any],
493-
user_context: Union[None, Dict[str, Any]] = None,
494-
) -> bool:
495-
if user_context is None:
496-
user_context = {}
497-
498-
deprecated_warn(
499-
"update_access_token_payload is deprecated. Use merge_into_access_token_payload instead"
500-
)
501-
502-
return await SessionRecipe.get_instance().recipe_implementation.update_access_token_payload(
503-
session_handle, new_access_token_payload, user_context
504-
)
505-
506-
507490
async def merge_into_access_token_payload(
508491
session_handle: str,
509492
new_access_token_payload: Dict[str, Any],

supertokens_python/recipe/session/interfaces.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -309,15 +309,6 @@ async def update_session_data_in_database(
309309
) -> bool:
310310
pass
311311

312-
@abstractmethod
313-
async def update_access_token_payload(
314-
self,
315-
session_handle: str,
316-
new_access_token_payload: Dict[str, Any],
317-
user_context: Dict[str, Any],
318-
) -> bool:
319-
"""DEPRECATED: Use merge_into_access_token_payload instead"""
320-
321312
@abstractmethod
322313
async def merge_into_access_token_payload(
323314
self,

supertokens_python/recipe/session/recipe_implementation.py

Lines changed: 14 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,12 @@ async def create_new_session(
104104
result["accessToken"]["token"]
105105
).payload
106106

107-
refresh_token = result.get("refreshToken")
108-
refresh_token_info: Optional[TokenInfo] = None
109-
if refresh_token is not None:
110-
refresh_token_info = TokenInfo(
111-
refresh_token["token"],
112-
refresh_token["expiry"],
113-
refresh_token["createdTime"],
114-
)
107+
refresh_token = result["refreshToken"]
108+
refresh_token_info = TokenInfo(
109+
refresh_token["token"],
110+
refresh_token["expiry"],
111+
refresh_token["createdTime"],
112+
)
115113

116114
new_session = Session(
117115
self,
@@ -315,14 +313,12 @@ async def refresh_session(
315313
response["accessToken"]["token"]
316314
).payload
317315

318-
new_refresh_token: Optional[Dict[str, Any]] = response.get("refreshToken")
319-
new_refresh_token_info: Optional[TokenInfo] = None
320-
if new_refresh_token is not None:
321-
new_refresh_token_info = TokenInfo(
322-
new_refresh_token["token"],
323-
new_refresh_token["expiry"],
324-
new_refresh_token["createdTime"],
325-
)
316+
new_refresh_token: Dict[str, Any] = response["refreshToken"]
317+
new_refresh_token_info = TokenInfo(
318+
new_refresh_token["token"],
319+
new_refresh_token["expiry"],
320+
new_refresh_token["createdTime"],
321+
)
326322

327323
session = Session(
328324
self,
@@ -388,17 +384,6 @@ async def update_session_data_in_database(
388384
self, session_handle, new_session_data
389385
)
390386

391-
async def update_access_token_payload(
392-
self,
393-
session_handle: str,
394-
new_access_token_payload: Dict[str, Any],
395-
user_context: Dict[str, Any],
396-
) -> bool:
397-
398-
return await session_functions.update_access_token_payload(
399-
self, session_handle, new_access_token_payload
400-
)
401-
402387
async def merge_into_access_token_payload(
403388
self,
404389
session_handle: str,
@@ -417,8 +402,8 @@ async def merge_into_access_token_payload(
417402
if new_access_token_payload[k] is None:
418403
del new_access_token_payload[k]
419404

420-
return await self.update_access_token_payload(
421-
session_handle, new_access_token_payload, user_context
405+
return await session_functions.update_access_token_payload(
406+
self, session_handle, new_access_token_payload
422407
)
423408

424409
async def fetch_and_set_claim(

supertokens_python/recipe/session/session_class.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,7 @@ class Session(SessionContainer):
5252
async def attach_to_request_response(
5353
self, request: BaseRequest, transfer_method: TokenTransferMethod
5454
) -> None:
55-
if self.req_res_info is None:
56-
self.req_res_info = ReqResInfo(request, transfer_method)
57-
else:
58-
self.req_res_info.request = request
59-
self.req_res_info.transfer_method = transfer_method
55+
self.req_res_info = ReqResInfo(request, transfer_method)
6056

6157
if self.access_token_updated:
6258
self.response_mutators.append(

supertokens_python/recipe/session/session_request_functions.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,6 @@ async def create_new_session_in_request(
297297
await result.session.attach_to_request_response(request, output_transfer_method)
298298
log_debug_message("createNewSession: Attached new tokens to res")
299299

300-
# request.set_session(result.session)
301300
return result.session
302301

303302

supertokens_python/recipe/session/syncio/__init__.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -165,22 +165,6 @@ def update_session_data_in_database(
165165
)
166166

167167

168-
def update_access_token_payload(
169-
session_handle: str,
170-
new_access_token_payload: Dict[str, Any],
171-
user_context: Union[None, Dict[str, Any]] = None,
172-
) -> bool:
173-
from supertokens_python.recipe.session.asyncio import (
174-
update_access_token_payload as async_update_access_token_payload,
175-
)
176-
177-
return sync(
178-
async_update_access_token_payload(
179-
session_handle, new_access_token_payload, user_context
180-
)
181-
)
182-
183-
184168
def merge_into_access_token_payload(
185169
session_handle: str,
186170
new_access_token_payload: Dict[str, Any],

tests/frontendIntegration/django2x/polls/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
create_new_session,
3737
get_session,
3838
revoke_all_sessions_for_user,
39-
update_access_token_payload,
39+
merge_into_access_token_payload,
4040
)
4141
from typing_extensions import Literal
4242

@@ -111,7 +111,7 @@ def wrapped_function(request: HttpRequest, *args, **kwargs): # type: ignore
111111
if value is not None and value.status_code != 200:
112112
return value
113113
session: SessionContainer = request.supertokens # type: ignore
114-
update_access_token_payload(
114+
merge_into_access_token_payload(
115115
session.get_handle(), json.loads(request.body)
116116
)
117117
resp = JsonResponse(session.get_access_token_payload())

tests/frontendIntegration/django3x/polls/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
revoke_all_sessions_for_user,
4242
)
4343
from supertokens_python.recipe.session.framework.django.asyncio import verify_session
44-
from supertokens_python.recipe.session.asyncio import update_access_token_payload
44+
from supertokens_python.recipe.session.asyncio import merge_into_access_token_payload
4545

4646
module_dir = os.path.dirname(__file__) # get current directory
4747
file_path = os.path.join(module_dir, "../templates/index.html")
@@ -118,7 +118,7 @@ async def wrapped_function(request: HttpRequest, *args, **kwargs): # type: igno
118118
if value is not None and value.status_code != 200:
119119
return value
120120
session: SessionContainer = request.supertokens # type: ignore
121-
await update_access_token_payload(
121+
await merge_into_access_token_payload(
122122
session.get_handle(), json.loads(request.body)
123123
)
124124
resp = JsonResponse(session.get_access_token_payload())

tests/frontendIntegration/fastapi-server/app.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
SessionRecipe,
3939
create_new_session,
4040
revoke_all_sessions_for_user,
41-
update_access_token_payload,
41+
merge_into_access_token_payload,
4242
)
4343
from supertokens_python.recipe.session.framework.fastapi import verify_session
4444
from supertokens_python.recipe.session.interfaces import APIInterface, RecipeInterface
@@ -302,7 +302,7 @@ async def update_jwt_post(
302302
async def update_jwt_with_handle_post(
303303
request: Request, _session: SessionContainer = Depends(verify_session())
304304
):
305-
await update_access_token_payload(_session.get_handle(), await request.json())
305+
await merge_into_access_token_payload(_session.get_handle(), await request.json())
306306
return JSONResponse(
307307
content=_session.get_access_token_payload(),
308308
headers={"Cache-Control": "no-cache, private"},

tests/frontendIntegration/flask-server/app.py

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,27 @@
1111
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
1212
# License for the specific language governing permissions and limitations
1313
# under the License.
14-
from typing import Any, Dict
15-
from supertokens_python.recipe.session.syncio import update_access_token_payload
16-
from supertokens_python.recipe.session.interfaces import APIInterface, RecipeInterface
17-
from supertokens_python.framework import BaseRequest, BaseResponse
1814
import json
1915
import os
2016
import sys
2117
from functools import wraps
22-
from typing import Union
23-
24-
from typing_extensions import Literal
18+
from typing import Any, Dict, Union
2519

2620
from flask import Flask, g, jsonify, make_response, render_template, request
2721
from flask.wrappers import Response
2822
from flask_cors import CORS
23+
from typing_extensions import Literal
24+
2925
from supertokens_python import InputAppInfo, Supertokens, SupertokensConfig, init
26+
from supertokens_python.framework import BaseRequest, BaseResponse
3027
from supertokens_python.framework.flask.flask_middleware import Middleware
3128
from supertokens_python.recipe import session
32-
from supertokens_python.recipe.session import (
33-
InputErrorHandlers,
34-
SessionRecipe,
35-
)
29+
from supertokens_python.recipe.session import InputErrorHandlers, SessionRecipe
3630
from supertokens_python.recipe.session.framework.flask import verify_session
31+
from supertokens_python.recipe.session.interfaces import APIInterface, RecipeInterface
3732
from supertokens_python.recipe.session.syncio import (
3833
create_new_session,
34+
merge_into_access_token_payload,
3935
revoke_all_sessions_for_user,
4036
)
4137

@@ -316,7 +312,7 @@ def update_jwt():
316312
# @supertokens_middleware()
317313
def update_jwt_post():
318314
_session = g.supertokens
319-
_session.sync_update_access_token_payload(request.get_json())
315+
_session.sync_merge_access_token_payload(request.get_json())
320316
Test.increment_get_session()
321317
resp = make_response(_session.get_access_token_payload())
322318
resp.headers["Cache-Control"] = "no-cache, private"
@@ -327,7 +323,7 @@ def update_jwt_post():
327323
@verify_session()
328324
def update_jwt_with_handle_post():
329325
_session = g.supertokens
330-
update_access_token_payload(_session.get_handle(), request.get_json())
326+
merge_into_access_token_payload(_session.get_handle(), request.get_json())
331327
resp = make_response(_session.get_access_token_payload())
332328
resp.headers["Cache-Control"] = "no-cache, private"
333329
return resp

tests/test_session.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
revoke_session as asyncio_revoke_session,
3939
)
4040
from supertokens_python.recipe.session.asyncio import (
41-
update_access_token_payload,
41+
merge_into_access_token_payload,
4242
update_session_data_in_database,
4343
)
4444
from supertokens_python.recipe.session.interfaces import RecipeInterface
@@ -215,7 +215,7 @@ async def test_creating_many_sessions_for_one_user_and_looping():
215215
assert info.user_id == "someUser"
216216
assert info.access_token_payload["someKey"] == "someValue"
217217

218-
is_updated = await update_access_token_payload(
218+
is_updated = await merge_into_access_token_payload(
219219
handle, {"someKey2": "someValue"}
220220
)
221221
assert is_updated
@@ -245,7 +245,7 @@ async def test_creating_many_sessions_for_one_user_and_looping():
245245
assert info.access_token_payload == {"bar": "baz"}
246246

247247
# Try updating invalid handles:
248-
is_updated = await update_access_token_payload("invalidHandle", {"foo": "bar"})
248+
is_updated = await merge_into_access_token_payload("invalidHandle", {"foo": "bar"})
249249
assert is_updated is False
250250
is_updated = await update_session_data_in_database("invalidHandle", {"foo": "bar"})
251251
assert is_updated is False

0 commit comments

Comments
 (0)