Skip to content

Commit 12d74a5

Browse files
Merge pull request #479 from supertokens/cicd-fix
fix: cicd test
2 parents 2bc2eb4 + d953d9b commit 12d74a5

File tree

6 files changed

+171
-0
lines changed

6 files changed

+171
-0
lines changed

tests/frontendIntegration/django2x/polls/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
urlpatterns = [ # type: ignore
77
path("index.html", views.send_file, name="index.html"), # type: ignore
88
path("login", views.login, name="login"), # type: ignore
9+
path("login-2.18", views.login_218, name="login_218"), # type: ignore
910
path("beforeeach", views.before_each, name="beforeeach"), # type: ignore
1011
path("testUserConfig", views.test_config, name="testUserConfig"), # type: ignore
1112
path(

tests/frontendIntegration/django2x/polls/views.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import sys
1818
from functools import wraps
1919
from typing import Any, Dict, Union
20+
from base64 import b64encode
21+
import time
2022

2123
from django.http import HttpRequest, HttpResponse, JsonResponse
2224
from django.shortcuts import render
@@ -48,6 +50,9 @@
4850
from supertokens_python.constants import VERSION
4951
from supertokens_python.utils import is_version_gte
5052
from supertokens_python.recipe.session.syncio import get_session_information
53+
from supertokens_python.normalised_url_path import NormalisedURLPath
54+
from supertokens_python.querier import Querier
55+
from supertokens_python.async_to_sync_wrapper import sync
5156

5257
protected_prop_name = {
5358
"sub",
@@ -403,6 +408,46 @@ def login(request: HttpRequest):
403408
return send_options_api_response()
404409

405410

411+
def login_218(request: HttpRequest):
412+
if request.method == "POST":
413+
request_json = json.loads(request.body)
414+
user_id = request_json["userId"]
415+
payload = request_json["payload"]
416+
417+
querier = Querier.get_instance()
418+
Querier.api_version = "2.18"
419+
420+
legacy_session_resp = sync(
421+
querier.send_post_request(
422+
NormalisedURLPath("/recipe/session"),
423+
{
424+
"userId": user_id,
425+
"enableAntiCsrf": False,
426+
"userDataInJWT": payload,
427+
"userDataInDatabase": {},
428+
},
429+
{},
430+
)
431+
)
432+
Querier.api_version = None
433+
front_token = b64encode(
434+
json.dumps(
435+
{"uid": user_id, "up": payload, "ate": time.time() * 1000 + 3600000}
436+
).encode("utf8")
437+
).decode("utf-8")
438+
439+
return HttpResponse(
440+
"",
441+
headers={
442+
"st-access-token": legacy_session_resp["accessToken"]["token"],
443+
"st-refresh-token": legacy_session_resp["refreshToken"]["token"],
444+
"front-token": front_token,
445+
},
446+
)
447+
else:
448+
return send_options_api_response()
449+
450+
406451
def before_each(request: HttpRequest):
407452
if request.method == "POST":
408453
Test.reset()

tests/frontendIntegration/django3x/polls/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
urlpatterns = [ # type: ignore
77
path("index.html", views.send_file, name="index.html"), # type: ignore
88
path("login", views.login, name="login"), # type: ignore
9+
path("login-2.18", views.login_218, name="login_218"), # type: ignore
910
path("beforeeach", views.before_each, name="beforeeach"), # type: ignore
1011
path("testUserConfig", views.test_config, name="testUserConfig"), # type: ignore
1112
path(

tests/frontendIntegration/django3x/polls/views.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import os
2424
import sys
2525
from functools import wraps
26+
from base64 import b64encode
27+
import time
2628

2729
from django.http import HttpRequest, HttpResponse, JsonResponse
2830
from django.shortcuts import render
@@ -48,6 +50,8 @@
4850
from supertokens_python.constants import VERSION
4951
from supertokens_python.utils import is_version_gte
5052
from supertokens_python.recipe.session.asyncio import get_session_information
53+
from supertokens_python.normalised_url_path import NormalisedURLPath
54+
from supertokens_python.querier import Querier
5155

5256
protected_prop_name = {
5357
"sub",
@@ -407,6 +411,46 @@ async def login(request: HttpRequest):
407411
return send_options_api_response()
408412

409413

414+
async def login_218(request: HttpRequest):
415+
if request.method == "POST":
416+
request_json = json.loads(request.body)
417+
user_id = request_json["userId"]
418+
payload = request_json["payload"]
419+
420+
querier = Querier.get_instance()
421+
Querier.api_version = "2.18"
422+
423+
legacy_session_resp = await (
424+
querier.send_post_request(
425+
NormalisedURLPath("/recipe/session"),
426+
{
427+
"userId": user_id,
428+
"enableAntiCsrf": False,
429+
"userDataInJWT": payload,
430+
"userDataInDatabase": {},
431+
},
432+
{},
433+
)
434+
)
435+
Querier.api_version = None
436+
front_token = b64encode(
437+
json.dumps(
438+
{"uid": user_id, "up": payload, "ate": time.time() * 1000 + 3600000}
439+
).encode("utf8")
440+
).decode("utf-8")
441+
442+
return HttpResponse(
443+
"",
444+
headers={
445+
"st-access-token": legacy_session_resp["accessToken"]["token"],
446+
"st-refresh-token": legacy_session_resp["refreshToken"]["token"],
447+
"front-token": front_token,
448+
},
449+
)
450+
else:
451+
return send_options_api_response()
452+
453+
410454
async def before_each(request: HttpRequest):
411455
if request.method == "POST":
412456
Test.reset()

tests/frontendIntegration/fastapi-server/app.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import os
1616
import sys
1717
from typing import Any, Dict, Union
18+
from base64 import b64encode
19+
import time
1820

1921
import uvicorn # type: ignore
2022
from fastapi import Depends, FastAPI
@@ -52,6 +54,8 @@
5254
from supertokens_python.constants import VERSION
5355
from supertokens_python.utils import is_version_gte
5456
from supertokens_python.recipe.session.asyncio import get_session_information
57+
from supertokens_python.querier import Querier
58+
from supertokens_python.normalised_url_path import NormalisedURLPath
5559

5660
protected_prop_name = {
5761
"sub",
@@ -270,6 +274,42 @@ async def login(request: Request):
270274
return PlainTextResponse(content=_session.get_user_id())
271275

272276

277+
@app.post("/login-2.18")
278+
async def login_218(request: Request):
279+
request_json = await request.json()
280+
user_id = request_json["userId"]
281+
payload = request_json["payload"]
282+
283+
querier = Querier.get_instance()
284+
Querier.api_version = "2.18"
285+
legacy_session_resp = await querier.send_post_request(
286+
NormalisedURLPath("/recipe/session"),
287+
{
288+
"userId": user_id,
289+
"enableAntiCsrf": False,
290+
"userDataInJWT": payload,
291+
"userDataInDatabase": {},
292+
},
293+
{},
294+
)
295+
Querier.api_version = None
296+
297+
front_token = b64encode(
298+
json.dumps(
299+
{"uid": user_id, "up": payload, "ate": time.time() * 1000 + 3600000}
300+
).encode("utf8")
301+
).decode("utf-8")
302+
303+
return PlainTextResponse(
304+
content="",
305+
headers={
306+
"st-access-token": legacy_session_resp["accessToken"]["token"],
307+
"st-refresh-token": legacy_session_resp["refreshToken"]["token"],
308+
"front-token": front_token,
309+
},
310+
)
311+
312+
273313
@app.options("/beforeeach")
274314
def before_each_options():
275315
return send_options_api_response()

tests/frontendIntegration/flask-server/app.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import sys
1717
from functools import wraps
1818
from typing import Any, Dict, Union
19+
from base64 import b64encode
20+
import time
1921

2022
from flask import Flask, g, jsonify, make_response, render_template, request
2123
from flask.wrappers import Response
@@ -44,6 +46,9 @@
4446
from supertokens_python.constants import VERSION
4547
from supertokens_python.utils import is_version_gte
4648
from supertokens_python.recipe.session.syncio import get_session_information
49+
from supertokens_python.normalised_url_path import NormalisedURLPath
50+
from supertokens_python.querier import Querier
51+
from supertokens_python.async_to_sync_wrapper import sync
4752

4853
protected_prop_name = {
4954
"sub",
@@ -292,6 +297,41 @@ def login():
292297
return _session.get_user_id()
293298

294299

300+
@app.route("/login-2.18", methods=["POST"]) # type: ignore
301+
def login_218():
302+
request_json = request.get_json() # type: ignore
303+
user_id = request_json["userId"] # type: ignore
304+
payload = request_json["payload"] # type: ignore
305+
306+
querier = Querier.get_instance()
307+
Querier.api_version = "2.18"
308+
309+
legacy_session_resp = sync(
310+
querier.send_post_request(
311+
NormalisedURLPath("/recipe/session"),
312+
{
313+
"userId": user_id,
314+
"enableAntiCsrf": False,
315+
"userDataInJWT": payload,
316+
"userDataInDatabase": {},
317+
},
318+
{},
319+
)
320+
)
321+
Querier.api_version = None
322+
front_token = b64encode(
323+
json.dumps(
324+
{"uid": user_id, "up": payload, "ate": time.time() * 1000 + 3600000}
325+
).encode("utf8")
326+
).decode("utf-8")
327+
328+
resp = Response("")
329+
resp.headers["st-access-token"] = legacy_session_resp["accessToken"]["token"]
330+
resp.headers["st-refresh-token"] = legacy_session_resp["refreshToken"]["token"]
331+
resp.headers["front-token"] = front_token
332+
return resp
333+
334+
295335
@app.route("/beforeeach", methods=["OPTIONS"]) # type: ignore
296336
def before_each_options():
297337
return send_options_api_response()

0 commit comments

Comments
 (0)