From 50503700cd96d4ccfa379ab2950f492e82c4a55a Mon Sep 17 00:00:00 2001 From: Ankit Tiwari Date: Fri, 9 Aug 2024 13:31:38 +0530 Subject: [PATCH 01/20] feat: Add st-oauth2-authorization-server example --- .../st-oauth2-authorization-server/README.md | 35 ++++ .../backend/config.ts | 27 +++ .../backend/index.ts | 49 +++++ .../backend/package.json | 15 ++ .../backend/tsconfig.json | 62 ++++++ .../frontend/.env | 1 + .../frontend/.gitignore | 23 +++ .../frontend/LICENSE.md | 192 ++++++++++++++++++ .../frontend/package.json | 30 +++ .../frontend/public/favicon.ico | Bin 0 -> 3870 bytes .../frontend/public/index.html | 40 ++++ .../frontend/public/manifest.json | 25 +++ .../frontend/public/robots.txt | 3 + .../frontend/src/App.css | 27 +++ .../frontend/src/App.tsx | 41 ++++ .../frontend/src/Home/CallAPIView.tsx | 15 ++ .../frontend/src/Home/Home.css | 189 +++++++++++++++++ .../frontend/src/Home/SuccessView.tsx | 72 +++++++ .../frontend/src/Home/index.tsx | 17 ++ .../src/assets/fonts/MenloRegular.ttf | Bin 0 -> 475160 bytes .../src/assets/images/arrow-right-icon.svg | 3 + .../frontend/src/assets/images/background.png | Bin 0 -> 70254 bytes .../frontend/src/assets/images/blogs-icon.svg | 3 + .../src/assets/images/celebrate-icon.svg | 9 + .../frontend/src/assets/images/guide-icon.svg | 3 + .../frontend/src/assets/images/index.ts | 8 + .../src/assets/images/separator-line.svg | 10 + .../src/assets/images/sign-out-icon.svg | 3 + .../frontend/src/config.tsx | 33 +++ .../frontend/src/index.css | 11 + .../frontend/src/index.tsx | 11 + .../frontend/src/react-app-env.d.ts | 1 + .../frontend/tsconfig.json | 20 ++ .../package.json | 49 +++++ 34 files changed, 1027 insertions(+) create mode 100644 examples/st-oauth2-authorization-server/README.md create mode 100644 examples/st-oauth2-authorization-server/backend/config.ts create mode 100644 examples/st-oauth2-authorization-server/backend/index.ts create mode 100644 examples/st-oauth2-authorization-server/backend/package.json create mode 100644 examples/st-oauth2-authorization-server/backend/tsconfig.json create mode 100644 examples/st-oauth2-authorization-server/frontend/.env create mode 100644 examples/st-oauth2-authorization-server/frontend/.gitignore create mode 100644 examples/st-oauth2-authorization-server/frontend/LICENSE.md create mode 100644 examples/st-oauth2-authorization-server/frontend/package.json create mode 100644 examples/st-oauth2-authorization-server/frontend/public/favicon.ico create mode 100644 examples/st-oauth2-authorization-server/frontend/public/index.html create mode 100644 examples/st-oauth2-authorization-server/frontend/public/manifest.json create mode 100644 examples/st-oauth2-authorization-server/frontend/public/robots.txt create mode 100644 examples/st-oauth2-authorization-server/frontend/src/App.css create mode 100644 examples/st-oauth2-authorization-server/frontend/src/App.tsx create mode 100644 examples/st-oauth2-authorization-server/frontend/src/Home/CallAPIView.tsx create mode 100644 examples/st-oauth2-authorization-server/frontend/src/Home/Home.css create mode 100644 examples/st-oauth2-authorization-server/frontend/src/Home/SuccessView.tsx create mode 100644 examples/st-oauth2-authorization-server/frontend/src/Home/index.tsx create mode 100644 examples/st-oauth2-authorization-server/frontend/src/assets/fonts/MenloRegular.ttf create mode 100644 examples/st-oauth2-authorization-server/frontend/src/assets/images/arrow-right-icon.svg create mode 100644 examples/st-oauth2-authorization-server/frontend/src/assets/images/background.png create mode 100644 examples/st-oauth2-authorization-server/frontend/src/assets/images/blogs-icon.svg create mode 100644 examples/st-oauth2-authorization-server/frontend/src/assets/images/celebrate-icon.svg create mode 100644 examples/st-oauth2-authorization-server/frontend/src/assets/images/guide-icon.svg create mode 100644 examples/st-oauth2-authorization-server/frontend/src/assets/images/index.ts create mode 100644 examples/st-oauth2-authorization-server/frontend/src/assets/images/separator-line.svg create mode 100644 examples/st-oauth2-authorization-server/frontend/src/assets/images/sign-out-icon.svg create mode 100644 examples/st-oauth2-authorization-server/frontend/src/config.tsx create mode 100644 examples/st-oauth2-authorization-server/frontend/src/index.css create mode 100644 examples/st-oauth2-authorization-server/frontend/src/index.tsx create mode 100644 examples/st-oauth2-authorization-server/frontend/src/react-app-env.d.ts create mode 100644 examples/st-oauth2-authorization-server/frontend/tsconfig.json create mode 100644 examples/st-oauth2-authorization-server/package.json diff --git a/examples/st-oauth2-authorization-server/README.md b/examples/st-oauth2-authorization-server/README.md new file mode 100644 index 000000000..23d417ad4 --- /dev/null +++ b/examples/st-oauth2-authorization-server/README.md @@ -0,0 +1,35 @@ +![SuperTokens banner](https://raw.githubusercontent.com/supertokens/supertokens-logo/master/images/Artboard%20%E2%80%93%2027%402x.png) + +# SuperTokens OAuth2 Authorization Server + +This example app uses SuperTokens `OAuth2Provider` recipe to expose OAuth2 APIs. This app acts as an OAuth2 authorization server for other OAuth2 examples in this repo. + +## Project setup + +Clone the repo, enter the directory, and use `npm` to install the project dependencies: + +```bash +git clone https://github.com/supertokens/supertokens-auth-react +cd supertokens-auth-react/examples/st-oauth2-authorization-server +npm install +``` + +## Update Environment variables + +The frontend runs on `http://localhost:3005` and the backend on `http://localhost:3006` by default. You can customize these by setting the environment variables `REACT_APP_AUTH_SERVER_WEBSITE_URL` and `REACT_APP_AUTH_SERVER_API_URL`. + +## Run the demo app + +This compiles and serves the React app and starts the backend API server. + +```bash +npm run start +``` + +## Author + +Created with :heart: by the folks at supertokens.com. + +## License + +This project is licensed under the Apache 2.0 license. diff --git a/examples/st-oauth2-authorization-server/backend/config.ts b/examples/st-oauth2-authorization-server/backend/config.ts new file mode 100644 index 000000000..bc4a837c9 --- /dev/null +++ b/examples/st-oauth2-authorization-server/backend/config.ts @@ -0,0 +1,27 @@ +import EmailPassword from "supertokens-node/recipe/emailpassword"; +import OAuth2Provider from "supertokens-node/recipe/oauth2provider"; +import Session from "supertokens-node/recipe/session"; +import { TypeInput } from "supertokens-node/types"; + +export function getWebsiteDomain() { + return process.env.REACT_APP_AUTH_SERVER_WEBSITE_URL || "http://localhost:3005"; +} + +export function getApiDomain() { + return process.env.REACT_APP_AUTH_SERVER_API_URL || "http://localhost:3006"; +} + +export const SuperTokensConfig: TypeInput = { + supertokens: { + // this is the location of the SuperTokens core. + connectionURI: "https://try.supertokens.com", + }, + appInfo: { + appName: "SuperTokens Demo App", + apiDomain: getApiDomain(), + websiteDomain: getWebsiteDomain(), + }, + // recipeList contains all the modules that you want to + // use from SuperTokens. See the full list here: https://supertokens.com/docs/guides + recipeList: [EmailPassword.init(), OAuth2Provider.init(), Session.init()], +}; diff --git a/examples/st-oauth2-authorization-server/backend/index.ts b/examples/st-oauth2-authorization-server/backend/index.ts new file mode 100644 index 000000000..a43b57bd4 --- /dev/null +++ b/examples/st-oauth2-authorization-server/backend/index.ts @@ -0,0 +1,49 @@ +import express from "express"; +import cors from "cors"; +import supertokens from "supertokens-node"; +import { verifySession } from "supertokens-node/recipe/session/framework/express"; +import { middleware, errorHandler, SessionRequest } from "supertokens-node/framework/express"; +import { getApiDomain, getWebsiteDomain, SuperTokensConfig } from "./config"; +import Multitenancy from "supertokens-node/recipe/multitenancy"; + +supertokens.init(SuperTokensConfig); + +const app = express(); + +app.use( + cors({ + origin: [getWebsiteDomain(), "http://localhost:3000"], + // origin: [getWebsiteDomain()], + allowedHeaders: ["content-type", ...supertokens.getAllCORSHeaders()], + methods: ["GET", "PUT", "POST", "DELETE"], + credentials: true, + }) +); + +// This exposes all the APIs from SuperTokens to the client. +app.use(middleware()); + +// An example API that requires session verification +app.get("/sessioninfo", verifySession(), async (req: SessionRequest, res) => { + let session = req.session; + res.send({ + sessionHandle: session!.getHandle(), + userId: session!.getUserId(), + accessTokenPayload: session!.getAccessTokenPayload(), + }); +}); + +// This API is used by the frontend to create the tenants drop down when the app loads. +// Depending on your UX, you can remove this API. +app.get("/tenants", async (req, res) => { + let tenants = await Multitenancy.listAllTenants(); + res.send(tenants); +}); + +// In case of session related errors, this error handler +// returns 401 to the client. +app.use(errorHandler()); + +const PORT = process.env.PORT || 3006; + +app.listen(PORT, () => console.log(`API Server listening on ${getApiDomain()}`)); diff --git a/examples/st-oauth2-authorization-server/backend/package.json b/examples/st-oauth2-authorization-server/backend/package.json new file mode 100644 index 000000000..67f613481 --- /dev/null +++ b/examples/st-oauth2-authorization-server/backend/package.json @@ -0,0 +1,15 @@ +{ + "name": "supertokens-node", + "version": "0.0.1", + "private": true, + "description": "", + "main": "index.js", + "scripts": { + "start": "PORT=3006 npx ts-node-dev --project ./tsconfig.json ./index.ts" + }, + "dependencies": {}, + "devDependencies": {}, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/examples/st-oauth2-authorization-server/backend/tsconfig.json b/examples/st-oauth2-authorization-server/backend/tsconfig.json new file mode 100644 index 000000000..8a91acaae --- /dev/null +++ b/examples/st-oauth2-authorization-server/backend/tsconfig.json @@ -0,0 +1,62 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Basic Options */ + // "incremental": true, /* Enable incremental compilation */ + "target": "es5" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, + "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, + // "lib": [], /* Specify library files to be included in the compilation. */ + // "allowJs": true, /* Allow javascript files to be compiled. */ + // "checkJs": true, /* Report errors in .js files. */ + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ + // "declaration": true, /* Generates corresponding '.d.ts' file. */ + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + // "sourceMap": true, /* Generates corresponding '.map' file. */ + // "outFile": "./", /* Concatenate and emit output to single file. */ + // "outDir": "./", /* Redirect output structure to the directory. */ + // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + /* Strict Type-Checking Options */ + "strict": true /* Enable all strict type-checking options. */, + // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* Enable strict null checks. */ + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + /* Module Resolution Options */ + // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + /* Advanced Options */ + "skipLibCheck": true /* Skip type checking of declaration files. */, + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + } +} diff --git a/examples/st-oauth2-authorization-server/frontend/.env b/examples/st-oauth2-authorization-server/frontend/.env new file mode 100644 index 000000000..7d910f148 --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/.env @@ -0,0 +1 @@ +SKIP_PREFLIGHT_CHECK=true \ No newline at end of file diff --git a/examples/st-oauth2-authorization-server/frontend/.gitignore b/examples/st-oauth2-authorization-server/frontend/.gitignore new file mode 100644 index 000000000..4d29575de --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/examples/st-oauth2-authorization-server/frontend/LICENSE.md b/examples/st-oauth2-authorization-server/frontend/LICENSE.md new file mode 100644 index 000000000..588f27e68 --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/LICENSE.md @@ -0,0 +1,192 @@ +Copyright (c) 2020, VRAI Labs and/or its affiliates. All rights reserved. + +This software is licensed under the Apache License, Version 2.0 (the +"License") as published by the Apache Software Foundation. + +You may not use this software except in compliance with the License. A copy +of the License is available below the line. + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations +under the License. + +--- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/examples/st-oauth2-authorization-server/frontend/package.json b/examples/st-oauth2-authorization-server/frontend/package.json new file mode 100644 index 000000000..a86573ad4 --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/package.json @@ -0,0 +1,30 @@ +{ + "name": "supertokens-react", + "version": "0.1.0", + "private": true, + "dependencies": {}, + "scripts": { + "start": "PORT=3005 react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/examples/st-oauth2-authorization-server/frontend/public/favicon.ico b/examples/st-oauth2-authorization-server/frontend/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/examples/st-oauth2-authorization-server/frontend/public/index.html b/examples/st-oauth2-authorization-server/frontend/public/index.html new file mode 100644 index 000000000..6f1f7cb51 --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/public/index.html @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + React App + + + +
+ + diff --git a/examples/st-oauth2-authorization-server/frontend/public/manifest.json b/examples/st-oauth2-authorization-server/frontend/public/manifest.json new file mode 100644 index 000000000..f01493ff0 --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/examples/st-oauth2-authorization-server/frontend/public/robots.txt b/examples/st-oauth2-authorization-server/frontend/public/robots.txt new file mode 100644 index 000000000..e9e57dc4d --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/examples/st-oauth2-authorization-server/frontend/src/App.css b/examples/st-oauth2-authorization-server/frontend/src/App.css new file mode 100644 index 000000000..8a98a2341 --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/App.css @@ -0,0 +1,27 @@ +.App { + display: flex; + flex-direction: column; + width: 100vw; + height: 100vh; + font-family: Rubik; +} + +.fill { + display: flex; + flex-direction: column; + justify-content: center; + flex: 1; +} + +.sessionButton { + padding-left: 13px; + padding-right: 13px; + padding-top: 8px; + padding-bottom: 8px; + background-color: black; + border-radius: 10px; + cursor: pointer; + color: white; + font-weight: bold; + font-size: 17px; +} diff --git a/examples/st-oauth2-authorization-server/frontend/src/App.tsx b/examples/st-oauth2-authorization-server/frontend/src/App.tsx new file mode 100644 index 000000000..314f34be1 --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/App.tsx @@ -0,0 +1,41 @@ +import "./App.css"; +import SuperTokens, { SuperTokensWrapper } from "supertokens-auth-react"; +import { getSuperTokensRoutesForReactRouterDom } from "supertokens-auth-react/ui"; +import { SessionAuth } from "supertokens-auth-react/recipe/session"; +import { Routes, BrowserRouter as Router, Route } from "react-router-dom"; +import Home from "./Home"; +import { PreBuiltUIList, SuperTokensConfig, ComponentWrapper } from "./config"; + +SuperTokens.init(SuperTokensConfig as any); + +function App() { + return ( + + +
+ +
+ + {/* This shows the login UI on "/auth" route */} + {getSuperTokensRoutesForReactRouterDom(require("react-router-dom"), PreBuiltUIList)} + only if the user is logged in. + Else it redirects the user to "/auth" */ + + + + } + /> + +
+
+
+
+
+ ); +} + +export default App; diff --git a/examples/st-oauth2-authorization-server/frontend/src/Home/CallAPIView.tsx b/examples/st-oauth2-authorization-server/frontend/src/Home/CallAPIView.tsx new file mode 100644 index 000000000..6a9d510d4 --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/Home/CallAPIView.tsx @@ -0,0 +1,15 @@ +import axios from "axios"; +import { getApiDomain } from "../config"; + +export default function CallAPIView() { + async function callAPIClicked() { + let response = await axios.get(getApiDomain() + "/sessioninfo"); + window.alert("Session Information:\n" + JSON.stringify(response.data, null, 2)); + } + + return ( +
+ Call API +
+ ); +} diff --git a/examples/st-oauth2-authorization-server/frontend/src/Home/Home.css b/examples/st-oauth2-authorization-server/frontend/src/Home/Home.css new file mode 100644 index 000000000..a056cb2eb --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/Home/Home.css @@ -0,0 +1,189 @@ +@font-face { + font-family: Menlo; + src: url("../assets/fonts/MenloRegular.ttf"); +} + +.app-container { + font-family: Rubik, sans-serif; +} + +.app-container * { + box-sizing: border-box; +} + +.bold-400 { + font-variation-settings: "wght" 400; +} + +.bold-500 { + font-variation-settings: "wght" 500; +} + +.bold-600 { + font-variation-settings: "wght" 600; +} + +#home-container { + align-items: center; + min-height: 100vh; + background: url("../assets/images/background.png"); + background-size: cover; +} + +.bold-700 { + font-variation-settings: "wght" 700; +} + +.app-container .main-container { + box-shadow: 0px 0px 60px 0px rgba(0, 0, 0, 0.16); + width: min(635px, calc(100% - 24px)); + border-radius: 16px; + margin-block-end: 159px; + background-color: #ffffff; +} + +.main-container .success-title { + line-height: 1; + padding-block: 26px; + background-color: #e7ffed; + text-align: center; + color: #3eb655; + display: flex; + justify-content: center; + align-items: flex-end; + font-size: 20px; +} + +.success-title img.success-icon { + margin-right: 8px; +} + +.main-container .inner-content { + padding-block: 48px; + text-align: center; + display: flex; + flex-direction: column; + align-items: center; +} + +.inner-content #user-id { + position: relative; + padding: 14px 17px; + border-image-slice: 1; + width: min(430px, calc(100% - 30px)); + margin-inline: auto; + margin-block: 11px 23px; + border-radius: 9px; + line-height: 1; + font-family: Menlo, serif; + cursor: text; +} + +.inner-content #user-id:before { + content: ""; + position: absolute; + inset: 0; + border-radius: 9px; + padding: 2px; + background: linear-gradient(90.31deg, #ff9933 0.11%, #ff3f33 99.82%); + -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); + mask-composite: exclude; + -webkit-mask-composite: xor; +} + +.main-container > .top-band, +.main-container > .bottom-band { + border-radius: inherit; +} + +.main-container .top-band { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.main-container .bottom-band { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.main-container .sessionButton { + box-sizing: border-box; + background: #ff9933; + border: 1px solid #ff8a15; + box-shadow: 0px 3px 6px rgba(255, 153, 51, 0.16); + border-radius: 6px; + font-size: 16px; +} + +.bottom-cta-container { + display: flex; + justify-content: flex-end; + padding-inline: 21px; + background-color: #212d4f; +} + +.bottom-cta-container .view-code { + padding-block: 11px; + color: #bac9f5; + cursor: pointer; + font-size: 14px; +} + +.bottom-links-container { + display: grid; + grid-template-columns: repeat(4, auto); + margin-bottom: 22px; +} + +.bottom-links-container .link { + display: flex; + align-items: center; + margin-inline-end: 68px; + cursor: pointer; +} + +.bottom-links-container .link:last-child { + margin-right: 0; +} + +.truncate { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +.separator-line { + max-width: 100%; +} + +.link .link-icon { + width: 15px; + margin-right: 5px; +} + +@media screen and (max-width: 768px) { + .bottom-links-container { + grid-template-columns: repeat(2, 1fr); + column-gap: 64px; + row-gap: 34px; + } + + .bottom-links-container .link { + margin-inline-end: 0; + } + + .separator-line { + max-width: 200px; + } +} + +@media screen and (max-width: 480px) { + #home-container { + justify-content: start; + padding-block-start: 25px; + } + + .app-container .main-container { + margin-block-end: 90px; + } +} diff --git a/examples/st-oauth2-authorization-server/frontend/src/Home/SuccessView.tsx b/examples/st-oauth2-authorization-server/frontend/src/Home/SuccessView.tsx new file mode 100644 index 000000000..bea4566ef --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/Home/SuccessView.tsx @@ -0,0 +1,72 @@ +import { useNavigate } from "react-router-dom"; +import { signOut } from "supertokens-auth-react/recipe/session"; +import { recipeDetails } from "../config"; +import CallAPIView from "./CallAPIView"; +import { BlogsIcon, CelebrateIcon, GuideIcon, SeparatorLine, SignOutIcon } from "../assets/images"; + +interface ILink { + name: string; + onClick: () => void; + icon: string; +} + +export default function SuccessView(props: { userId: string }) { + let userId = props.userId; + + const navigate = useNavigate(); + + async function logoutClicked() { + await signOut(); + navigate("/auth"); + } + + function openLink(url: string) { + window.open(url, "_blank"); + } + + const links: ILink[] = [ + { + name: "Blogs", + onClick: () => openLink("https://supertokens.com/blog"), + icon: BlogsIcon, + }, + { + name: "Documentation", + onClick: () => openLink(recipeDetails.docsLink), + icon: GuideIcon, + }, + { + name: "Sign Out", + onClick: logoutClicked, + icon: SignOutIcon, + }, + ]; + + return ( + <> +
+
+ Login successful Login successful +
+
+
Your userID is:
+
+ {userId} +
+ +
+
+
+ {links.map((link) => ( +
+ {link.name} +
+ {link.name} +
+
+ ))} +
+ separator + + ); +} diff --git a/examples/st-oauth2-authorization-server/frontend/src/Home/index.tsx b/examples/st-oauth2-authorization-server/frontend/src/Home/index.tsx new file mode 100644 index 000000000..0c3f288e8 --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/Home/index.tsx @@ -0,0 +1,17 @@ +import SuccessView from "./SuccessView"; +import { useSessionContext } from "supertokens-auth-react/recipe/session"; +import "./Home.css"; + +export default function Home() { + const sessionContext = useSessionContext(); + + if (sessionContext.loading === true) { + return null; + } + + return ( +
+ +
+ ); +} diff --git a/examples/st-oauth2-authorization-server/frontend/src/assets/fonts/MenloRegular.ttf b/examples/st-oauth2-authorization-server/frontend/src/assets/fonts/MenloRegular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..033dc6d21241618fcc5dfd40f70a2943f7e3a36f GIT binary patch literal 475160 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�-hq}v4-RV%bJJf9swK~(& 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


^7@wrJ=g$3Fo`?)gAC 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 aw!g3k3*Lpkl3$0Pe{C4|7XAO4+Wc>4`DVKS literal 0 HcmV?d00001 diff --git a/examples/st-oauth2-authorization-server/frontend/src/assets/images/arrow-right-icon.svg b/examples/st-oauth2-authorization-server/frontend/src/assets/images/arrow-right-icon.svg new file mode 100644 index 000000000..95aa1fec6 --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/assets/images/arrow-right-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/examples/st-oauth2-authorization-server/frontend/src/assets/images/background.png b/examples/st-oauth2-authorization-server/frontend/src/assets/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..2147c15c2b1fe01142b0a89ae1d478375610db66 GIT binary patch literal 70254 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
    + + diff --git a/examples/with-oauth2-without-supertokens/public/manifest.json b/examples/with-oauth2-without-supertokens/public/manifest.json new file mode 100644 index 000000000..f01493ff0 --- /dev/null +++ b/examples/with-oauth2-without-supertokens/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/examples/with-oauth2-without-supertokens/public/robots.txt b/examples/with-oauth2-without-supertokens/public/robots.txt new file mode 100644 index 000000000..e9e57dc4d --- /dev/null +++ b/examples/with-oauth2-without-supertokens/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/examples/with-oauth2-without-supertokens/src/App.css b/examples/with-oauth2-without-supertokens/src/App.css new file mode 100644 index 000000000..9886f003d --- /dev/null +++ b/examples/with-oauth2-without-supertokens/src/App.css @@ -0,0 +1,26 @@ +.App { + display: flex; + flex-direction: column; + width: 100vw; + height: 100vh; + font-family: Rubik; +} + +button { + padding-left: 13px; + padding-right: 13px; + padding-top: 8px; + padding-bottom: 8px; + background-color: black; + border-radius: 10px; + cursor: pointer; + color: white; + font-weight: bold; + font-size: 17px; +} + +.center { + display: flex; + flex-direction: column; + align-items: center; +} diff --git a/examples/with-oauth2-without-supertokens/src/App.tsx b/examples/with-oauth2-without-supertokens/src/App.tsx new file mode 100644 index 000000000..17739b9be --- /dev/null +++ b/examples/with-oauth2-without-supertokens/src/App.tsx @@ -0,0 +1,48 @@ +import { AuthProvider, AuthProviderProps, useAuth } from "react-oidc-context"; +import "./App.css"; + +const authServerUrl = process.env.REACT_APP_AUTH_SERVER_API_URL || "http://localhost:3006"; +const clientId = "REPLACE_WITH_YOUR_CLIENT_ID"; + +const oidcConfig: AuthProviderProps = { + client_id: clientId, + authority: `${authServerUrl}/auth`, + response_type: "code", + redirect_uri: "http://localhost:3000", + scope: "openid offline_access email", + revokeTokensOnSignout: true, + onSigninCallback: async () => { + // Clears the response code and other params from the callback url + window.history.replaceState({}, document.title, window.location.pathname); + }, +}; + +function AuthPage() { + const { signinRedirect, signoutSilent, user } = useAuth(); + + return ( +
    +

    OAuth2 Example With Generic OAuth2 Lib

    +
    + {user ? ( +
    +
    {JSON.stringify(user.profile, null, 2)}
    + +
    + ) : ( +
    + +
    + )} +
    +
    + ); +} + +export default function App() { + return ( + + + + ); +} diff --git a/examples/with-oauth2-without-supertokens/src/assets/fonts/MenloRegular.ttf b/examples/with-oauth2-without-supertokens/src/assets/fonts/MenloRegular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..033dc6d21241618fcc5dfd40f70a2943f7e3a36f GIT binary patch literal 475160 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�-hq}v4-RV%bJJf9swK~(& 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


    ^7@wrJ=g$3Fo`?)gAC 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 aw!g3k3*Lpkl3$0Pe{C4|7XAO4+Wc>4`DVKS literal 0 HcmV?d00001 diff --git a/examples/with-oauth2-without-supertokens/src/index.css b/examples/with-oauth2-without-supertokens/src/index.css new file mode 100644 index 000000000..04146b5e7 --- /dev/null +++ b/examples/with-oauth2-without-supertokens/src/index.css @@ -0,0 +1,11 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", + "Droid Sans", "Helvetica Neue", sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace; +} diff --git a/examples/with-oauth2-without-supertokens/src/index.tsx b/examples/with-oauth2-without-supertokens/src/index.tsx new file mode 100644 index 000000000..399c737cd --- /dev/null +++ b/examples/with-oauth2-without-supertokens/src/index.tsx @@ -0,0 +1,11 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "./index.css"; +import App from "./App"; + +const root = ReactDOM.createRoot(document.getElementById("root") as HTMLElement); +root.render( + + + +); diff --git a/examples/with-oauth2-without-supertokens/src/react-app-env.d.ts b/examples/with-oauth2-without-supertokens/src/react-app-env.d.ts new file mode 100644 index 000000000..6431bc5fc --- /dev/null +++ b/examples/with-oauth2-without-supertokens/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/examples/with-oauth2-without-supertokens/tsconfig.json b/examples/with-oauth2-without-supertokens/tsconfig.json new file mode 100644 index 000000000..c0555cbc6 --- /dev/null +++ b/examples/with-oauth2-without-supertokens/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"] +} From 084b923206d0a60765c549496f509b1e76090fb6 Mon Sep 17 00:00:00 2001 From: Ankit Tiwari Date: Tue, 20 Aug 2024 12:27:12 +0530 Subject: [PATCH 03/20] feat: Add with-oauth2-with-supertokens example --- .../st-oauth2-authorization-server/README.md | 12 +- .../backend/config.ts | 4 +- .../frontend/src/config.tsx | 4 +- .../with-oauth2-with-supertokens/README.md | 59 ++++++ .../backend/config.ts | 40 ++++ .../backend/index.ts | 38 ++++ .../backend/package.json | 15 ++ .../backend/tsconfig.json | 62 ++++++ .../frontend/.env | 1 + .../frontend/.gitignore | 23 +++ .../frontend/LICENSE.md | 192 ++++++++++++++++++ .../frontend/package.json | 29 +++ .../frontend/public/favicon.ico | Bin 0 -> 3870 bytes .../frontend/public/index.html | 40 ++++ .../frontend/public/manifest.json | 25 +++ .../frontend/public/robots.txt | 3 + .../frontend/src/App.css | 34 ++++ .../frontend/src/App.tsx | 127 ++++++++++++ .../frontend/src/Home/CallAPIView.tsx | 15 ++ .../frontend/src/Home/Home.css | 189 +++++++++++++++++ .../frontend/src/Home/SuccessView.tsx | 72 +++++++ .../frontend/src/Home/index.tsx | 17 ++ .../src/assets/fonts/MenloRegular.ttf | Bin 0 -> 475160 bytes .../src/assets/images/arrow-right-icon.svg | 3 + .../frontend/src/assets/images/background.png | Bin 0 -> 70254 bytes .../frontend/src/assets/images/blogs-icon.svg | 3 + .../src/assets/images/celebrate-icon.svg | 9 + .../frontend/src/assets/images/guide-icon.svg | 3 + .../frontend/src/assets/images/index.ts | 8 + .../src/assets/images/separator-line.svg | 10 + .../src/assets/images/sign-out-icon.svg | 3 + .../frontend/src/config.tsx | 34 ++++ .../frontend/src/index.css | 11 + .../frontend/src/index.tsx | 12 ++ .../frontend/src/react-app-env.d.ts | 1 + .../frontend/tsconfig.json | 20 ++ .../with-oauth2-with-supertokens/package.json | 51 +++++ .../src/App.tsx | 2 +- 38 files changed, 1164 insertions(+), 7 deletions(-) create mode 100644 examples/with-oauth2-with-supertokens/README.md create mode 100644 examples/with-oauth2-with-supertokens/backend/config.ts create mode 100644 examples/with-oauth2-with-supertokens/backend/index.ts create mode 100644 examples/with-oauth2-with-supertokens/backend/package.json create mode 100644 examples/with-oauth2-with-supertokens/backend/tsconfig.json create mode 100644 examples/with-oauth2-with-supertokens/frontend/.env create mode 100644 examples/with-oauth2-with-supertokens/frontend/.gitignore create mode 100644 examples/with-oauth2-with-supertokens/frontend/LICENSE.md create mode 100644 examples/with-oauth2-with-supertokens/frontend/package.json create mode 100644 examples/with-oauth2-with-supertokens/frontend/public/favicon.ico create mode 100644 examples/with-oauth2-with-supertokens/frontend/public/index.html create mode 100644 examples/with-oauth2-with-supertokens/frontend/public/manifest.json create mode 100644 examples/with-oauth2-with-supertokens/frontend/public/robots.txt create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/App.css create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/App.tsx create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/Home/CallAPIView.tsx create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/Home/Home.css create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/Home/SuccessView.tsx create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/Home/index.tsx create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/assets/fonts/MenloRegular.ttf create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/assets/images/arrow-right-icon.svg create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/assets/images/background.png create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/assets/images/blogs-icon.svg create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/assets/images/celebrate-icon.svg create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/assets/images/guide-icon.svg create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/assets/images/index.ts create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/assets/images/separator-line.svg create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/assets/images/sign-out-icon.svg create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/config.tsx create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/index.css create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/index.tsx create mode 100644 examples/with-oauth2-with-supertokens/frontend/src/react-app-env.d.ts create mode 100644 examples/with-oauth2-with-supertokens/frontend/tsconfig.json create mode 100644 examples/with-oauth2-with-supertokens/package.json diff --git a/examples/st-oauth2-authorization-server/README.md b/examples/st-oauth2-authorization-server/README.md index 23d417ad4..85f92edfd 100644 --- a/examples/st-oauth2-authorization-server/README.md +++ b/examples/st-oauth2-authorization-server/README.md @@ -14,9 +14,17 @@ cd supertokens-auth-react/examples/st-oauth2-authorization-server npm install ``` -## Update Environment variables +## Set Up Frontend and Backend URLs -The frontend runs on `http://localhost:3005` and the backend on `http://localhost:3006` by default. You can customize these by setting the environment variables `REACT_APP_AUTH_SERVER_WEBSITE_URL` and `REACT_APP_AUTH_SERVER_API_URL`. +When running locally, we recommend using a different domain than `localhost` for the authorization server to prevent cookie sharing with other client apps running on `localhost`. + +By default, the frontend runs at `http://localhost.com:3005` and the backend at `http://localhost.com:3006`. You can customize these by setting the `REACT_APP_AUTH_SERVER_WEBSITE_URL` and `REACT_APP_AUTH_SERVER_API_URL` environment variables. + +After configuring the URLs, add the domain to `/etc/hosts`. For example, if your domain is `localhost.com`, add: + +```bash +127.0.0.1 localhost.com +``` ## Run the demo app diff --git a/examples/st-oauth2-authorization-server/backend/config.ts b/examples/st-oauth2-authorization-server/backend/config.ts index bc4a837c9..2e341ec42 100644 --- a/examples/st-oauth2-authorization-server/backend/config.ts +++ b/examples/st-oauth2-authorization-server/backend/config.ts @@ -4,11 +4,11 @@ import Session from "supertokens-node/recipe/session"; import { TypeInput } from "supertokens-node/types"; export function getWebsiteDomain() { - return process.env.REACT_APP_AUTH_SERVER_WEBSITE_URL || "http://localhost:3005"; + return process.env.REACT_APP_AUTH_SERVER_WEBSITE_URL || "http://localhost.com:3005"; } export function getApiDomain() { - return process.env.REACT_APP_AUTH_SERVER_API_URL || "http://localhost:3006"; + return process.env.REACT_APP_AUTH_SERVER_API_URL || "http://localhost.com:3006"; } export const SuperTokensConfig: TypeInput = { diff --git a/examples/st-oauth2-authorization-server/frontend/src/config.tsx b/examples/st-oauth2-authorization-server/frontend/src/config.tsx index 4f556c39d..fcb9378eb 100644 --- a/examples/st-oauth2-authorization-server/frontend/src/config.tsx +++ b/examples/st-oauth2-authorization-server/frontend/src/config.tsx @@ -4,11 +4,11 @@ import { EmailPasswordPreBuiltUI } from "supertokens-auth-react/recipe/emailpass import Session from "supertokens-auth-react/recipe/session"; export function getWebsiteDomain() { - return process.env.REACT_APP_AUTH_SERVER_WEBSITE_URL || "http://localhost:3005"; + return process.env.REACT_APP_AUTH_SERVER_WEBSITE_URL || "http://localhost.com:3005"; } export function getApiDomain() { - return process.env.REACT_APP_AUTH_SERVER_API_URL || "http://localhost:3006"; + return process.env.REACT_APP_AUTH_SERVER_API_URL || "http://localhost.com:3006"; } export const SuperTokensConfig = { diff --git a/examples/with-oauth2-with-supertokens/README.md b/examples/with-oauth2-with-supertokens/README.md new file mode 100644 index 000000000..6f39a7bbb --- /dev/null +++ b/examples/with-oauth2-with-supertokens/README.md @@ -0,0 +1,59 @@ +![SuperTokens banner](https://raw.githubusercontent.com/supertokens/supertokens-logo/master/images/Artboard%20%E2%80%93%2027%402x.png) + +# Example App with SuperTokens Auth and SuperTokens as OAuth2 Provider + +This example app shows how to use SuperTokens as an OAuth2 provider in a React app that already implements SuperTokens Auth, utilizing the `OAuth2Client` recipe on the backend. + +## Project setup + +Clone the repo, enter the directory, and use `npm` to install the project dependencies: + +```bash +git clone https://github.com/supertokens/supertokens-auth-react +cd supertokens-auth-react/examples/with-oauth2-with-supertokens +npm install +``` + +## 1. Create an OAuth2 Client + +```bash +curl -X POST http://localhost:4445/admin/clients \ + -H "Content-Type: application/json" \ + -d '{ + "scope": "offline_access openid email", + "redirect_uris": ["http://localhost:3000/auth/callback"], + "access_token_strategy": "jwt", + "token_endpoint_auth_method": "none", + "grant_types": ["authorization_code", "refresh_token"], + "response_types": ["code", "id_token"], + "skip_consent": true + }' +``` + +Note down the `client_id` from the response. + +## 2. Run the st-oauth2-authorization-server + +1. Open a new terminal window and navigate to `supertokens-auth-react/examples/ +st-oauth2-authorization-server` +2. Read the README.md to setup `st-oauth2-authorization-server ` and run it using `npm start` + +## 3. Update config + +Update `clientId` and `AUTH_SERVER_URL` values as per step 1 and step 2 in both `frontend/src/App.tsx` and `backend/src/config.ts`. + +## 4. Run the demo app + +This compiles and serves the React app. + +```bash +npm run start +``` + +## Author + +Created with :heart: by the folks at supertokens.com. + +## License + +This project is licensed under the Apache 2.0 license. diff --git a/examples/with-oauth2-with-supertokens/backend/config.ts b/examples/with-oauth2-with-supertokens/backend/config.ts new file mode 100644 index 000000000..02b0370ec --- /dev/null +++ b/examples/with-oauth2-with-supertokens/backend/config.ts @@ -0,0 +1,40 @@ +import OAuth2Client from "supertokens-node/recipe/oauth2client"; +import Session from "supertokens-node/recipe/session"; +import { TypeInput } from "supertokens-node/types"; + +const AUTH_SERVER_URL = process.env.REACT_APP_AUTH_SERVER_API_URL || "http://localhost.com:3006"; + +export function getApiDomain() { + const apiPort = process.env.REACT_APP_API_PORT || 3001; + const apiUrl = process.env.REACT_APP_API_URL || `http://localhost:${apiPort}`; + return apiUrl; +} + +export function getWebsiteDomain() { + const websitePort = process.env.REACT_APP_WEBSITE_PORT || 3000; + const websiteUrl = process.env.REACT_APP_WEBSITE_URL || `http://localhost:${websitePort}`; + return websiteUrl; +} + +export const SuperTokensConfig: TypeInput = { + supertokens: { + // this is the location of the SuperTokens core. + connectionURI: "https://try.supertokens.com", + }, + appInfo: { + appName: "SuperTokens Demo App", + apiDomain: getApiDomain(), + websiteDomain: getWebsiteDomain(), + }, + // recipeList contains all the modules that you want to + // use from SuperTokens. See the full list here: https://supertokens.com/docs/guides + recipeList: [ + OAuth2Client.init({ + providerConfig: { + clientId: "REPLACE_WITH_YOUR_CLIENT_ID", + oidcDiscoveryEndpoint: `${AUTH_SERVER_URL}/auth/.well-known/openid-configuration`, + }, + }), + Session.init(), + ], +}; diff --git a/examples/with-oauth2-with-supertokens/backend/index.ts b/examples/with-oauth2-with-supertokens/backend/index.ts new file mode 100644 index 000000000..67c228198 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/backend/index.ts @@ -0,0 +1,38 @@ +import express from "express"; +import cors from "cors"; +import supertokens from "supertokens-node"; +import { verifySession } from "supertokens-node/recipe/session/framework/express"; +import { middleware, errorHandler, SessionRequest } from "supertokens-node/framework/express"; +import { getWebsiteDomain, SuperTokensConfig } from "./config"; + +supertokens.init(SuperTokensConfig); + +const app = express(); + +app.use( + cors({ + origin: getWebsiteDomain(), + allowedHeaders: ["content-type", ...supertokens.getAllCORSHeaders()], + methods: ["GET", "PUT", "POST", "DELETE"], + credentials: true, + }) +); + +// This exposes all the APIs from SuperTokens to the client. +app.use(middleware()); + +// An example API that requires session verification +app.get("/sessioninfo", verifySession(), async (req: SessionRequest, res) => { + let session = req.session; + res.send({ + sessionHandle: session!.getHandle(), + userId: session!.getUserId(), + accessTokenPayload: session!.getAccessTokenPayload(), + }); +}); + +// In case of session related errors, this error handler +// returns 401 to the client. +app.use(errorHandler()); + +app.listen(3001, () => console.log(`API Server listening on port 3001`)); diff --git a/examples/with-oauth2-with-supertokens/backend/package.json b/examples/with-oauth2-with-supertokens/backend/package.json new file mode 100644 index 000000000..5d69ff8af --- /dev/null +++ b/examples/with-oauth2-with-supertokens/backend/package.json @@ -0,0 +1,15 @@ +{ + "name": "supertokens-node", + "version": "0.0.1", + "private": true, + "description": "", + "main": "index.js", + "scripts": { + "start": "npx ts-node-dev --project ./tsconfig.json ./index.ts" + }, + "dependencies": {}, + "devDependencies": {}, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/examples/with-oauth2-with-supertokens/backend/tsconfig.json b/examples/with-oauth2-with-supertokens/backend/tsconfig.json new file mode 100644 index 000000000..8a91acaae --- /dev/null +++ b/examples/with-oauth2-with-supertokens/backend/tsconfig.json @@ -0,0 +1,62 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Basic Options */ + // "incremental": true, /* Enable incremental compilation */ + "target": "es5" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, + "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, + // "lib": [], /* Specify library files to be included in the compilation. */ + // "allowJs": true, /* Allow javascript files to be compiled. */ + // "checkJs": true, /* Report errors in .js files. */ + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ + // "declaration": true, /* Generates corresponding '.d.ts' file. */ + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + // "sourceMap": true, /* Generates corresponding '.map' file. */ + // "outFile": "./", /* Concatenate and emit output to single file. */ + // "outDir": "./", /* Redirect output structure to the directory. */ + // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + /* Strict Type-Checking Options */ + "strict": true /* Enable all strict type-checking options. */, + // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* Enable strict null checks. */ + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + /* Module Resolution Options */ + // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + /* Advanced Options */ + "skipLibCheck": true /* Skip type checking of declaration files. */, + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + } +} diff --git a/examples/with-oauth2-with-supertokens/frontend/.env b/examples/with-oauth2-with-supertokens/frontend/.env new file mode 100644 index 000000000..7d910f148 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/.env @@ -0,0 +1 @@ +SKIP_PREFLIGHT_CHECK=true \ No newline at end of file diff --git a/examples/with-oauth2-with-supertokens/frontend/.gitignore b/examples/with-oauth2-with-supertokens/frontend/.gitignore new file mode 100644 index 000000000..4d29575de --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/examples/with-oauth2-with-supertokens/frontend/LICENSE.md b/examples/with-oauth2-with-supertokens/frontend/LICENSE.md new file mode 100644 index 000000000..588f27e68 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/LICENSE.md @@ -0,0 +1,192 @@ +Copyright (c) 2020, VRAI Labs and/or its affiliates. All rights reserved. + +This software is licensed under the Apache License, Version 2.0 (the +"License") as published by the Apache Software Foundation. + +You may not use this software except in compliance with the License. A copy +of the License is available below the line. + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations +under the License. + +--- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/examples/with-oauth2-with-supertokens/frontend/package.json b/examples/with-oauth2-with-supertokens/frontend/package.json new file mode 100644 index 000000000..0c9b5703f --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/package.json @@ -0,0 +1,29 @@ +{ + "name": "supertokens-react", + "version": "0.1.0", + "private": true, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/examples/with-oauth2-with-supertokens/frontend/public/favicon.ico b/examples/with-oauth2-with-supertokens/frontend/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/examples/with-oauth2-with-supertokens/frontend/public/index.html b/examples/with-oauth2-with-supertokens/frontend/public/index.html new file mode 100644 index 000000000..6f1f7cb51 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/public/index.html @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + React App + + + +
      + + diff --git a/examples/with-oauth2-with-supertokens/frontend/public/manifest.json b/examples/with-oauth2-with-supertokens/frontend/public/manifest.json new file mode 100644 index 000000000..f01493ff0 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/examples/with-oauth2-with-supertokens/frontend/public/robots.txt b/examples/with-oauth2-with-supertokens/frontend/public/robots.txt new file mode 100644 index 000000000..e9e57dc4d --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/examples/with-oauth2-with-supertokens/frontend/src/App.css b/examples/with-oauth2-with-supertokens/frontend/src/App.css new file mode 100644 index 000000000..b9ee98c15 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/App.css @@ -0,0 +1,34 @@ +.App { + display: flex; + flex-direction: column; + width: 100vw; + height: 100vh; + font-family: Rubik; +} + +button, +.sessionButton { + padding-left: 13px; + padding-right: 13px; + padding-top: 8px; + padding-bottom: 8px; + background-color: black; + border-radius: 10px; + cursor: pointer; + color: white; + font-weight: bold; + font-size: 17px; +} + +.center { + display: flex; + flex-direction: column; + align-items: center; +} + +.fill { + display: flex; + flex-direction: column; + justify-content: center; + flex: 1; +} diff --git a/examples/with-oauth2-with-supertokens/frontend/src/App.tsx b/examples/with-oauth2-with-supertokens/frontend/src/App.tsx new file mode 100644 index 000000000..26367cd49 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/App.tsx @@ -0,0 +1,127 @@ +import "./App.css"; +import SuperTokens, { SuperTokensWrapper } from "supertokens-auth-react"; +import { SessionAuth, doesSessionExist } from "supertokens-auth-react/recipe/session"; +import { Routes, BrowserRouter as Router, Route, useNavigate } from "react-router-dom"; +import Home from "./Home"; +import { SuperTokensConfig, ComponentWrapper, getApiDomain, getWebsiteDomain } from "./config"; +import { useEffect, useRef } from "react"; +import { AuthProvider, AuthProviderProps, useAuth } from "react-oidc-context"; +import "./App.css"; + +SuperTokens.init(SuperTokensConfig); + +const AUTH_SERVER_URL = process.env.REACT_APP_AUTH_SERVER_API_URL || "http://localhost.com:3006"; +const clientId = "REPLACE_WITH_YOUR_CLIENT_ID"; + +const oidcConfig: AuthProviderProps = { + client_id: clientId, + authority: `${AUTH_SERVER_URL}/auth`, + response_type: "code", + redirect_uri: `${getWebsiteDomain()}/auth/callback`, + scope: "openid offline_access email", +}; + +function AuthPage() { + const navigate = useNavigate(); + const authCallbackHandled = useRef(false); + const { signinRedirect, signoutSilent, isLoading, user } = useAuth(); + + useEffect(() => { + // Redirect to home if supertokens session exists + doesSessionExist().then((sessionExists) => { + if (sessionExists) { + navigate("/"); + } + }); + }, []); + + useEffect(() => { + if (authCallbackHandled.current) return; + if (!user?.access_token) return; + + authCallbackHandled.current = true; + + async function handleSign() { + const res = await fetch(`${getApiDomain()}/auth/oauth/client/signin`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + oAuthTokens: { + access_token: user?.access_token, + }, + }), + }); + if (res.ok) { + const data = await res.json(); + if (data.status === "OK") { + signoutSilent(); + navigate("/"); + } else { + // setIsLoading(false); + window.alert("Login Failed "); + } + } + } + + handleSign(); + }, [user, navigate, signoutSilent]); + + if (isLoading || user) { + return ( +
      +

      Loading...

      +
      + ); + } + + return ( +
      +

      OAuth2 Example With Supertokens

      +
      +
      + +
      +
      +
      + ); +} + +function App() { + return ( + + +
      + +
      + + + + + } + /> + only if the user is logged in. + Else it redirects the user to "/auth" */ + + + + } + /> + +
      +
      +
      +
      +
      + ); +} + +export default App; diff --git a/examples/with-oauth2-with-supertokens/frontend/src/Home/CallAPIView.tsx b/examples/with-oauth2-with-supertokens/frontend/src/Home/CallAPIView.tsx new file mode 100644 index 000000000..6a9d510d4 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/Home/CallAPIView.tsx @@ -0,0 +1,15 @@ +import axios from "axios"; +import { getApiDomain } from "../config"; + +export default function CallAPIView() { + async function callAPIClicked() { + let response = await axios.get(getApiDomain() + "/sessioninfo"); + window.alert("Session Information:\n" + JSON.stringify(response.data, null, 2)); + } + + return ( +
      + Call API +
      + ); +} diff --git a/examples/with-oauth2-with-supertokens/frontend/src/Home/Home.css b/examples/with-oauth2-with-supertokens/frontend/src/Home/Home.css new file mode 100644 index 000000000..a056cb2eb --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/Home/Home.css @@ -0,0 +1,189 @@ +@font-face { + font-family: Menlo; + src: url("../assets/fonts/MenloRegular.ttf"); +} + +.app-container { + font-family: Rubik, sans-serif; +} + +.app-container * { + box-sizing: border-box; +} + +.bold-400 { + font-variation-settings: "wght" 400; +} + +.bold-500 { + font-variation-settings: "wght" 500; +} + +.bold-600 { + font-variation-settings: "wght" 600; +} + +#home-container { + align-items: center; + min-height: 100vh; + background: url("../assets/images/background.png"); + background-size: cover; +} + +.bold-700 { + font-variation-settings: "wght" 700; +} + +.app-container .main-container { + box-shadow: 0px 0px 60px 0px rgba(0, 0, 0, 0.16); + width: min(635px, calc(100% - 24px)); + border-radius: 16px; + margin-block-end: 159px; + background-color: #ffffff; +} + +.main-container .success-title { + line-height: 1; + padding-block: 26px; + background-color: #e7ffed; + text-align: center; + color: #3eb655; + display: flex; + justify-content: center; + align-items: flex-end; + font-size: 20px; +} + +.success-title img.success-icon { + margin-right: 8px; +} + +.main-container .inner-content { + padding-block: 48px; + text-align: center; + display: flex; + flex-direction: column; + align-items: center; +} + +.inner-content #user-id { + position: relative; + padding: 14px 17px; + border-image-slice: 1; + width: min(430px, calc(100% - 30px)); + margin-inline: auto; + margin-block: 11px 23px; + border-radius: 9px; + line-height: 1; + font-family: Menlo, serif; + cursor: text; +} + +.inner-content #user-id:before { + content: ""; + position: absolute; + inset: 0; + border-radius: 9px; + padding: 2px; + background: linear-gradient(90.31deg, #ff9933 0.11%, #ff3f33 99.82%); + -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); + mask-composite: exclude; + -webkit-mask-composite: xor; +} + +.main-container > .top-band, +.main-container > .bottom-band { + border-radius: inherit; +} + +.main-container .top-band { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.main-container .bottom-band { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.main-container .sessionButton { + box-sizing: border-box; + background: #ff9933; + border: 1px solid #ff8a15; + box-shadow: 0px 3px 6px rgba(255, 153, 51, 0.16); + border-radius: 6px; + font-size: 16px; +} + +.bottom-cta-container { + display: flex; + justify-content: flex-end; + padding-inline: 21px; + background-color: #212d4f; +} + +.bottom-cta-container .view-code { + padding-block: 11px; + color: #bac9f5; + cursor: pointer; + font-size: 14px; +} + +.bottom-links-container { + display: grid; + grid-template-columns: repeat(4, auto); + margin-bottom: 22px; +} + +.bottom-links-container .link { + display: flex; + align-items: center; + margin-inline-end: 68px; + cursor: pointer; +} + +.bottom-links-container .link:last-child { + margin-right: 0; +} + +.truncate { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +.separator-line { + max-width: 100%; +} + +.link .link-icon { + width: 15px; + margin-right: 5px; +} + +@media screen and (max-width: 768px) { + .bottom-links-container { + grid-template-columns: repeat(2, 1fr); + column-gap: 64px; + row-gap: 34px; + } + + .bottom-links-container .link { + margin-inline-end: 0; + } + + .separator-line { + max-width: 200px; + } +} + +@media screen and (max-width: 480px) { + #home-container { + justify-content: start; + padding-block-start: 25px; + } + + .app-container .main-container { + margin-block-end: 90px; + } +} diff --git a/examples/with-oauth2-with-supertokens/frontend/src/Home/SuccessView.tsx b/examples/with-oauth2-with-supertokens/frontend/src/Home/SuccessView.tsx new file mode 100644 index 000000000..bea4566ef --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/Home/SuccessView.tsx @@ -0,0 +1,72 @@ +import { useNavigate } from "react-router-dom"; +import { signOut } from "supertokens-auth-react/recipe/session"; +import { recipeDetails } from "../config"; +import CallAPIView from "./CallAPIView"; +import { BlogsIcon, CelebrateIcon, GuideIcon, SeparatorLine, SignOutIcon } from "../assets/images"; + +interface ILink { + name: string; + onClick: () => void; + icon: string; +} + +export default function SuccessView(props: { userId: string }) { + let userId = props.userId; + + const navigate = useNavigate(); + + async function logoutClicked() { + await signOut(); + navigate("/auth"); + } + + function openLink(url: string) { + window.open(url, "_blank"); + } + + const links: ILink[] = [ + { + name: "Blogs", + onClick: () => openLink("https://supertokens.com/blog"), + icon: BlogsIcon, + }, + { + name: "Documentation", + onClick: () => openLink(recipeDetails.docsLink), + icon: GuideIcon, + }, + { + name: "Sign Out", + onClick: logoutClicked, + icon: SignOutIcon, + }, + ]; + + return ( + <> +
      +
      + Login successful Login successful +
      +
      +
      Your userID is:
      +
      + {userId} +
      + +
      +
      +
      + {links.map((link) => ( +
      + {link.name} +
      + {link.name} +
      +
      + ))} +
      + separator + + ); +} diff --git a/examples/with-oauth2-with-supertokens/frontend/src/Home/index.tsx b/examples/with-oauth2-with-supertokens/frontend/src/Home/index.tsx new file mode 100644 index 000000000..0c3f288e8 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/Home/index.tsx @@ -0,0 +1,17 @@ +import SuccessView from "./SuccessView"; +import { useSessionContext } from "supertokens-auth-react/recipe/session"; +import "./Home.css"; + +export default function Home() { + const sessionContext = useSessionContext(); + + if (sessionContext.loading === true) { + return null; + } + + return ( +
      + +
      + ); +} diff --git a/examples/with-oauth2-with-supertokens/frontend/src/assets/fonts/MenloRegular.ttf b/examples/with-oauth2-with-supertokens/frontend/src/assets/fonts/MenloRegular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..033dc6d21241618fcc5dfd40f70a2943f7e3a36f GIT binary patch literal 475160 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�-hq}v4-RV%bJJf9swK~(& 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


      ^7@wrJ=g$3Fo`?)gAC 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 aw!g3k3*Lpkl3$0Pe{C4|7XAO4+Wc>4`DVKS literal 0 HcmV?d00001 diff --git a/examples/with-oauth2-with-supertokens/frontend/src/assets/images/arrow-right-icon.svg b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/arrow-right-icon.svg new file mode 100644 index 000000000..95aa1fec6 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/arrow-right-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/examples/with-oauth2-with-supertokens/frontend/src/assets/images/background.png b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..2147c15c2b1fe01142b0a89ae1d478375610db66 GIT binary patch literal 70254 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

        9EIan`0#%EiL^9{& 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 W`=$8T4Ud5j!+nrema3983j9Cd$)#Zc literal 0 HcmV?d00001 diff --git a/examples/with-oauth2-with-supertokens/frontend/src/assets/images/blogs-icon.svg b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/blogs-icon.svg new file mode 100644 index 000000000..a2fc9dd62 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/blogs-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/examples/with-oauth2-with-supertokens/frontend/src/assets/images/celebrate-icon.svg b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/celebrate-icon.svg new file mode 100644 index 000000000..3b40b1efa --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/celebrate-icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/examples/with-oauth2-with-supertokens/frontend/src/assets/images/guide-icon.svg b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/guide-icon.svg new file mode 100644 index 000000000..bd85af72b --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/guide-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/examples/with-oauth2-with-supertokens/frontend/src/assets/images/index.ts b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/index.ts new file mode 100644 index 000000000..7adf036c4 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/index.ts @@ -0,0 +1,8 @@ +import SeparatorLine from "./separator-line.svg"; +import ArrowRight from "./arrow-right-icon.svg"; +import SignOutIcon from "./sign-out-icon.svg"; +import GuideIcon from "./guide-icon.svg"; +import BlogsIcon from "./blogs-icon.svg"; +import CelebrateIcon from "./celebrate-icon.svg"; + +export { SeparatorLine, ArrowRight, SignOutIcon, GuideIcon, BlogsIcon, CelebrateIcon }; diff --git a/examples/with-oauth2-with-supertokens/frontend/src/assets/images/separator-line.svg b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/separator-line.svg new file mode 100644 index 000000000..7127a00dc --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/separator-line.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/examples/with-oauth2-with-supertokens/frontend/src/assets/images/sign-out-icon.svg b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/sign-out-icon.svg new file mode 100644 index 000000000..6cc4f85fd --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/assets/images/sign-out-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/examples/with-oauth2-with-supertokens/frontend/src/config.tsx b/examples/with-oauth2-with-supertokens/frontend/src/config.tsx new file mode 100644 index 000000000..a12a11d12 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/config.tsx @@ -0,0 +1,34 @@ +import Session from "supertokens-auth-react/recipe/session"; + +export function getApiDomain() { + const apiPort = process.env.REACT_APP_API_PORT || 3001; + const apiUrl = process.env.REACT_APP_API_URL || `http://localhost:${apiPort}`; + return apiUrl; +} + +export function getWebsiteDomain() { + const websitePort = process.env.REACT_APP_WEBSITE_PORT || 3000; + const websiteUrl = process.env.REACT_APP_WEBSITE_URL || `http://localhost:${websitePort}`; + return websiteUrl; +} + +export const SuperTokensConfig = { + appInfo: { + appName: "SuperTokens Demo App", + apiDomain: getApiDomain(), + websiteDomain: getWebsiteDomain(), + }, + // recipeList contains all the modules that you want to + // use from SuperTokens. See the full list here: https://supertokens.com/docs/guides + recipeList: [Session.init()], +}; + +export const recipeDetails = { + docsLink: "https://supertokens.com/docs/thirdparty/introduction", +}; + +export const PreBuiltUIList = []; + +export const ComponentWrapper = (props: { children: JSX.Element }): JSX.Element => { + return props.children; +}; diff --git a/examples/with-oauth2-with-supertokens/frontend/src/index.css b/examples/with-oauth2-with-supertokens/frontend/src/index.css new file mode 100644 index 000000000..04146b5e7 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/index.css @@ -0,0 +1,11 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", + "Droid Sans", "Helvetica Neue", sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace; +} diff --git a/examples/with-oauth2-with-supertokens/frontend/src/index.tsx b/examples/with-oauth2-with-supertokens/frontend/src/index.tsx new file mode 100644 index 000000000..126116f9b --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/index.tsx @@ -0,0 +1,12 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "./index.css"; +import App from "./App"; + +const root = ReactDOM.createRoot(document.getElementById("root") as HTMLElement); + +root.render( + + + +); diff --git a/examples/with-oauth2-with-supertokens/frontend/src/react-app-env.d.ts b/examples/with-oauth2-with-supertokens/frontend/src/react-app-env.d.ts new file mode 100644 index 000000000..6431bc5fc --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/examples/with-oauth2-with-supertokens/frontend/tsconfig.json b/examples/with-oauth2-with-supertokens/frontend/tsconfig.json new file mode 100644 index 000000000..c0555cbc6 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/frontend/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"] +} diff --git a/examples/with-oauth2-with-supertokens/package.json b/examples/with-oauth2-with-supertokens/package.json new file mode 100644 index 000000000..ed281d3c3 --- /dev/null +++ b/examples/with-oauth2-with-supertokens/package.json @@ -0,0 +1,51 @@ +{ + "name": "with-oauth2-with-supertokens", + "version": "0.0.1", + "description": "", + "main": "index.js", + "scripts": { + "start:frontend": "cd frontend && npm run start", + "start:frontend-live-demo-app": "cd frontend && npx serve -s build", + "start:backend": "cd backend && npm run start", + "start:backend-live-demo-app": "cd backend && ./startLiveDemoApp.sh", + "start": "npm-run-all --parallel start:frontend start:backend", + "start-live-demo-app": "npx npm-run-all --parallel start:frontend-live-demo-app start:backend-live-demo-app" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^27.5.2", + "@types/node": "^16.11.56", + "@types/react": "^18.0.18", + "@types/react-dom": "^18.0.6", + "axios": "^0.21.0", + "cors": "^2.8.5", + "express": "^4.18.1", + "helmet": "^5.1.0", + "morgan": "^1.10.0", + "oidc-client-ts": "^3.0.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-oidc-context": "^3.1.0", + "react-router-dom": "^6.2.1", + "react-scripts": "5.0.1", + "supertokens-auth-react": "github:supertokens/supertokens-auth-react#feat/oauth2/base", + "supertokens-node": "github:supertokens/supertokens-node#feat/oauth2/base", + "supertokens-web-js": "github:supertokens/supertokens-web-js#feat/oauth2/base", + "ts-node-dev": "^2.0.0", + "typescript": "^4.8.2", + "web-vitals": "^2.1.4" + }, + "devDependencies": { + "@types/cors": "^2.8.12", + "@types/express": "^4.17.17", + "@types/morgan": "^1.9.3", + "@types/node": "^16.11.38", + "nodemon": "^2.0.16", + "npm-run-all": "^4.1.5" + } +} diff --git a/examples/with-oauth2-without-supertokens/src/App.tsx b/examples/with-oauth2-without-supertokens/src/App.tsx index 17739b9be..d390207b0 100644 --- a/examples/with-oauth2-without-supertokens/src/App.tsx +++ b/examples/with-oauth2-without-supertokens/src/App.tsx @@ -1,7 +1,7 @@ import { AuthProvider, AuthProviderProps, useAuth } from "react-oidc-context"; import "./App.css"; -const authServerUrl = process.env.REACT_APP_AUTH_SERVER_API_URL || "http://localhost:3006"; +const authServerUrl = process.env.REACT_APP_AUTH_SERVER_API_URL || "http://localhost.com:3006"; const clientId = "REPLACE_WITH_YOUR_CLIENT_ID"; const oidcConfig: AuthProviderProps = { From e3d4876526d658b0240e8de11e20dc0d1a6d0d42 Mon Sep 17 00:00:00 2001 From: Mihaly Lengyel Date: Tue, 24 Sep 2024 18:17:25 +0200 Subject: [PATCH 04/20] feat: keep the tenantId queryparam during redirections --- lib/build/constants.d.ts | 1 + lib/build/emailpassword-shared3.js | 19 ++---- lib/build/emailpasswordprebuiltui.js | 14 +++- lib/build/emailverification-shared.js | 26 +++---- lib/build/genericComponentOverrideContext.js | 53 +++++++++++++-- lib/build/index2.js | 4 ++ lib/build/multifactorauth-shared.js | 2 + lib/build/multifactorauth-shared2.js | 68 +++++++++++++------ lib/build/oauth2provider-shared.js | 1 + lib/build/oauth2providerprebuiltui.js | 3 + lib/build/passwordlessprebuiltui.js | 20 ++++++ lib/build/recipe/emailpassword/recipe.d.ts | 11 ++- .../recipe/emailverification/recipe.d.ts | 5 +- lib/build/recipe/multifactorauth/recipe.d.ts | 6 +- lib/build/recipe/recipeModule/index.d.ts | 14 ++-- lib/build/recipe/recipeModule/types.d.ts | 6 +- lib/build/recipe/session/recipe.d.ts | 1 + lib/build/superTokens.d.ts | 16 ++++- lib/build/thirdpartyprebuiltui.js | 6 ++ lib/build/types.d.ts | 5 +- lib/build/utils.d.ts | 10 +++ lib/ts/constants.ts | 1 + .../components/feature/authPage/authPage.tsx | 11 ++- .../components/features/signin/index.tsx | 10 ++- .../components/features/signup/index.tsx | 3 +- lib/ts/recipe/emailpassword/recipe.tsx | 19 +++--- .../emailVerificationClaim.ts | 7 +- lib/ts/recipe/emailverification/recipe.tsx | 13 ++-- lib/ts/recipe/multifactorauth/recipe.tsx | 42 +++++++----- .../features/oauth2LogoutScreen/index.tsx | 3 +- .../features/tryRefreshPage/index.tsx | 3 +- lib/ts/recipe/oauth2provider/recipe.ts | 1 + .../features/linkClickedScreen/index.tsx | 9 ++- .../components/features/linkSent/index.tsx | 9 ++- .../components/features/mfa/index.tsx | 3 + .../components/features/signInAndUp/index.tsx | 3 +- .../features/signInAndUpEPCombo/index.tsx | 8 ++- .../features/userInputCode/index.tsx | 3 +- .../themes/signInUpEPCombo/emailForm.tsx | 8 ++- .../signInUpEPCombo/emailOrPhoneForm.tsx | 8 ++- lib/ts/recipe/recipeModule/index.ts | 11 +-- lib/ts/recipe/recipeModule/types.ts | 6 +- lib/ts/recipe/session/recipe.tsx | 9 ++- .../features/signInAndUpCallback/index.tsx | 5 +- lib/ts/superTokens.tsx | 26 +++++-- lib/ts/types.ts | 5 +- lib/ts/utils.ts | 42 +++++++++++- package-lock.json | 5 +- 48 files changed, 430 insertions(+), 134 deletions(-) diff --git a/lib/build/constants.d.ts b/lib/build/constants.d.ts index f4997a2e1..8ba89d3bd 100644 --- a/lib/build/constants.d.ts +++ b/lib/build/constants.d.ts @@ -1,4 +1,5 @@ export declare const RECIPE_ID_QUERY_PARAM = "rid"; +export declare const TENANT_ID_QUERY_PARAM = "tenantId"; export declare const DEFAULT_API_BASE_PATH = "/auth"; export declare const DEFAULT_WEBSITE_BASE_PATH = "/auth"; export declare const ST_ROOT_ID = "supertokens-root"; diff --git a/lib/build/emailpassword-shared3.js b/lib/build/emailpassword-shared3.js index 7382236e5..9abb90a67 100644 --- a/lib/build/emailpassword-shared3.js +++ b/lib/build/emailpassword-shared3.js @@ -2,7 +2,6 @@ var genericComponentOverrideContext = require("./genericComponentOverrideContext.js"); var EmailPasswordWebJS = require("supertokens-web-js/recipe/emailpassword"); -var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); var index = require("./authRecipe-shared2.js"); var types = require("./multifactorauth-shared.js"); var constants = require("./emailpassword-shared4.js"); @@ -13,7 +12,6 @@ function _interopDefault(e) { } var EmailPasswordWebJS__default = /*#__PURE__*/ _interopDefault(EmailPasswordWebJS); -var NormalisedURLPath__default = /*#__PURE__*/ _interopDefault(NormalisedURLPath); var getFunctionOverrides = function (onHandleEvent) { return function (originalImp) { @@ -600,22 +598,15 @@ var EmailPassword = /** @class */ (function (_super) { _this.firstFactorIds = [types.FactorIds.EMAILPASSWORD]; _this.getDefaultRedirectionURL = function (context) { return genericComponentOverrideContext.__awaiter(_this, void 0, void 0, function () { - var resetPasswordPath; return genericComponentOverrideContext.__generator(this, function (_a) { if (context.action === "RESET_PASSWORD") { - resetPasswordPath = new NormalisedURLPath__default.default( - constants.DEFAULT_RESET_PASSWORD_PATH - ); return [ 2 /*return*/, - "" - .concat( - this.config.appInfo.websiteBasePath - .appendPath(resetPasswordPath) - .getAsStringDangerous(), - "?rid=" - ) - .concat(this.config.recipeId), + genericComponentOverrideContext.getDefaultRedirectionURLForPath( + this.config, + constants.DEFAULT_RESET_PASSWORD_PATH, + context + ), ]; } return [2 /*return*/, this.getAuthRecipeDefaultRedirectionURL(context)]; diff --git a/lib/build/emailpasswordprebuiltui.js b/lib/build/emailpasswordprebuiltui.js index 50ad9e111..1c16cca73 100644 --- a/lib/build/emailpasswordprebuiltui.js +++ b/lib/build/emailpasswordprebuiltui.js @@ -834,7 +834,15 @@ function useChildProps$1(recipe$2, onAuthSuccess, error, onError, clearError, us return React.useMemo( function () { var onForgotPasswordClick = function () { - return recipe$2.redirect({ action: "RESET_PASSWORD" }, navigate, undefined, userContext); + return recipe$2.redirect( + { + action: "RESET_PASSWORD", + tenantIdFromQueryParams: genericComponentOverrideContext.getTenantIdFromQueryParams(), + }, + navigate, + undefined, + userContext + ); }; var signInAndUpFeature = recipe$2.config.signInAndUpFeature; var signInFeature = signInAndUpFeature.signInForm; @@ -914,6 +922,8 @@ function useChildProps$1(recipe$2, onAuthSuccess, error, onError, clearError, us evInstance.redirect( { action: "VERIFY_EMAIL", + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), }, navigate, undefined, @@ -1205,6 +1215,8 @@ function useChildProps(recipe, onAuthSuccess, error, onError, clearError, userCo evInstance.redirect( { action: "VERIFY_EMAIL", + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), }, navigate, undefined, diff --git a/lib/build/emailverification-shared.js b/lib/build/emailverification-shared.js index e75d4a068..1c7d9189f 100644 --- a/lib/build/emailverification-shared.js +++ b/lib/build/emailverification-shared.js @@ -2,7 +2,6 @@ var genericComponentOverrideContext = require("./genericComponentOverrideContext.js"); var EmailVerificationWebJS = require("supertokens-web-js/recipe/emailverification"); -var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); var postSuperTokensInitCallbacks = require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); var sessionClaimValidatorStore = require("supertokens-web-js/utils/sessionClaimValidatorStore"); var index = require("./recipeModule-shared.js"); @@ -12,7 +11,6 @@ function _interopDefault(e) { } var EmailVerificationWebJS__default = /*#__PURE__*/ _interopDefault(EmailVerificationWebJS); -var NormalisedURLPath__default = /*#__PURE__*/ _interopDefault(NormalisedURLPath); var _a = genericComponentOverrideContext.createGenericComponentsOverrideContext(), useContext = _a[0], @@ -55,7 +53,14 @@ var EmailVerificationClaimClass = /** @class */ (function (_super) { } var recipe = EmailVerification.getInstanceOrThrow(); if (recipe.config.mode === "REQUIRED") { - return recipe.getRedirectUrl({ action: "VERIFY_EMAIL" }, args.userContext); + return recipe.getRedirectUrl( + { + action: "VERIFY_EMAIL", + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), + }, + args.userContext + ); } return undefined; }, @@ -202,20 +207,15 @@ var EmailVerification = /** @class */ (function (_super) { _this.recipeID = EmailVerification.RECIPE_ID; _this.getDefaultRedirectionURL = function (context) { return genericComponentOverrideContext.__awaiter(_this, void 0, void 0, function () { - var verifyEmailPath; return genericComponentOverrideContext.__generator(this, function (_a) { if (context.action === "VERIFY_EMAIL") { - verifyEmailPath = new NormalisedURLPath__default.default(DEFAULT_VERIFY_EMAIL_PATH); return [ 2 /*return*/, - "" - .concat( - this.config.appInfo.websiteBasePath - .appendPath(verifyEmailPath) - .getAsStringDangerous(), - "?rid=" - ) - .concat(this.config.recipeId), + genericComponentOverrideContext.getDefaultRedirectionURLForPath( + this.config, + DEFAULT_VERIFY_EMAIL_PATH, + context + ), ]; } else { return [2 /*return*/, "/"]; diff --git a/lib/build/genericComponentOverrideContext.js b/lib/build/genericComponentOverrideContext.js index 8cb5d736f..03e91101a 100644 --- a/lib/build/genericComponentOverrideContext.js +++ b/lib/build/genericComponentOverrideContext.js @@ -245,6 +245,7 @@ typeof SuppressedError === "function" * Consts. */ var RECIPE_ID_QUERY_PARAM = "rid"; +var TENANT_ID_QUERY_PARAM = "tenantId"; var DEFAULT_API_BASE_PATH = "/auth"; var DEFAULT_WEBSITE_BASE_PATH = "/auth"; var ST_ROOT_ID = "supertokens-root"; @@ -389,6 +390,32 @@ function getRedirectToPathFromURL() { } } } +function getTenantIdFromQueryParams() { + var _a; + return (_a = getQueryParams(TENANT_ID_QUERY_PARAM)) !== null && _a !== void 0 ? _a : undefined; +} +function getDefaultRedirectionURLForPath(config, defaultPath, context, extraQueryParams) { + var redirectPath = config.appInfo.websiteBasePath + .appendPath(new NormalisedURLPath__default.default(defaultPath)) + .getAsStringDangerous(); + var queryParams = new URLSearchParams(); + if (context.tenantIdFromQueryParams !== undefined) { + queryParams.set(TENANT_ID_QUERY_PARAM, context.tenantIdFromQueryParams); + } + if (extraQueryParams !== undefined) { + Object.entries(extraQueryParams).forEach(function (_a) { + var key = _a[0], + value = _a[1]; + if (value !== undefined) { + queryParams.set(key, value); + } + }); + } + if (queryParams.toString() !== "") { + return "".concat(redirectPath, "?").concat(queryParams.toString()); + } + return redirectPath; +} /* * isTest */ @@ -1220,6 +1247,7 @@ var SuperTokens = /** @class */ (function () { { action: "TO_AUTH", showSignIn: options.show === "signin", + tenantIdFromQueryParams: getTenantIdFromQueryParams(), }, options.userContext ), @@ -1359,22 +1387,33 @@ var SuperTokens = /** @class */ (function () { SuperTokens.prototype.getRedirectUrl = function (context, userContext) { var _a; return __awaiter(this, void 0, void 0, function () { - var userRes, redirectUrl; - return __generator(this, function (_b) { - switch (_b.label) { + var userRes, redirectUrl, basePath; + var _b; + return __generator(this, function (_c) { + switch (_c.label) { case 0: if (!this.userGetRedirectionURL) return [3 /*break*/, 2]; return [4 /*yield*/, this.userGetRedirectionURL(context, userContext)]; case 1: - userRes = _b.sent(); + userRes = _c.sent(); if (userRes !== undefined) { return [2 /*return*/, userRes]; } - _b.label = 2; + _c.label = 2; case 2: if (context.action === "TO_AUTH") { redirectUrl = this.appInfo.websiteBasePath.getAsStringDangerous(); - return [2 /*return*/, appendTrailingSlashToURL(redirectUrl)]; + basePath = appendTrailingSlashToURL(redirectUrl); + if (context.tenantIdFromQueryParams) { + return [ + 2 /*return*/, + appendQueryParamsToURL( + basePath, + ((_b = {}), (_b[TENANT_ID_QUERY_PARAM] = context.tenantIdFromQueryParams), _b) + ), + ]; + } + return [2 /*return*/, basePath]; } else if (context.action === "SUCCESS") { return [2 /*return*/, (_a = context.redirectToPath) !== null && _a !== void 0 ? _a : "/"]; } @@ -1450,10 +1489,12 @@ exports.createGenericComponentsOverrideContext = createGenericComponentsOverride exports.getCurrentLanguageFromCookie = getCurrentLanguageFromCookie; exports.getCurrentNormalisedUrlPath = getCurrentNormalisedUrlPath; exports.getCurrentNormalisedUrlPathWithQueryParamsAndFragments = getCurrentNormalisedUrlPathWithQueryParamsAndFragments; +exports.getDefaultRedirectionURLForPath = getDefaultRedirectionURLForPath; exports.getLocalStorage = getLocalStorage; exports.getNormalisedUserContext = getNormalisedUserContext; exports.getQueryParams = getQueryParams; exports.getRedirectToPathFromURL = getRedirectToPathFromURL; +exports.getTenantIdFromQueryParams = getTenantIdFromQueryParams; exports.getURLHash = getURLHash; exports.isTest = isTest; exports.logDebugMessage = logDebugMessage; diff --git a/lib/build/index2.js b/lib/build/index2.js index afe235f69..77267b857 100644 --- a/lib/build/index2.js +++ b/lib/build/index2.js @@ -1048,6 +1048,8 @@ var AuthPageInner = function (props) { isNewRecipeUser: false, loginChallenge: loginChallenge, newSessionCreated: false, + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), recipeId: types.Session.RECIPE_ID, }, types.Session.RECIPE_ID, @@ -1135,10 +1137,12 @@ var AuthPageInner = function (props) { loginChallenge !== null ? genericComponentOverrideContext.__assign(genericComponentOverrideContext.__assign({}, ctx), { action: "SUCCESS_OAUTH2", + tenantIdFromQueryParams: genericComponentOverrideContext.getTenantIdFromQueryParams(), loginChallenge: loginChallenge, }) : genericComponentOverrideContext.__assign(genericComponentOverrideContext.__assign({}, ctx), { action: "SUCCESS", + tenantIdFromQueryParams: genericComponentOverrideContext.getTenantIdFromQueryParams(), redirectToPath: genericComponentOverrideContext.getRedirectToPathFromURL(), }), ctx.recipeId, diff --git a/lib/build/multifactorauth-shared.js b/lib/build/multifactorauth-shared.js index 9da088995..7b88f6acf 100644 --- a/lib/build/multifactorauth-shared.js +++ b/lib/build/multifactorauth-shared.js @@ -351,6 +351,7 @@ var Session = /** @class */ (function (_super) { createdNewUser: false, isNewRecipeUser: false, newSessionCreated: false, + tenantIdFromQueryParams: genericComponentOverrideContext.getTenantIdFromQueryParams(), }; _a.label = 13; case 13: @@ -391,6 +392,7 @@ var Session = /** @class */ (function (_super) { _this.getDefaultRedirectionURL = function () { return genericComponentOverrideContext.__awaiter(_this, void 0, void 0, function () { return genericComponentOverrideContext.__generator(this, function (_a) { + // We do not use the util here, since we are redirecting outside of the SDK routes return [2 /*return*/, "/"]; }); }); diff --git a/lib/build/multifactorauth-shared2.js b/lib/build/multifactorauth-shared2.js index 4eb51565b..ee8ff240f 100644 --- a/lib/build/multifactorauth-shared2.js +++ b/lib/build/multifactorauth-shared2.js @@ -3,7 +3,6 @@ var genericComponentOverrideContext = require("./genericComponentOverrideContext.js"); var MultiFactorAuthWebJS = require("supertokens-web-js/recipe/multifactorauth"); var utils = require("supertokens-web-js/utils"); -var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); var postSuperTokensInitCallbacks = require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); var sessionClaimValidatorStore = require("supertokens-web-js/utils/sessionClaimValidatorStore"); var windowHandler = require("supertokens-web-js/utils/windowHandler"); @@ -15,7 +14,6 @@ function _interopDefault(e) { } var MultiFactorAuthWebJS__default = /*#__PURE__*/ _interopDefault(MultiFactorAuthWebJS); -var NormalisedURLPath__default = /*#__PURE__*/ _interopDefault(NormalisedURLPath); /* Copyright (c) 2024, VRAI Labs and/or its affiliates. All rights reserved. * @@ -389,27 +387,36 @@ var MultiFactorAuth = /** @class */ (function (_super) { _this.secondaryFactors = []; _this.getDefaultRedirectionURL = function (context, userContext) { return genericComponentOverrideContext.__awaiter(_this, void 0, void 0, function () { - var chooserPath, url, redirectInfo, url; + var nParam, redirectInfo; return genericComponentOverrideContext.__generator(this, function (_b) { if (context.action === "FACTOR_CHOOSER") { - chooserPath = new NormalisedURLPath__default.default(DEFAULT_FACTOR_CHOOSER_PATH); - url = this.config.appInfo.websiteBasePath.appendPath(chooserPath).getAsStringDangerous(); - if (context.nextFactorOptions && context.nextFactorOptions.length > 0) { - url += "?n=".concat(context.nextFactorOptions.join(",")); - } - return [2 /*return*/, url]; + nParam = + context.nextFactorOptions && context.nextFactorOptions.length > 0 + ? context.nextFactorOptions.join(",") + : undefined; + return [ + 2 /*return*/, + genericComponentOverrideContext.getDefaultRedirectionURLForPath( + this.config, + DEFAULT_FACTOR_CHOOSER_PATH, + context, + { n: nParam } + ), + ]; } else if (context.action === "GO_TO_FACTOR") { redirectInfo = this.getSecondaryFactors(userContext).find(function (f) { return f.id === context.factorId; }); if (redirectInfo !== undefined) { - url = this.config.appInfo.websiteBasePath - .appendPath(new NormalisedURLPath__default.default(redirectInfo.path)) - .getAsStringDangerous(); - if (context.forceSetup) { - url += "?setup=true"; - } - return [2 /*return*/, url]; + return [ + 2 /*return*/, + genericComponentOverrideContext.getDefaultRedirectionURLForPath( + this.config, + redirectInfo.path, + context, + context.forceSetup ? { setup: "true" } : {} + ), + ]; } throw new Error("Requested redirect to unknown factor id: " + context.factorId); } else { @@ -512,7 +519,13 @@ var MultiFactorAuth = /** @class */ (function (_super) { return [ 4 /*yield*/, this.getRedirectUrl( - { action: "GO_TO_FACTOR", forceSetup: forceSetup, factorId: factorId }, + { + action: "GO_TO_FACTOR", + forceSetup: forceSetup, + factorId: factorId, + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), + }, utils.getNormalisedUserContext(userContext) ), ]; @@ -577,7 +590,12 @@ var MultiFactorAuth = /** @class */ (function (_super) { return [ 4 /*yield*/, this.getRedirectUrl( - { action: "FACTOR_CHOOSER", nextFactorOptions: nextFactorOptions }, + { + action: "FACTOR_CHOOSER", + nextFactorOptions: nextFactorOptions, + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), + }, utils.getNormalisedUserContext(userContext) ), ]; @@ -633,7 +651,19 @@ var MultiFactorAuth = /** @class */ (function (_super) { return genericComponentOverrideContext.__generator(_a, function (_b) { switch (_b.label) { case 0: - return [4 /*yield*/, this.getInstanceOrThrow().getRedirectUrl(context, userContext)]; + return [ + 4 /*yield*/, + this.getInstanceOrThrow().getRedirectUrl( + genericComponentOverrideContext.__assign( + genericComponentOverrideContext.__assign({}, context), + { + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), + } + ), + userContext + ), + ]; case 1: return [2 /*return*/, _b.sent() || undefined]; } diff --git a/lib/build/oauth2provider-shared.js b/lib/build/oauth2provider-shared.js index 1c266487a..98387a382 100644 --- a/lib/build/oauth2provider-shared.js +++ b/lib/build/oauth2provider-shared.js @@ -162,6 +162,7 @@ var OAuth2Provider = /** @class */ (function (_super) { return genericComponentOverrideContext.__awaiter(this, void 0, void 0, function () { var domain, basePath; return genericComponentOverrideContext.__generator(this, function (_a) { + // We do not use the util here, because we are likely redirecting across domains here. if (ctx.action === "SUCCESS_OAUTH2" || ctx.action === "CONTINUE_OAUTH2_AFTER_REFRESH") { domain = this.config.appInfo.apiDomain.getAsStringDangerous(); basePath = this.config.appInfo.apiBasePath.getAsStringDangerous(); diff --git a/lib/build/oauth2providerprebuiltui.js b/lib/build/oauth2providerprebuiltui.js index 545ede489..df8195b34 100644 --- a/lib/build/oauth2providerprebuiltui.js +++ b/lib/build/oauth2providerprebuiltui.js @@ -239,6 +239,8 @@ var OAuth2LogoutScreen = function (props) { { recipeId: "oauth2provider", action: "POST_OAUTH2_LOGOUT_REDIRECT", + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), frontendRedirectTo: frontendRedirectTo, }, navigate, @@ -343,6 +345,7 @@ var TryRefreshPage$1 = function (props) { { action: "CONTINUE_OAUTH2_AFTER_REFRESH", loginChallenge: loginChallenge !== null && loginChallenge !== void 0 ? loginChallenge : "", + tenantIdFromQueryParams: genericComponentOverrideContext.getTenantIdFromQueryParams(), recipeId: "oauth2provider", }, props.navigate, diff --git a/lib/build/passwordlessprebuiltui.js b/lib/build/passwordlessprebuiltui.js index 615fa049d..a8c658278 100644 --- a/lib/build/passwordlessprebuiltui.js +++ b/lib/build/passwordlessprebuiltui.js @@ -499,6 +499,8 @@ var LinkClickedScreen = function (props) { (payloadBeforeCall === undefined || payloadBeforeCall.sessionHandle !== payloadAfterCall.sessionHandle), recipeId: props.recipe.recipeID, + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), }, props.recipe.recipeID, loginAttemptInfo === null || loginAttemptInfo === void 0 @@ -1198,6 +1200,8 @@ function useChildProps$4( session$1.accessTokenPayload.sessionHandle !== payloadAfterCall.sessionHandle), recipeId: recipe$1.recipeID, + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), }, recipe$1.recipeID, genericComponentOverrideContext.getRedirectToPathFromURL(), @@ -1246,6 +1250,8 @@ function useChildProps$4( 4 /*yield*/, evInstance.redirect( { + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), action: "VERIFY_EMAIL", }, navigate, @@ -4617,6 +4623,8 @@ function useChildProps$3(recipe$1, recipeImplementation, state, contactMethod, d evInstance.redirect( { action: "VERIFY_EMAIL", + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), }, navigate, undefined, @@ -4871,6 +4879,8 @@ function useOnLoad(props, recipeImplementation, dispatch, userContext) { 4 /*yield*/, evInstance.redirect( { + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), action: "VERIFY_EMAIL", }, props.navigate, @@ -5502,6 +5512,8 @@ function useChildProps$2( evInstance.redirect( { action: "VERIFY_EMAIL", + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), }, navigate, undefined, @@ -5747,6 +5759,8 @@ var EPComboEmailForm = uiEntry.withOverride( onClick: function () { return recipe$1.EmailPassword.getInstanceOrThrow().redirect({ action: "RESET_PASSWORD", + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), }); }, "data-supertokens": "link linkButton formLabelLinkBtn forgotPasswordLink", @@ -5928,6 +5942,8 @@ var EPComboEmailOrPhoneForm = uiEntry.withOverride( onClick: function () { return recipe$1.EmailPassword.getInstanceOrThrow().redirect({ action: "RESET_PASSWORD", + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), }); }, "data-supertokens": "link linkButton formLabelLinkBtn forgotPasswordLink", @@ -6364,6 +6380,8 @@ function useChildProps$1( evInstance.redirect( { action: "VERIFY_EMAIL", + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), }, navigate, undefined, @@ -6608,6 +6626,8 @@ function useChildProps( evInstance.redirect( { action: "VERIFY_EMAIL", + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), }, navigate, undefined, diff --git a/lib/build/recipe/emailpassword/recipe.d.ts b/lib/build/recipe/emailpassword/recipe.d.ts index 73be9e8f5..3f928c475 100644 --- a/lib/build/recipe/emailpassword/recipe.d.ts +++ b/lib/build/recipe/emailpassword/recipe.d.ts @@ -7,7 +7,12 @@ import type { NormalisedConfig, UserInput, } from "./types"; -import type { RecipeInitResult, NormalisedConfigWithAppInfoAndRecipeID, WebJSRecipeInterface } from "../../types"; +import type { + RecipeInitResult, + NormalisedConfigWithAppInfoAndRecipeID, + WebJSRecipeInterface, + NormalisedGetRedirectionURLContext, +} from "../../types"; export default class EmailPassword extends AuthRecipe< GetRedirectionURLContext, never, @@ -24,7 +29,9 @@ export default class EmailPassword extends AuthRecipe< config: NormalisedConfigWithAppInfoAndRecipeID, webJSRecipe?: WebJSRecipeInterface ); - getDefaultRedirectionURL: (context: GetRedirectionURLContext) => Promise; + getDefaultRedirectionURL: ( + context: NormalisedGetRedirectionURLContext + ) => Promise; static init( config?: UserInput ): RecipeInitResult; diff --git a/lib/build/recipe/emailverification/recipe.d.ts b/lib/build/recipe/emailverification/recipe.d.ts index e655d2dd2..c4899a2f3 100644 --- a/lib/build/recipe/emailverification/recipe.d.ts +++ b/lib/build/recipe/emailverification/recipe.d.ts @@ -10,6 +10,7 @@ import type { } from "./types"; import type { NormalisedConfigWithAppInfoAndRecipeID, + NormalisedGetRedirectionURLContext, RecipeInitResult, UserContext, WebJSRecipeInterface, @@ -38,6 +39,8 @@ export default class EmailVerification extends RecipeModule< isVerified: boolean; fetchResponse: Response; }>; - getDefaultRedirectionURL: (context: GetRedirectionURLContext) => Promise; + getDefaultRedirectionURL: ( + context: NormalisedGetRedirectionURLContext + ) => Promise; static reset(): void; } diff --git a/lib/build/recipe/multifactorauth/recipe.d.ts b/lib/build/recipe/multifactorauth/recipe.d.ts index 606f2552d..644b33919 100644 --- a/lib/build/recipe/multifactorauth/recipe.d.ts +++ b/lib/build/recipe/multifactorauth/recipe.d.ts @@ -12,6 +12,7 @@ import type { import type { Navigate, NormalisedConfigWithAppInfoAndRecipeID, + NormalisedGetRedirectionURLContext, RecipeInitResult, UserContext, WebJSRecipeInterface, @@ -37,7 +38,10 @@ export default class MultiFactorAuth extends RecipeModule< ): RecipeInitResult; static getInstance(): MultiFactorAuth | undefined; static getInstanceOrThrow(): MultiFactorAuth; - getDefaultRedirectionURL: (context: GetRedirectionURLContext, userContext: UserContext) => Promise; + getDefaultRedirectionURL: ( + context: NormalisedGetRedirectionURLContext, + userContext: UserContext + ) => Promise; addMFAFactors(secondaryFactors: SecondaryFactorRedirectionInfo[]): void; isFirstFactorEnabledOnClient(factorId: string): boolean; getSecondaryFactors(userContext: UserContext): SecondaryFactorRedirectionInfo[]; diff --git a/lib/build/recipe/recipeModule/index.d.ts b/lib/build/recipe/recipeModule/index.d.ts index ff126debf..c83e68e16 100644 --- a/lib/build/recipe/recipeModule/index.d.ts +++ b/lib/build/recipe/recipeModule/index.d.ts @@ -1,6 +1,6 @@ import { BaseRecipeModule } from "./baseRecipeModule"; import type { NormalisedConfig } from "./types"; -import type { Navigate, UserContext } from "../../types"; +import type { Navigate, NormalisedGetRedirectionURLContext, UserContext } from "../../types"; export default abstract class RecipeModule< GetRedirectionURLContextType, Action, @@ -8,11 +8,17 @@ export default abstract class RecipeModule< N extends NormalisedConfig > extends BaseRecipeModule { redirect: ( - context: GetRedirectionURLContextType, + context: NormalisedGetRedirectionURLContext, navigate?: Navigate, queryParams?: Record, userContext?: UserContext ) => Promise; - getRedirectUrl: (context: GetRedirectionURLContextType, userContext: UserContext) => Promise; - getDefaultRedirectionURL(_: GetRedirectionURLContextType, _userContext: UserContext): Promise; + getRedirectUrl: ( + context: NormalisedGetRedirectionURLContext, + userContext: UserContext + ) => Promise; + getDefaultRedirectionURL( + _: NormalisedGetRedirectionURLContext, + _userContext: UserContext + ): Promise; } diff --git a/lib/build/recipe/recipeModule/types.d.ts b/lib/build/recipe/recipeModule/types.d.ts index 968d0008d..3df75b39f 100644 --- a/lib/build/recipe/recipeModule/types.d.ts +++ b/lib/build/recipe/recipeModule/types.d.ts @@ -1,4 +1,4 @@ -import type { UserContext } from "../../types"; +import type { NormalisedGetRedirectionURLContext, UserContext } from "../../types"; export declare type RecipePreAPIHookContext = { requestInit: RequestInit; url: string; @@ -20,7 +20,7 @@ export declare type RecipePostAPIHookFunction = (context: RecipePostAPIH export declare type RecipeOnHandleEventFunction = (context: EventType) => void; export declare type UserInput = { getRedirectionURL?: ( - context: GetRedirectionURLContextType, + context: NormalisedGetRedirectionURLContext, userContext: UserContext ) => Promise; preAPIHook?: RecipePreAPIHookFunction; @@ -35,7 +35,7 @@ export declare type Config; export declare type NormalisedConfig = { getRedirectionURL: ( - context: GetRedirectionURLContextType, + context: NormalisedGetRedirectionURLContext, userContext: UserContext ) => Promise; onHandleEvent: RecipeOnHandleEventFunction; diff --git a/lib/build/recipe/session/recipe.d.ts b/lib/build/recipe/session/recipe.d.ts index 4925a3630..674e168a9 100644 --- a/lib/build/recipe/session/recipe.d.ts +++ b/lib/build/recipe/session/recipe.d.ts @@ -55,6 +55,7 @@ export default class Session extends RecipeModule | Omit) & { recipeId: string; + tenantIdFromQueryParams: string | undefined; }) | undefined, fallbackRecipeId: string, diff --git a/lib/build/superTokens.d.ts b/lib/build/superTokens.d.ts index 6fa48b469..3d5293d6d 100644 --- a/lib/build/superTokens.d.ts +++ b/lib/build/superTokens.d.ts @@ -3,7 +3,14 @@ import type RecipeModule from "./recipe/recipeModule"; import type { BaseRecipeModule } from "./recipe/recipeModule/baseRecipeModule"; import type { NormalisedConfig as NormalisedRecipeModuleConfig } from "./recipe/recipeModule/types"; import type { TranslationFunc, TranslationStore } from "./translation/translationHelpers"; -import type { Navigate, GetRedirectionURLContext, NormalisedAppInfo, SuperTokensConfig, UserContext } from "./types"; +import type { + Navigate, + GetRedirectionURLContext, + NormalisedAppInfo, + SuperTokensConfig, + UserContext, + NormalisedGetRedirectionURLContext, +} from "./types"; export default class SuperTokens { private static instance?; static usesDynamicLoginMethods: boolean; @@ -31,7 +38,10 @@ export default class SuperTokens { ): RecipeModule; changeLanguage: (lang: string) => Promise; loadTranslation(store: TranslationStore): void; - getRedirectUrl(context: GetRedirectionURLContext, userContext: UserContext): Promise; + getRedirectUrl( + context: NormalisedGetRedirectionURLContext, + userContext: UserContext + ): Promise; redirectToAuth: (options: { show?: "signin" | "signup" | undefined; navigate?: Navigate | undefined; @@ -41,7 +51,7 @@ export default class SuperTokens { }) => Promise; redirectToUrl: (redirectUrl: string, navigate?: Navigate) => Promise; redirect: ( - context: GetRedirectionURLContext, + context: NormalisedGetRedirectionURLContext, navigate?: Navigate, queryParams?: Record, userContext?: UserContext diff --git a/lib/build/thirdpartyprebuiltui.js b/lib/build/thirdpartyprebuiltui.js index de2b8a93e..e06340548 100644 --- a/lib/build/thirdpartyprebuiltui.js +++ b/lib/build/thirdpartyprebuiltui.js @@ -513,6 +513,8 @@ var SignInAndUpCallback$1 = function (props) { payloadBeforeCall.sessionHandle !== payloadAfterCall.sessionHandle), recipeId: props.recipe.recipeID, + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), } : { action: "SUCCESS", @@ -526,6 +528,8 @@ var SignInAndUpCallback$1 = function (props) { payloadBeforeCall.sessionHandle !== payloadAfterCall.sessionHandle), recipeId: props.recipe.recipeID, + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), }, props.recipe.recipeID, redirectToPath, @@ -577,6 +581,8 @@ var SignInAndUpCallback$1 = function (props) { evInstance.redirect( { action: "VERIFY_EMAIL", + tenantIdFromQueryParams: + genericComponentOverrideContext.getTenantIdFromQueryParams(), }, props.navigate, undefined, diff --git a/lib/build/types.d.ts b/lib/build/types.d.ts index d4a235220..fd2c5d25c 100644 --- a/lib/build/types.d.ts +++ b/lib/build/types.d.ts @@ -74,7 +74,7 @@ export declare type SuperTokensConfig = { }; enableDebugLogs?: boolean; getRedirectionURL?: ( - context: GetRedirectionURLContext, + context: NormalisedGetRedirectionURLContext, userContext: UserContext ) => Promise; style?: string; @@ -226,4 +226,7 @@ export declare type PartialAuthComponent = { component: React.FC; }; export declare type AuthComponent = PartialAuthComponent | FullPageAuthComponent; +export declare type NormalisedGetRedirectionURLContext = RecipeContext & { + tenantIdFromQueryParams: string | undefined; +}; export {}; diff --git a/lib/build/utils.d.ts b/lib/build/utils.d.ts index 7e87db5b9..9c63de8a9 100644 --- a/lib/build/utils.d.ts +++ b/lib/build/utils.d.ts @@ -8,6 +8,7 @@ import type { Navigate, NormalisedAppInfo, NormalisedFormField, + NormalisedGetRedirectionURLContext, UserContext, } from "./types"; export declare function getRecipeIdFromSearch(search: string): string | null; @@ -17,6 +18,15 @@ export declare function clearErrorQueryParam(): void; export declare function getQueryParams(param: string): string | null; export declare function getURLHash(): string; export declare function getRedirectToPathFromURL(): string | undefined; +export declare function getTenantIdFromQueryParams(): string | undefined; +export declare function getDefaultRedirectionURLForPath( + config: { + appInfo: NormalisedAppInfo; + }, + defaultPath: string, + context: NormalisedGetRedirectionURLContext, + extraQueryParams?: Record +): string; export declare function isTest(): boolean; export declare function normaliseInputAppInfoOrThrowError(appInfo: AppInfoUserInput): NormalisedAppInfo; export declare function validateForm( diff --git a/lib/ts/constants.ts b/lib/ts/constants.ts index 3727b23b1..ab313489b 100644 --- a/lib/ts/constants.ts +++ b/lib/ts/constants.ts @@ -17,6 +17,7 @@ * Consts. */ export const RECIPE_ID_QUERY_PARAM = "rid"; +export const TENANT_ID_QUERY_PARAM = "tenantId"; export const DEFAULT_API_BASE_PATH = "/auth"; diff --git a/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx b/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx index 66fa995f1..0f738b3be 100644 --- a/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx +++ b/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx @@ -25,7 +25,13 @@ import SuperTokens from "../../../../../superTokens"; import { TranslationContextProvider } from "../../../../../translation/translationContext"; import { defaultTranslationsCommon } from "../../../../../translation/translations"; import { UserContextProvider, useUserContext } from "../../../../../usercontext"; -import { getRedirectToPathFromURL, mergeObjects, updateQueryParam, useRethrowInRender } from "../../../../../utils"; +import { + getRedirectToPathFromURL, + getTenantIdFromQueryParams, + mergeObjects, + updateQueryParam, + useRethrowInRender, +} from "../../../../../utils"; import MultiFactorAuth from "../../../../multifactorauth/recipe"; import { FactorIds } from "../../../../multifactorauth/types"; import DynamicLoginMethodsSpinner from "../../../../multitenancy/components/features/dynamicLoginMethodsSpinner"; @@ -205,6 +211,7 @@ const AuthPageInner: React.FC = (props) => { isNewRecipeUser: false, loginChallenge, newSessionCreated: false, + tenantIdFromQueryParams: getTenantIdFromQueryParams(), recipeId: Session.RECIPE_ID, }, Session.RECIPE_ID, @@ -290,11 +297,13 @@ const AuthPageInner: React.FC = (props) => { ? { ...ctx, action: "SUCCESS_OAUTH2", + tenantIdFromQueryParams: getTenantIdFromQueryParams(), loginChallenge, } : { ...ctx, action: "SUCCESS", + tenantIdFromQueryParams: getTenantIdFromQueryParams(), redirectToPath: getRedirectToPathFromURL(), }, ctx.recipeId, diff --git a/lib/ts/recipe/emailpassword/components/features/signin/index.tsx b/lib/ts/recipe/emailpassword/components/features/signin/index.tsx index dd580735f..134f01a72 100644 --- a/lib/ts/recipe/emailpassword/components/features/signin/index.tsx +++ b/lib/ts/recipe/emailpassword/components/features/signin/index.tsx @@ -23,7 +23,7 @@ import { useCallback } from "react"; import AuthComponentWrapper from "../../../../../components/authCompWrapper"; import { useTranslation } from "../../../../../translation/translationContext"; -import { useRethrowInRender } from "../../../../../utils"; +import { getTenantIdFromQueryParams, useRethrowInRender } from "../../../../../utils"; import { EmailVerificationClaim } from "../../../../emailverification"; import EmailVerification from "../../../../emailverification/recipe"; import { getInvalidClaimsFromResponse } from "../../../../session"; @@ -78,7 +78,12 @@ export function useChildProps( return useMemo(() => { const onForgotPasswordClick = () => - recipe.redirect({ action: "RESET_PASSWORD" }, navigate, undefined, userContext); + recipe.redirect( + { action: "RESET_PASSWORD", tenantIdFromQueryParams: getTenantIdFromQueryParams() }, + navigate, + undefined, + userContext + ); const signInAndUpFeature = recipe.config.signInAndUpFeature; const signInFeature = signInAndUpFeature.signInForm; @@ -118,6 +123,7 @@ export function useChildProps( await evInstance.redirect( { action: "VERIFY_EMAIL", + tenantIdFromQueryParams: getTenantIdFromQueryParams(), }, navigate, undefined, diff --git a/lib/ts/recipe/emailpassword/components/features/signup/index.tsx b/lib/ts/recipe/emailpassword/components/features/signup/index.tsx index 46728ee42..648102840 100644 --- a/lib/ts/recipe/emailpassword/components/features/signup/index.tsx +++ b/lib/ts/recipe/emailpassword/components/features/signup/index.tsx @@ -24,7 +24,7 @@ import STGeneralError from "supertokens-web-js/utils/error"; import AuthComponentWrapper from "../../../../../components/authCompWrapper"; import { useUserContext } from "../../../../../usercontext"; -import { useRethrowInRender } from "../../../../../utils"; +import { getTenantIdFromQueryParams, useRethrowInRender } from "../../../../../utils"; import { EmailVerificationClaim } from "../../../../emailverification"; import EmailVerification from "../../../../emailverification/recipe"; import { getInvalidClaimsFromResponse } from "../../../../session"; @@ -96,6 +96,7 @@ export function useChildProps( await evInstance.redirect( { action: "VERIFY_EMAIL", + tenantIdFromQueryParams: getTenantIdFromQueryParams(), }, navigate, undefined, diff --git a/lib/ts/recipe/emailpassword/recipe.tsx b/lib/ts/recipe/emailpassword/recipe.tsx index da00eb696..1374a6edb 100644 --- a/lib/ts/recipe/emailpassword/recipe.tsx +++ b/lib/ts/recipe/emailpassword/recipe.tsx @@ -18,10 +18,9 @@ */ import EmailPasswordWebJS from "supertokens-web-js/recipe/emailpassword"; -import NormalisedURLPath from "supertokens-web-js/utils/normalisedURLPath"; import { SSR_ERROR } from "../../constants"; -import { isTest } from "../../utils"; +import { getDefaultRedirectionURLForPath, isTest } from "../../utils"; import AuthRecipe from "../authRecipe"; import { FactorIds } from "../multifactorauth/types"; @@ -36,7 +35,12 @@ import type { NormalisedConfig, UserInput, } from "./types"; -import type { RecipeInitResult, NormalisedConfigWithAppInfoAndRecipeID, WebJSRecipeInterface } from "../../types"; +import type { + RecipeInitResult, + NormalisedConfigWithAppInfoAndRecipeID, + WebJSRecipeInterface, + NormalisedGetRedirectionURLContext, +} from "../../types"; import type { NormalisedAppInfo } from "../../types"; import type RecipeModule from "../recipeModule"; @@ -65,12 +69,11 @@ export default class EmailPassword extends AuthRecipe< super(config); } - getDefaultRedirectionURL = async (context: GetRedirectionURLContext): Promise => { + getDefaultRedirectionURL = async ( + context: NormalisedGetRedirectionURLContext + ): Promise => { if (context.action === "RESET_PASSWORD") { - const resetPasswordPath = new NormalisedURLPath(DEFAULT_RESET_PASSWORD_PATH); - return `${this.config.appInfo.websiteBasePath.appendPath(resetPasswordPath).getAsStringDangerous()}?rid=${ - this.config.recipeId - }`; + return getDefaultRedirectionURLForPath(this.config, DEFAULT_RESET_PASSWORD_PATH, context); } return this.getAuthRecipeDefaultRedirectionURL(context); diff --git a/lib/ts/recipe/emailverification/emailVerificationClaim.ts b/lib/ts/recipe/emailverification/emailVerificationClaim.ts index dd68daa42..550cf0dff 100644 --- a/lib/ts/recipe/emailverification/emailVerificationClaim.ts +++ b/lib/ts/recipe/emailverification/emailVerificationClaim.ts @@ -1,5 +1,7 @@ import { EmailVerificationClaimClass as EmailVerificationClaimClassWebJS } from "supertokens-web-js/recipe/emailverification"; +import { getTenantIdFromQueryParams } from "../../utils"; + import EmailVerification from "./recipe"; import type { UserContext, ValidationFailureCallback } from "../../types"; @@ -24,7 +26,10 @@ export class EmailVerificationClaimClass extends EmailVerificationClaimClassWebJ } const recipe = EmailVerification.getInstanceOrThrow(); if (recipe.config.mode === "REQUIRED") { - return recipe.getRedirectUrl({ action: "VERIFY_EMAIL" }, args.userContext); + return recipe.getRedirectUrl( + { action: "VERIFY_EMAIL", tenantIdFromQueryParams: getTenantIdFromQueryParams() }, + args.userContext + ); } return undefined; }, diff --git a/lib/ts/recipe/emailverification/recipe.tsx b/lib/ts/recipe/emailverification/recipe.tsx index bb2cbcb42..c4a7e0dfa 100644 --- a/lib/ts/recipe/emailverification/recipe.tsx +++ b/lib/ts/recipe/emailverification/recipe.tsx @@ -18,12 +18,11 @@ */ import EmailVerificationWebJS from "supertokens-web-js/recipe/emailverification"; -import NormalisedURLPath from "supertokens-web-js/utils/normalisedURLPath"; import { PostSuperTokensInitCallbacks } from "supertokens-web-js/utils/postSuperTokensInitCallbacks"; import { SessionClaimValidatorStore } from "supertokens-web-js/utils/sessionClaimValidatorStore"; import { SSR_ERROR } from "../../constants"; -import { isTest } from "../../utils"; +import { getDefaultRedirectionURLForPath, isTest } from "../../utils"; import RecipeModule from "../recipeModule"; import { DEFAULT_VERIFY_EMAIL_PATH } from "./constants"; @@ -40,6 +39,7 @@ import type { } from "./types"; import type { NormalisedConfigWithAppInfoAndRecipeID, + NormalisedGetRedirectionURLContext, RecipeInitResult, UserContext, WebJSRecipeInterface, @@ -133,12 +133,11 @@ export default class EmailVerification extends RecipeModule< }); } - getDefaultRedirectionURL = async (context: GetRedirectionURLContext): Promise => { + getDefaultRedirectionURL = async ( + context: NormalisedGetRedirectionURLContext + ): Promise => { if (context.action === "VERIFY_EMAIL") { - const verifyEmailPath = new NormalisedURLPath(DEFAULT_VERIFY_EMAIL_PATH); - return `${this.config.appInfo.websiteBasePath.appendPath(verifyEmailPath).getAsStringDangerous()}?rid=${ - this.config.recipeId - }`; + return getDefaultRedirectionURLForPath(this.config, DEFAULT_VERIFY_EMAIL_PATH, context); } else { return "/"; } diff --git a/lib/ts/recipe/multifactorauth/recipe.tsx b/lib/ts/recipe/multifactorauth/recipe.tsx index d05e7fa19..ff9f30f24 100644 --- a/lib/ts/recipe/multifactorauth/recipe.tsx +++ b/lib/ts/recipe/multifactorauth/recipe.tsx @@ -19,7 +19,6 @@ import MultiFactorAuthWebJS from "supertokens-web-js/recipe/multifactorauth"; import { getNormalisedUserContext } from "supertokens-web-js/utils"; -import NormalisedURLPath from "supertokens-web-js/utils/normalisedURLPath"; import { PostSuperTokensInitCallbacks } from "supertokens-web-js/utils/postSuperTokensInitCallbacks"; import { SessionClaimValidatorStore } from "supertokens-web-js/utils/sessionClaimValidatorStore"; import { WindowHandlerReference } from "supertokens-web-js/utils/windowHandler"; @@ -29,7 +28,9 @@ import SuperTokens from "../../superTokens"; import { appendQueryParamsToURL, getCurrentNormalisedUrlPathWithQueryParamsAndFragments, + getDefaultRedirectionURLForPath, getRedirectToPathFromURL, + getTenantIdFromQueryParams, isTest, } from "../../utils"; import RecipeModule from "../recipeModule"; @@ -51,6 +52,7 @@ import type { import type { Navigate, NormalisedConfigWithAppInfoAndRecipeID, + NormalisedGetRedirectionURLContext, RecipeInitResult, UserContext, WebJSRecipeInterface, @@ -69,7 +71,10 @@ export default class MultiFactorAuth extends RecipeModule< static MultiFactorAuthClaim = new MultiFactorAuthClaimClass( () => MultiFactorAuth.getInstanceOrThrow(), async (context, userContext) => - (await this.getInstanceOrThrow().getRedirectUrl(context, userContext)) || undefined + (await this.getInstanceOrThrow().getRedirectUrl( + { ...context, tenantIdFromQueryParams: getTenantIdFromQueryParams() }, + userContext + )) || undefined ); public recipeID = MultiFactorAuth.RECIPE_ID; @@ -147,24 +152,25 @@ export default class MultiFactorAuth extends RecipeModule< return MultiFactorAuth.instance; } - getDefaultRedirectionURL = async (context: GetRedirectionURLContext, userContext: UserContext): Promise => { + getDefaultRedirectionURL = async ( + context: NormalisedGetRedirectionURLContext, + userContext: UserContext + ): Promise => { if (context.action === "FACTOR_CHOOSER") { - const chooserPath = new NormalisedURLPath(DEFAULT_FACTOR_CHOOSER_PATH); - let url = this.config.appInfo.websiteBasePath.appendPath(chooserPath).getAsStringDangerous(); - if (context.nextFactorOptions && context.nextFactorOptions.length > 0) { - url += `?n=${context.nextFactorOptions.join(",")}`; - } - return url; + const nParam = + context.nextFactorOptions && context.nextFactorOptions.length > 0 + ? context.nextFactorOptions.join(",") + : undefined; + return getDefaultRedirectionURLForPath(this.config, DEFAULT_FACTOR_CHOOSER_PATH, context, { n: nParam }); } else if (context.action === "GO_TO_FACTOR") { const redirectInfo = this.getSecondaryFactors(userContext).find((f) => f.id === context.factorId); if (redirectInfo !== undefined) { - let url = this.config.appInfo.websiteBasePath - .appendPath(new NormalisedURLPath(redirectInfo.path)) - .getAsStringDangerous(); - if (context.forceSetup) { - url += "?setup=true"; - } - return url; + return getDefaultRedirectionURLForPath( + this.config, + redirectInfo.path, + context, + context.forceSetup ? { setup: "true" } : {} + ); } throw new Error("Requested redirect to unknown factor id: " + context.factorId); } else { @@ -197,7 +203,7 @@ export default class MultiFactorAuth extends RecipeModule< userContext?: UserContext ) { let url = await this.getRedirectUrl( - { action: "GO_TO_FACTOR", forceSetup, factorId }, + { action: "GO_TO_FACTOR", forceSetup, factorId, tenantIdFromQueryParams: getTenantIdFromQueryParams() }, getNormalisedUserContext(userContext) ); if (url === null) { @@ -233,7 +239,7 @@ export default class MultiFactorAuth extends RecipeModule< userContext?: UserContext ) { let url = await this.getRedirectUrl( - { action: "FACTOR_CHOOSER", nextFactorOptions }, + { action: "FACTOR_CHOOSER", nextFactorOptions, tenantIdFromQueryParams: getTenantIdFromQueryParams() }, getNormalisedUserContext(userContext) ); diff --git a/lib/ts/recipe/oauth2provider/components/features/oauth2LogoutScreen/index.tsx b/lib/ts/recipe/oauth2provider/components/features/oauth2LogoutScreen/index.tsx index 4a18245e2..d9dd8672a 100644 --- a/lib/ts/recipe/oauth2provider/components/features/oauth2LogoutScreen/index.tsx +++ b/lib/ts/recipe/oauth2provider/components/features/oauth2LogoutScreen/index.tsx @@ -24,7 +24,7 @@ import FeatureWrapper from "../../../../../components/featureWrapper"; import SuperTokens from "../../../../../superTokens"; import UI from "../../../../../ui"; import { useUserContext } from "../../../../../usercontext"; -import { getQueryParams, useRethrowInRender } from "../../../../../utils"; +import { getQueryParams, getTenantIdFromQueryParams, useRethrowInRender } from "../../../../../utils"; import { SessionContext } from "../../../../session"; import OAuth2Provider from "../../../recipe"; import { OAuth2LogoutScreenTheme } from "../../themes/oauth2LogoutScreen"; @@ -67,6 +67,7 @@ export const OAuth2LogoutScreen: React.FC = (props) => { { recipeId: "oauth2provider", action: "POST_OAUTH2_LOGOUT_REDIRECT", + tenantIdFromQueryParams: getTenantIdFromQueryParams(), frontendRedirectTo, }, navigate, diff --git a/lib/ts/recipe/oauth2provider/components/features/tryRefreshPage/index.tsx b/lib/ts/recipe/oauth2provider/components/features/tryRefreshPage/index.tsx index 9392157f1..3b2b446bb 100644 --- a/lib/ts/recipe/oauth2provider/components/features/tryRefreshPage/index.tsx +++ b/lib/ts/recipe/oauth2provider/components/features/tryRefreshPage/index.tsx @@ -22,7 +22,7 @@ import { useContext, Fragment } from "react"; import FeatureWrapper from "../../../../../components/featureWrapper"; import SuperTokens from "../../../../../superTokens"; import { useUserContext } from "../../../../../usercontext"; -import { getQueryParams, useRethrowInRender } from "../../../../../utils"; +import { getQueryParams, getTenantIdFromQueryParams, useRethrowInRender } from "../../../../../utils"; import DynamicLoginMethodsSpinner from "../../../../multitenancy/components/features/dynamicLoginMethodsSpinner"; import { SessionContext } from "../../../../session"; import { defaultTranslationsOAuth2Provider } from "../../themes/translations"; @@ -53,6 +53,7 @@ export const TryRefreshPage: React.FC = (props) => { { action: "CONTINUE_OAUTH2_AFTER_REFRESH", loginChallenge: loginChallenge ?? "", + tenantIdFromQueryParams: getTenantIdFromQueryParams(), recipeId: "oauth2provider", }, props.navigate, diff --git a/lib/ts/recipe/oauth2provider/recipe.ts b/lib/ts/recipe/oauth2provider/recipe.ts index b1831450c..dc2f7bb10 100644 --- a/lib/ts/recipe/oauth2provider/recipe.ts +++ b/lib/ts/recipe/oauth2provider/recipe.ts @@ -111,6 +111,7 @@ export default class OAuth2Provider extends RecipeModule< } async getDefaultRedirectionURL(ctx: GetRedirectionURLContext): Promise { + // We do not use the util here, because we are likely redirecting across domains here. if (ctx.action === "SUCCESS_OAUTH2" || ctx.action === "CONTINUE_OAUTH2_AFTER_REFRESH") { const domain = this.config.appInfo.apiDomain.getAsStringDangerous(); const basePath = this.config.appInfo.apiBasePath.getAsStringDangerous(); diff --git a/lib/ts/recipe/passwordless/components/features/linkClickedScreen/index.tsx b/lib/ts/recipe/passwordless/components/features/linkClickedScreen/index.tsx index 50ece20a0..89deed42d 100644 --- a/lib/ts/recipe/passwordless/components/features/linkClickedScreen/index.tsx +++ b/lib/ts/recipe/passwordless/components/features/linkClickedScreen/index.tsx @@ -23,7 +23,13 @@ import { ComponentOverrideContext } from "../../../../../components/componentOve import FeatureWrapper from "../../../../../components/featureWrapper"; import SuperTokens from "../../../../../superTokens"; import { useUserContext } from "../../../../../usercontext"; -import { getQueryParams, getURLHash, useOnMountAPICall, useRethrowInRender } from "../../../../../utils"; +import { + getQueryParams, + getTenantIdFromQueryParams, + getURLHash, + useOnMountAPICall, + useRethrowInRender, +} from "../../../../../utils"; import Session from "../../../../session/recipe"; import { LinkClickedScreen as LinkClickedScreenTheme } from "../../themes/linkClickedScreen"; import { defaultTranslationsPasswordless } from "../../themes/translations"; @@ -148,6 +154,7 @@ const LinkClickedScreen: React.FC = (props) => { (payloadBeforeCall === undefined || payloadBeforeCall.sessionHandle !== payloadAfterCall.sessionHandle), recipeId: props.recipe.recipeID, + tenantIdFromQueryParams: getTenantIdFromQueryParams(), }, props.recipe.recipeID, loginAttemptInfo?.redirectToPath, diff --git a/lib/ts/recipe/passwordless/components/features/linkSent/index.tsx b/lib/ts/recipe/passwordless/components/features/linkSent/index.tsx index d31beed4a..03a7b1ba0 100644 --- a/lib/ts/recipe/passwordless/components/features/linkSent/index.tsx +++ b/lib/ts/recipe/passwordless/components/features/linkSent/index.tsx @@ -20,7 +20,12 @@ import { Fragment } from "react"; import { useMemo } from "react"; import AuthComponentWrapper from "../../../../../components/authCompWrapper"; -import { clearErrorQueryParam, getRedirectToPathFromURL, useRethrowInRender } from "../../../../../utils"; +import { + clearErrorQueryParam, + getRedirectToPathFromURL, + getTenantIdFromQueryParams, + useRethrowInRender, +} from "../../../../../utils"; import { EmailVerificationClaim } from "../../../../emailverification"; import EmailVerification from "../../../../emailverification/recipe"; import { getInvalidClaimsFromResponse } from "../../../../session"; @@ -81,6 +86,7 @@ export function useChildProps( (payloadAfterCall !== undefined && session.accessTokenPayload.sessionHandle !== payloadAfterCall.sessionHandle), recipeId: recipe.recipeID, + tenantIdFromQueryParams: getTenantIdFromQueryParams(), }, recipe.recipeID, getRedirectToPathFromURL(), @@ -98,6 +104,7 @@ export function useChildProps( const evInstance = EmailVerification.getInstanceOrThrow(); await evInstance.redirect( { + tenantIdFromQueryParams: getTenantIdFromQueryParams(), action: "VERIFY_EMAIL", }, navigate, diff --git a/lib/ts/recipe/passwordless/components/features/mfa/index.tsx b/lib/ts/recipe/passwordless/components/features/mfa/index.tsx index c80e9d4c5..67069be26 100644 --- a/lib/ts/recipe/passwordless/components/features/mfa/index.tsx +++ b/lib/ts/recipe/passwordless/components/features/mfa/index.tsx @@ -29,6 +29,7 @@ import { clearErrorQueryParam, getQueryParams, getRedirectToPathFromURL, + getTenantIdFromQueryParams, useOnMountAPICall, useRethrowInRender, } from "../../../../../utils"; @@ -181,6 +182,7 @@ export function useChildProps( await evInstance.redirect( { action: "VERIFY_EMAIL", + tenantIdFromQueryParams: getTenantIdFromQueryParams(), }, navigate, undefined, @@ -372,6 +374,7 @@ function useOnLoad( const evInstance = EmailVerificationRecipe.getInstanceOrThrow(); await evInstance.redirect( { + tenantIdFromQueryParams: getTenantIdFromQueryParams(), action: "VERIFY_EMAIL", }, props.navigate, diff --git a/lib/ts/recipe/passwordless/components/features/signInAndUp/index.tsx b/lib/ts/recipe/passwordless/components/features/signInAndUp/index.tsx index 34c440ff6..e0003dd20 100644 --- a/lib/ts/recipe/passwordless/components/features/signInAndUp/index.tsx +++ b/lib/ts/recipe/passwordless/components/features/signInAndUp/index.tsx @@ -21,7 +21,7 @@ import { useMemo } from "react"; import AuthComponentWrapper from "../../../../../components/authCompWrapper"; import { useUserContext } from "../../../../../usercontext"; -import { getRedirectToPathFromURL, useRethrowInRender } from "../../../../../utils"; +import { getRedirectToPathFromURL, getTenantIdFromQueryParams, useRethrowInRender } from "../../../../../utils"; import { EmailVerificationClaim } from "../../../../emailverification"; import EmailVerification from "../../../../emailverification/recipe"; import { getInvalidClaimsFromResponse } from "../../../../session"; @@ -93,6 +93,7 @@ export function useChildProps( await evInstance.redirect( { action: "VERIFY_EMAIL", + tenantIdFromQueryParams: getTenantIdFromQueryParams(), }, navigate, undefined, diff --git a/lib/ts/recipe/passwordless/components/features/signInAndUpEPCombo/index.tsx b/lib/ts/recipe/passwordless/components/features/signInAndUpEPCombo/index.tsx index adc9e243c..2831f3c7f 100644 --- a/lib/ts/recipe/passwordless/components/features/signInAndUpEPCombo/index.tsx +++ b/lib/ts/recipe/passwordless/components/features/signInAndUpEPCombo/index.tsx @@ -22,7 +22,12 @@ import STGeneralError from "supertokens-web-js/lib/build/error"; import AuthComponentWrapper from "../../../../../components/authCompWrapper"; import { useUserContext } from "../../../../../usercontext"; -import { getRedirectToPathFromURL, useRethrowInRender, validateForm } from "../../../../../utils"; +import { + getRedirectToPathFromURL, + getTenantIdFromQueryParams, + useRethrowInRender, + validateForm, +} from "../../../../../utils"; import EmailPassword from "../../../../emailpassword/recipe"; import { EmailVerificationClaim } from "../../../../emailverification"; import EmailVerification from "../../../../emailverification/recipe"; @@ -203,6 +208,7 @@ export function useChildProps( await evInstance.redirect( { action: "VERIFY_EMAIL", + tenantIdFromQueryParams: getTenantIdFromQueryParams(), }, navigate, undefined, diff --git a/lib/ts/recipe/passwordless/components/features/userInputCode/index.tsx b/lib/ts/recipe/passwordless/components/features/userInputCode/index.tsx index bcdeff3b2..8ef227c8b 100644 --- a/lib/ts/recipe/passwordless/components/features/userInputCode/index.tsx +++ b/lib/ts/recipe/passwordless/components/features/userInputCode/index.tsx @@ -20,7 +20,7 @@ import { Fragment } from "react"; import { useMemo } from "react"; import AuthComponentWrapper from "../../../../../components/authCompWrapper"; -import { clearErrorQueryParam, useRethrowInRender } from "../../../../../utils"; +import { clearErrorQueryParam, getTenantIdFromQueryParams, useRethrowInRender } from "../../../../../utils"; import { EmailVerificationClaim } from "../../../../emailverification"; import EmailVerification from "../../../../emailverification/recipe"; import { getInvalidClaimsFromResponse } from "../../../../session"; @@ -91,6 +91,7 @@ export function useChildProps( await evInstance.redirect( { action: "VERIFY_EMAIL", + tenantIdFromQueryParams: getTenantIdFromQueryParams(), }, navigate, undefined, diff --git a/lib/ts/recipe/passwordless/components/themes/signInUpEPCombo/emailForm.tsx b/lib/ts/recipe/passwordless/components/themes/signInUpEPCombo/emailForm.tsx index 0fa0c7dc4..06560aa56 100644 --- a/lib/ts/recipe/passwordless/components/themes/signInUpEPCombo/emailForm.tsx +++ b/lib/ts/recipe/passwordless/components/themes/signInUpEPCombo/emailForm.tsx @@ -17,6 +17,7 @@ import STGeneralError from "supertokens-web-js/utils/error"; import { withOverride } from "../../../../../components/componentOverride/withOverride"; import { useTranslation } from "../../../../../translation/translationContext"; +import { getTenantIdFromQueryParams } from "../../../../../utils"; import { Label } from "../../../../emailpassword/components/library"; import FormBase from "../../../../emailpassword/components/library/formBase"; import EmailPassword from "../../../../emailpassword/recipe"; @@ -57,7 +58,12 @@ export const EPComboEmailForm = withOverride(

        EmailPassword.getInstanceOrThrow().redirect({ action: "RESET_PASSWORD" })} + onClick={() => + EmailPassword.getInstanceOrThrow().redirect({ + action: "RESET_PASSWORD", + tenantIdFromQueryParams: getTenantIdFromQueryParams(), + }) + } data-supertokens="link linkButton formLabelLinkBtn forgotPasswordLink"> {t("PWLESS_COMBO_FORGOT_PW_LINK")} diff --git a/lib/ts/recipe/passwordless/components/themes/signInUpEPCombo/emailOrPhoneForm.tsx b/lib/ts/recipe/passwordless/components/themes/signInUpEPCombo/emailOrPhoneForm.tsx index 1dfe55059..30d5b9e85 100644 --- a/lib/ts/recipe/passwordless/components/themes/signInUpEPCombo/emailOrPhoneForm.tsx +++ b/lib/ts/recipe/passwordless/components/themes/signInUpEPCombo/emailOrPhoneForm.tsx @@ -19,6 +19,7 @@ import STGeneralError from "supertokens-web-js/utils/error"; import { withOverride } from "../../../../../components/componentOverride/withOverride"; import { useTranslation } from "../../../../../translation/translationContext"; +import { getTenantIdFromQueryParams } from "../../../../../utils"; import { Label } from "../../../../emailpassword/components/library"; import FormBase from "../../../../emailpassword/components/library/formBase"; import EmailPassword from "../../../../emailpassword/recipe"; @@ -107,7 +108,12 @@ export const EPComboEmailOrPhoneForm = withOverride(
        - {oauth2ClientInfo && ( -
        - {t("AUTH_PAGE_HEADER_TITLE_SIGN_IN_UP_TO_APP")} - {oauth2ClientInfo.clientUri !== undefined ? ( - - {oauth2ClientInfo.clientName} - - ) : ( - {oauth2ClientInfo.clientName} - )} -
        - )} + {oauth2ClientInfo && + oauth2ClientInfo.clientName !== undefined && + oauth2ClientInfo.clientName.length > 0 && ( +
        + {t("AUTH_PAGE_HEADER_TITLE_SIGN_IN_UP_TO_APP")} + {oauth2ClientInfo.clientUri !== undefined ? ( + + {oauth2ClientInfo.clientName} + + ) : ( + + {oauth2ClientInfo.clientName} + + )} +
        + )} {hasSeparateSignUpView && (!isSignUp ? (
        From fb841f17605bff476482e74ac8f117175bdcd886 Mon Sep 17 00:00:00 2001 From: Mihaly Lengyel Date: Fri, 27 Sep 2024 22:56:57 +0200 Subject: [PATCH 09/20] fix: fix typo --- lib/build/index2.js | 4 ++-- .../components/theme/authPage/authPageHeader.d.ts | 2 +- .../authRecipe/components/theme/authPage/authPageHeader.tsx | 6 +++--- stories/allrecipes.stories.tsx | 2 +- stories/authPage.stories.tsx | 6 +++--- stories/utils.ts | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/build/index2.js b/lib/build/index2.js index c8c9840f7..8bb9327cb 100644 --- a/lib/build/index2.js +++ b/lib/build/index2.js @@ -677,9 +677,9 @@ var AuthPageHeader = withOverride("AuthPageHeader", function AuthPageHeader(_a) var t = translationContext.useTranslation(); return jsxRuntime.jsxs(React.Fragment, { children: [ - (oauth2ClientInfo === null || oauth2ClientInfo === void 0 ? void 0 : oauth2ClientInfo.clientLogoUri) && + (oauth2ClientInfo === null || oauth2ClientInfo === void 0 ? void 0 : oauth2ClientInfo.logoUri) && jsxRuntime.jsx("img", { - src: oauth2ClientInfo.clientLogoUri, + src: oauth2ClientInfo.logoUri, alt: oauth2ClientInfo.clientName, "data-supertokens": "authPageTitleOAuthClientLogo", }), diff --git a/lib/build/recipe/authRecipe/components/theme/authPage/authPageHeader.d.ts b/lib/build/recipe/authRecipe/components/theme/authPage/authPageHeader.d.ts index bd8b9fd2a..127a6536f 100644 --- a/lib/build/recipe/authRecipe/components/theme/authPage/authPageHeader.d.ts +++ b/lib/build/recipe/authRecipe/components/theme/authPage/authPageHeader.d.ts @@ -8,7 +8,7 @@ export declare const AuthPageHeader: import("react").ComponentType<{ showBackButton: boolean; oauth2ClientInfo?: | { - clientLogoUri?: string | undefined; + logoUri?: string | undefined; clientUri?: string | undefined; clientName: string; } diff --git a/lib/ts/recipe/authRecipe/components/theme/authPage/authPageHeader.tsx b/lib/ts/recipe/authRecipe/components/theme/authPage/authPageHeader.tsx index ef4235633..29a681466 100644 --- a/lib/ts/recipe/authRecipe/components/theme/authPage/authPageHeader.tsx +++ b/lib/ts/recipe/authRecipe/components/theme/authPage/authPageHeader.tsx @@ -35,7 +35,7 @@ export const AuthPageHeader = withOverride( resetFactorList: () => void; showBackButton: boolean; oauth2ClientInfo?: { - clientLogoUri?: string; + logoUri?: string; clientUri?: string; clientName: string; }; @@ -44,9 +44,9 @@ export const AuthPageHeader = withOverride( return ( - {oauth2ClientInfo?.clientLogoUri && ( + {oauth2ClientInfo?.logoUri && ( {oauth2ClientInfo.clientName} diff --git a/stories/allrecipes.stories.tsx b/stories/allrecipes.stories.tsx index 6322a8f5f..d096ab495 100644 --- a/stories/allrecipes.stories.tsx +++ b/stories/allrecipes.stories.tsx @@ -147,7 +147,7 @@ export const OAuth2Login: Story = { query: "loginChallenge=asdf", "oauth2.initialized": true, "oauth2.clientName": "Google", - "oauth2.clientLogoUri": "https://upload.wikimedia.org/wikipedia/commons/c/c1/Google_%22G%22_logo.svg", + "oauth2.logoUri": "https://upload.wikimedia.org/wikipedia/commons/c/c1/Google_%22G%22_logo.svg", "oauth2.clientUri": "https://google.com", }, }; diff --git a/stories/authPage.stories.tsx b/stories/authPage.stories.tsx index 8d04122e9..0cbb59f7b 100644 --- a/stories/authPage.stories.tsx +++ b/stories/authPage.stories.tsx @@ -22,7 +22,7 @@ export type Args = { "passwordless.defaultToEmail": boolean; "oauth2.initialized": boolean; "oauth2.clientName": string; - "oauth2.clientLogoUri": string; + "oauth2.logoUri": string; "oauth2.clientUri": string; path?: string; query?: string; @@ -110,7 +110,7 @@ const meta: Meta = { rootStyle: "", "oauth2.initialized": true, "oauth2.clientName": "My App", - "oauth2.clientLogoUri": "https://example.com/logo.png", + "oauth2.logoUri": "https://example.com/logo.png", "oauth2.clientUri": "https://example.com", }, argTypes: { @@ -233,7 +233,7 @@ const meta: Meta = { truthy: true, }, }, - "oauth2.clientLogoUri": { + "oauth2.logoUri": { table: { category: "oauth2", }, diff --git a/stories/utils.ts b/stories/utils.ts index 06183a5ac..a1ebed743 100644 --- a/stories/utils.ts +++ b/stories/utils.ts @@ -129,7 +129,7 @@ export type AuthPageConf = { oauth2: { initialized: boolean; clientName: string; - clientLogoUri: string; + logoUri: string; clientUri: string; }; }; @@ -231,7 +231,7 @@ export function buildInit(args: AuthPageConf, funcOverrides: any) { status: "OK", info: { clientName: args.oauth2.clientName, - clientLogoUri: args.oauth2.clientLogoUri || undefined, + logoUri: args.oauth2.logoUri || undefined, clientUri: args.oauth2.clientUri || undefined, }, fetchResponse: undefined as any, From 6c7ff10dd3dc953a5209a0fd9379ad40c757be8a Mon Sep 17 00:00:00 2001 From: Mihaly Lengyel Date: Sat, 28 Sep 2024 03:23:35 +0200 Subject: [PATCH 10/20] feat: handle not initialized OAuth2Provider recipe more gracefully --- lib/build/index2.js | 79 ++++++++++++------- lib/build/thirdpartyprebuiltui.js | 21 +++-- .../components/feature/authPage/authPage.tsx | 59 ++++++++------ .../features/signInAndUpCallback/index.tsx | 10 ++- 4 files changed, 105 insertions(+), 64 deletions(-) diff --git a/lib/build/index2.js b/lib/build/index2.js index 8bb9327cb..b93bb4190 100644 --- a/lib/build/index2.js +++ b/lib/build/index2.js @@ -1008,22 +1008,45 @@ var AuthPageInner = function (props) { }, [loadedDynamicLoginMethods, setLoadedDynamicLoginMethods] ); - React.useEffect( + genericComponentOverrideContext.useOnMountAPICall( function () { - if (oauth2ClientInfo) { - return; - } - var oauth2Recipe = recipe.OAuth2Provider.getInstance(); - if (oauth2Recipe !== undefined && loginChallenge !== null) { - void recipe.OAuth2Provider.getInstanceOrThrow() - .webJSRecipe.getLoginChallengeInfo({ loginChallenge: loginChallenge, userContext: userContext }) - .then(function (_a) { - var info = _a.info; - return setOAuth2ClientInfo(info); - }); - } + return genericComponentOverrideContext.__awaiter(void 0, void 0, void 0, function () { + var oauth2Recipe; + return genericComponentOverrideContext.__generator(this, function (_a) { + if (oauth2ClientInfo) { + return [2 /*return*/]; + } + oauth2Recipe = recipe.OAuth2Provider.getInstance(); + if (oauth2Recipe !== undefined && loginChallenge !== null) { + return [ + 2 /*return*/, + oauth2Recipe.webJSRecipe.getLoginChallengeInfo({ + loginChallenge: loginChallenge, + userContext: userContext, + }), + ]; + } + return [2 /*return*/, undefined]; + }); + }); }, - [setOAuth2ClientInfo, loginChallenge, oauth2ClientInfo] + function (info) { + return genericComponentOverrideContext.__awaiter(void 0, void 0, void 0, function () { + return genericComponentOverrideContext.__generator(this, function (_a) { + if (info !== undefined) { + setOAuth2ClientInfo(info.info); + } + return [2 /*return*/]; + }); + }); + }, + function () { + return genericComponentOverrideContext.SuperTokens.getInstanceOrThrow().redirectToAuth({ + navigate: props.navigate, + redirectBack: false, + userContext: userContext, + }); + } ); React.useEffect( function () { @@ -1041,7 +1064,8 @@ var AuthPageInner = function (props) { types.Session.getInstanceOrThrow().config.onHandleEvent({ action: "SESSION_ALREADY_EXISTS", }); - if (loginChallenge !== null) { + var oauth2Recipe_1 = recipe.OAuth2Provider.getInstance(); + if (loginChallenge !== null && oauth2Recipe_1 !== undefined) { (function () { return genericComponentOverrideContext.__awaiter(this, void 0, void 0, function () { var frontendRedirectTo; @@ -1050,12 +1074,10 @@ var AuthPageInner = function (props) { case 0: return [ 4 /*yield*/, - recipe.OAuth2Provider.getInstanceOrThrow().webJSRecipe.getRedirectURLToContinueOAuthFlow( - { - loginChallenge: loginChallenge, - userContext: userContext, - } - ), + oauth2Recipe_1.webJSRecipe.getRedirectURLToContinueOAuthFlow({ + loginChallenge: loginChallenge, + userContext: userContext, + }), ]; case 1: frontendRedirectTo = _a.sent().frontendRedirectTo; @@ -1158,11 +1180,12 @@ var AuthPageInner = function (props) { var onAuthSuccess = React.useCallback( function (ctx) { return genericComponentOverrideContext.__awaiter(void 0, void 0, void 0, function () { - var frontendRedirectTo; + var oauth2Recipe, frontendRedirectTo; return genericComponentOverrideContext.__generator(this, function (_a) { switch (_a.label) { case 0: - if (loginChallenge === null) { + oauth2Recipe = recipe.OAuth2Provider.getInstance(); + if (loginChallenge === null || oauth2Recipe === undefined) { return [ 2 /*return*/, types.Session.getInstanceOrThrow().validateGlobalClaimsAndHandleSuccessRedirection( @@ -1185,12 +1208,10 @@ var AuthPageInner = function (props) { } return [ 4 /*yield*/, - recipe.OAuth2Provider.getInstanceOrThrow().webJSRecipe.getRedirectURLToContinueOAuthFlow( - { - loginChallenge: loginChallenge, - userContext: userContext, - } - ), + oauth2Recipe.webJSRecipe.getRedirectURLToContinueOAuthFlow({ + loginChallenge: loginChallenge, + userContext: userContext, + }), ]; case 1: frontendRedirectTo = _a.sent().frontendRedirectTo; diff --git a/lib/build/thirdpartyprebuiltui.js b/lib/build/thirdpartyprebuiltui.js index 3bac81205..bdfe1d6ae 100644 --- a/lib/build/thirdpartyprebuiltui.js +++ b/lib/build/thirdpartyprebuiltui.js @@ -437,7 +437,13 @@ var SignInAndUpCallback$1 = function (props) { var response = _a.response, payloadBeforeCall = _a.payloadBeforeCall; return genericComponentOverrideContext.__awaiter(void 0, void 0, void 0, function () { - var payloadAfterCall, stateResponse, redirectToPath, loginChallenge, frontendRedirectTo, e_1; + var payloadAfterCall, + stateResponse, + redirectToPath, + loginChallenge, + oauth2Recipe, + frontendRedirectTo, + e_1; return genericComponentOverrideContext.__generator(this, function (_c) { switch (_c.label) { case 0: @@ -495,18 +501,17 @@ var SignInAndUpCallback$1 = function (props) { stateResponse === null || stateResponse === void 0 ? void 0 : stateResponse.oauth2LoginChallenge; - if (!(loginChallenge !== undefined)) return [3 /*break*/, 9]; + oauth2Recipe = recipe$1.OAuth2Provider.getInstance(); + if (!(loginChallenge !== undefined && oauth2Recipe !== undefined)) return [3 /*break*/, 9]; _c.label = 5; case 5: _c.trys.push([5, 7, , 8]); return [ 4 /*yield*/, - recipe$1.OAuth2Provider.getInstanceOrThrow().webJSRecipe.getRedirectURLToContinueOAuthFlow( - { - loginChallenge: loginChallenge, - userContext: userContext, - } - ), + oauth2Recipe.webJSRecipe.getRedirectURLToContinueOAuthFlow({ + loginChallenge: loginChallenge, + userContext: userContext, + }), ]; case 6: frontendRedirectTo = _c.sent().frontendRedirectTo; diff --git a/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx b/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx index db7927cfa..e5aabf21d 100644 --- a/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx +++ b/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx @@ -30,6 +30,7 @@ import { getTenantIdFromQueryParams, mergeObjects, updateQueryParam, + useOnMountAPICall, useRethrowInRender, } from "../../../../../utils"; import MultiFactorAuth from "../../../../multifactorauth/recipe"; @@ -174,17 +175,30 @@ const AuthPageInner: React.FC = (props) => { ); }, [loadedDynamicLoginMethods, setLoadedDynamicLoginMethods]); - useEffect(() => { - if (oauth2ClientInfo) { - return; - } - const oauth2Recipe = OAuth2Provider.getInstance(); - if (oauth2Recipe !== undefined && loginChallenge !== null) { - void OAuth2Provider.getInstanceOrThrow() - .webJSRecipe.getLoginChallengeInfo({ loginChallenge, userContext }) - .then(({ info }) => setOAuth2ClientInfo(info)); + useOnMountAPICall( + async () => { + if (oauth2ClientInfo) { + return; + } + const oauth2Recipe = OAuth2Provider.getInstance(); + if (oauth2Recipe !== undefined && loginChallenge !== null) { + return oauth2Recipe.webJSRecipe.getLoginChallengeInfo({ loginChallenge, userContext }); + } + return undefined; + }, + async (info) => { + if (info !== undefined) { + setOAuth2ClientInfo(info.info); + } + }, + () => { + return SuperTokens.getInstanceOrThrow().redirectToAuth({ + navigate: props.navigate, + redirectBack: false, + userContext, + }); } - }, [setOAuth2ClientInfo, loginChallenge, oauth2ClientInfo]); + ); useEffect(() => { if (sessionLoadedAndNotRedirecting) { @@ -202,15 +216,14 @@ const AuthPageInner: React.FC = (props) => { Session.getInstanceOrThrow().config.onHandleEvent({ action: "SESSION_ALREADY_EXISTS", }); - if (loginChallenge !== null) { + const oauth2Recipe = OAuth2Provider.getInstance(); + if (loginChallenge !== null && oauth2Recipe !== undefined) { (async function () { const { frontendRedirectTo } = - await OAuth2Provider.getInstanceOrThrow().webJSRecipe.getRedirectURLToContinueOAuthFlow( - { - loginChallenge, - userContext, - } - ); + await oauth2Recipe.webJSRecipe.getRedirectURLToContinueOAuthFlow({ + loginChallenge, + userContext, + }); return Session.getInstanceOrThrow().validateGlobalClaimsAndHandleSuccessRedirection( { action: "SUCCESS_OAUTH2", @@ -299,7 +312,8 @@ const AuthPageInner: React.FC = (props) => { const onAuthSuccess = useCallback( async (ctx: AuthSuccessContext) => { - if (loginChallenge === null) { + const oauth2Recipe = OAuth2Provider.getInstance(); + if (loginChallenge === null || oauth2Recipe === undefined) { return Session.getInstanceOrThrow().validateGlobalClaimsAndHandleSuccessRedirection( { ...ctx, @@ -313,11 +327,10 @@ const AuthPageInner: React.FC = (props) => { props.navigate ); } - const { frontendRedirectTo } = - await OAuth2Provider.getInstanceOrThrow().webJSRecipe.getRedirectURLToContinueOAuthFlow({ - loginChallenge, - userContext, - }); + const { frontendRedirectTo } = await oauth2Recipe.webJSRecipe.getRedirectURLToContinueOAuthFlow({ + loginChallenge, + userContext, + }); return Session.getInstanceOrThrow().validateGlobalClaimsAndHandleSuccessRedirection( { ...ctx, diff --git a/lib/ts/recipe/thirdparty/components/features/signInAndUpCallback/index.tsx b/lib/ts/recipe/thirdparty/components/features/signInAndUpCallback/index.tsx index 9a5d19d05..e2be0f280 100644 --- a/lib/ts/recipe/thirdparty/components/features/signInAndUpCallback/index.tsx +++ b/lib/ts/recipe/thirdparty/components/features/signInAndUpCallback/index.tsx @@ -107,13 +107,15 @@ const SignInAndUpCallback: React.FC = (props) => { const redirectToPath = stateResponse === undefined ? undefined : stateResponse.redirectToPath; const loginChallenge = stateResponse?.oauth2LoginChallenge; - if (loginChallenge !== undefined) { + const oauth2Recipe = OAuth2Provider.getInstance(); + if (loginChallenge !== undefined && oauth2Recipe !== undefined) { try { - const { frontendRedirectTo } = - await OAuth2Provider.getInstanceOrThrow().webJSRecipe.getRedirectURLToContinueOAuthFlow({ + const { frontendRedirectTo } = await oauth2Recipe.webJSRecipe.getRedirectURLToContinueOAuthFlow( + { loginChallenge, userContext, - }); + } + ); return Session.getInstanceOrThrow().validateGlobalClaimsAndHandleSuccessRedirection( { action: "SUCCESS_OAUTH2", From a88473fab270382ca5f69343d5947305df14ea60 Mon Sep 17 00:00:00 2001 From: Mihaly Lengyel Date: Sat, 28 Sep 2024 03:47:08 +0200 Subject: [PATCH 11/20] feat: ignore loginChallenge queryparam on auth page if we couldn't load it --- lib/build/index2.js | 9 +++------ .../components/feature/authPage/authPage.tsx | 10 ++++------ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/lib/build/index2.js b/lib/build/index2.js index b93bb4190..a9b666af9 100644 --- a/lib/build/index2.js +++ b/lib/build/index2.js @@ -1041,11 +1041,7 @@ var AuthPageInner = function (props) { }); }, function () { - return genericComponentOverrideContext.SuperTokens.getInstanceOrThrow().redirectToAuth({ - navigate: props.navigate, - redirectBack: false, - userContext: userContext, - }); + return genericComponentOverrideContext.clearQueryParams(["loginChallenge"]); } ); React.useEffect( @@ -1240,7 +1236,8 @@ var AuthPageInner = function (props) { [loginChallenge] ); var childProps = - authComponentListInfo !== undefined && (loginChallenge === null || oauth2ClientInfo !== undefined) + authComponentListInfo !== undefined && + (loginChallenge === null || oauth2ClientInfo !== undefined || recipe.OAuth2Provider.getInstance() === undefined) ? genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, authComponentListInfo), { diff --git a/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx b/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx index e5aabf21d..e88326c8a 100644 --- a/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx +++ b/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx @@ -26,6 +26,7 @@ import { TranslationContextProvider } from "../../../../../translation/translati import { defaultTranslationsCommon } from "../../../../../translation/translations"; import { UserContextProvider, useUserContext } from "../../../../../usercontext"; import { + clearQueryParams, getRedirectToPathFromURL, getTenantIdFromQueryParams, mergeObjects, @@ -192,11 +193,7 @@ const AuthPageInner: React.FC = (props) => { } }, () => { - return SuperTokens.getInstanceOrThrow().redirectToAuth({ - navigate: props.navigate, - redirectBack: false, - userContext, - }); + return clearQueryParams(["loginChallenge"]); } ); @@ -348,7 +345,8 @@ const AuthPageInner: React.FC = (props) => { ); const childProps: AuthPageThemeProps | undefined = - authComponentListInfo !== undefined && (loginChallenge === null || oauth2ClientInfo !== undefined) + authComponentListInfo !== undefined && + (loginChallenge === null || oauth2ClientInfo !== undefined || OAuth2Provider.getInstance() === undefined) ? { ...authComponentListInfo, oauth2ClientInfo, From bc9982fe022c9620738bf2d2af8c3b42c57c4493 Mon Sep 17 00:00:00 2001 From: Mihaly Lengyel Date: Sat, 28 Sep 2024 04:08:29 +0200 Subject: [PATCH 12/20] feat: show an error if the getLoginChallengeInfo errors out --- lib/build/index2.js | 6 +++++- .../authRecipe/components/feature/authPage/authPage.tsx | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/build/index2.js b/lib/build/index2.js index a9b666af9..64bb8d9df 100644 --- a/lib/build/index2.js +++ b/lib/build/index2.js @@ -1034,7 +1034,11 @@ var AuthPageInner = function (props) { return genericComponentOverrideContext.__awaiter(void 0, void 0, void 0, function () { return genericComponentOverrideContext.__generator(this, function (_a) { if (info !== undefined) { - setOAuth2ClientInfo(info.info); + if (info.status === "OK") { + setOAuth2ClientInfo(info.info); + } else { + setError("SOMETHING_WENT_WRONG_ERROR"); + } } return [2 /*return*/]; }); diff --git a/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx b/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx index e88326c8a..adc967efc 100644 --- a/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx +++ b/lib/ts/recipe/authRecipe/components/feature/authPage/authPage.tsx @@ -189,7 +189,11 @@ const AuthPageInner: React.FC = (props) => { }, async (info) => { if (info !== undefined) { - setOAuth2ClientInfo(info.info); + if (info.status === "OK") { + setOAuth2ClientInfo(info.info); + } else { + setError("SOMETHING_WENT_WRONG_ERROR"); + } } }, () => { From 8998af27f93a7f15172b0127f62c6f3fbf64c1ec Mon Sep 17 00:00:00 2001 From: Mihaly Lengyel Date: Mon, 30 Sep 2024 00:04:59 +0200 Subject: [PATCH 13/20] feat: update prebuiltui types and add test into with-typescript --- lib/build/oauth2providerprebuiltui.js | 1 + lib/build/ui/types.d.ts | 2 ++ .../features/tryRefreshPage/index.tsx | 3 +- lib/ts/ui/types.ts | 2 ++ test/with-typescript/src/App.tsx | 28 ++++++++++++++++++- 5 files changed, 34 insertions(+), 2 deletions(-) diff --git a/lib/build/oauth2providerprebuiltui.js b/lib/build/oauth2providerprebuiltui.js index 79b7c6ec7..d0c5207ec 100644 --- a/lib/build/oauth2providerprebuiltui.js +++ b/lib/build/oauth2providerprebuiltui.js @@ -337,6 +337,7 @@ var TryRefreshPage$1 = function (props) { if (props.userContext !== undefined) { userContext = props.userContext; } + session.default.attemptRefreshingSession; React__namespace.useEffect( function () { if (sessionContext.loading === false) { diff --git a/lib/build/ui/types.d.ts b/lib/build/ui/types.d.ts index 40a2b32c7..3ac887e16 100644 --- a/lib/build/ui/types.d.ts +++ b/lib/build/ui/types.d.ts @@ -1,6 +1,7 @@ import type { EmailPasswordPreBuiltUI } from "../recipe/emailpassword/prebuiltui"; import type { EmailVerificationPreBuiltUI } from "../recipe/emailverification/prebuiltui"; import type { MultiFactorAuthPreBuiltUI } from "../recipe/multifactorauth/prebuiltui"; +import type { OAuth2ProviderPreBuiltUI } from "../recipe/oauth2provider/prebuiltui"; import type { PasswordlessPreBuiltUI } from "../recipe/passwordless/prebuiltui"; import type { ThirdPartyPreBuiltUI } from "../recipe/thirdparty/prebuiltui"; import type { TOTPPreBuiltUI } from "../recipe/totp/prebuiltui"; @@ -18,4 +19,5 @@ export declare type PreBuiltRecipes = ( | typeof EmailVerificationPreBuiltUI | typeof MultiFactorAuthPreBuiltUI | typeof TOTPPreBuiltUI + | typeof OAuth2ProviderPreBuiltUI )[]; diff --git a/lib/ts/recipe/oauth2provider/components/features/tryRefreshPage/index.tsx b/lib/ts/recipe/oauth2provider/components/features/tryRefreshPage/index.tsx index a0459cdff..63eb811db 100644 --- a/lib/ts/recipe/oauth2provider/components/features/tryRefreshPage/index.tsx +++ b/lib/ts/recipe/oauth2provider/components/features/tryRefreshPage/index.tsx @@ -24,7 +24,7 @@ import SuperTokens from "../../../../../superTokens"; import { useUserContext } from "../../../../../usercontext"; import { getQueryParams, getTenantIdFromQueryParams, useRethrowInRender } from "../../../../../utils"; import DynamicLoginMethodsSpinner from "../../../../multitenancy/components/features/dynamicLoginMethodsSpinner"; -import { SessionContext } from "../../../../session"; +import SessionAPIWrapper, { SessionContext } from "../../../../session"; import { defaultTranslationsOAuth2Provider } from "../../themes/translations"; import type { FeatureBaseProps, UserContext } from "../../../../../types"; @@ -46,6 +46,7 @@ export const TryRefreshPage: React.FC = (props) => { userContext = props.userContext; } + SessionAPIWrapper.attemptRefreshingSession; React.useEffect(() => { if (sessionContext.loading === false) { if (loginChallenge) { diff --git a/lib/ts/ui/types.ts b/lib/ts/ui/types.ts index fb1e0e2ad..e488e2026 100644 --- a/lib/ts/ui/types.ts +++ b/lib/ts/ui/types.ts @@ -1,6 +1,7 @@ import type { EmailPasswordPreBuiltUI } from "../recipe/emailpassword/prebuiltui"; import type { EmailVerificationPreBuiltUI } from "../recipe/emailverification/prebuiltui"; import type { MultiFactorAuthPreBuiltUI } from "../recipe/multifactorauth/prebuiltui"; +import type { OAuth2ProviderPreBuiltUI } from "../recipe/oauth2provider/prebuiltui"; import type { PasswordlessPreBuiltUI } from "../recipe/passwordless/prebuiltui"; import type { ThirdPartyPreBuiltUI } from "../recipe/thirdparty/prebuiltui"; import type { TOTPPreBuiltUI } from "../recipe/totp/prebuiltui"; @@ -18,4 +19,5 @@ export type PreBuiltRecipes = ( | typeof EmailVerificationPreBuiltUI | typeof MultiFactorAuthPreBuiltUI | typeof TOTPPreBuiltUI + | typeof OAuth2ProviderPreBuiltUI )[]; diff --git a/test/with-typescript/src/App.tsx b/test/with-typescript/src/App.tsx index 6cfc6b85d..e66c3ad76 100644 --- a/test/with-typescript/src/App.tsx +++ b/test/with-typescript/src/App.tsx @@ -37,6 +37,8 @@ import { AccessDeniedScreen } from "../../../recipe/session/prebuiltui"; import { LinkClicked as PasswordlessLinkClicked } from "../../../recipe/passwordless/prebuiltui"; import EmailVerification from "../../../recipe/emailverification"; import MultiFactorAuth from "../../../recipe/multifactorauth"; +import OAuth2Provider from "../../../recipe/oauth2provider"; +import { OAuth2ProviderPreBuiltUI } from "../../../recipe/oauth2provider/prebuiltui"; import { DateProviderReference } from "../../../utils/dateProvider"; import { DateProviderInput, DateProviderInterface } from "../../../utils/dateProvider/types"; @@ -1108,8 +1110,32 @@ function testAuthPagePropTypes() { // @ts-expect-error This has to be a valid first factor , , ]; } + +SuperTokens.init({ + appInfo: {} as any, + recipeList: [ + OAuth2Provider.init({ + oauth2LogoutScreen: { + style: "", + }, + style: "", + getRedirectionURL: async (context, userContext) => { + if (context.action === "SUCCESS_OAUTH2") { + return undefined; + } + if (context.action === "CONTINUE_OAUTH2_AFTER_REFRESH") { + return undefined; + } + if (context.action === "POST_OAUTH2_LOGOUT_REDIRECT") { + return undefined; + } + return undefined; + }, + }), + ], +}); From f06f68126e6310d19331b22264182a3c28aa6ce6 Mon Sep 17 00:00:00 2001 From: Mihaly Lengyel Date: Mon, 30 Sep 2024 15:13:25 +0200 Subject: [PATCH 14/20] test: add more debugging options for ci --- examples/for-tests/src/App.js | 1 + test/end-to-end/accountlinking.test.js | 6 +- test/end-to-end/emailverification.test.js | 31 ++----- test/end-to-end/embed.test.js | 12 +-- test/end-to-end/generalerror.test.js | 16 +--- test/end-to-end/getRedirectionURL.test.js | 46 +++------- test/end-to-end/mfa.chooserscreen.test.js | 6 +- test/end-to-end/mfa.default_reqs.test.js | 6 +- test/end-to-end/mfa.factorscreen.otp.test.js | 6 +- test/end-to-end/mfa.factorscreen.totp.test.js | 6 +- test/end-to-end/mfa.firstFactors.test.js | 6 +- .../mfa.requirement_handling.test.js | 6 +- test/end-to-end/mfa.signin.test.js | 6 +- ...multitenancy.dynamic_login_methods.test.js | 6 +- test/end-to-end/multitenancy.mock.test.js | 6 +- .../multitenancy.tenant_interactions.test.js | 6 +- test/end-to-end/oauth2provider.test.js | 6 +- test/end-to-end/passwordless.test_gen.js | 6 +- test/end-to-end/refresherrors.test.js | 12 +-- .../resetpasswordusingtoken.test.js | 6 +- test/end-to-end/routing.test.js | 6 +- test/end-to-end/signin-rrdv5.test.js | 11 +-- test/end-to-end/signin-rrdv6.test.js | 11 +-- test/end-to-end/signin.test.js | 11 +-- test/end-to-end/signup.test.js | 11 +-- test/end-to-end/thirdparty.test.js | 6 +- .../thirdpartyemailpassword.test.js | 6 +- .../end-to-end/thirdpartypasswordless.test.js | 6 +- test/end-to-end/userContext.test.js | 6 +- test/end-to-end/userroles.test.js | 6 +- test/helpers.js | 84 +++++++++++++++++++ 31 files changed, 172 insertions(+), 194 deletions(-) diff --git a/examples/for-tests/src/App.js b/examples/for-tests/src/App.js index 7bdb1092c..321b85016 100644 --- a/examples/for-tests/src/App.js +++ b/examples/for-tests/src/App.js @@ -443,6 +443,7 @@ if (testContext.enableMFA) { SuperTokens.init({ usesDynamicLoginMethods: testContext.usesDynamicLoginMethods, clientType: testContext.clientType, + enableLogging: true, appInfo: { appName: "SuperTokens", websiteDomain: getWebsiteDomain(), diff --git a/test/end-to-end/accountlinking.test.js b/test/end-to-end/accountlinking.test.js index e1481a328..e676f6eb7 100644 --- a/test/end-to-end/accountlinking.test.js +++ b/test/end-to-end/accountlinking.test.js @@ -45,6 +45,7 @@ import { sendEmailResetPasswordSuccessMessage, changeEmail, backendBeforeEach, + setupBrowser, } from "../helpers"; import { TEST_CLIENT_BASE_URL, TEST_SERVER_BASE_URL, SIGN_IN_UP_API, RESET_PASSWORD_API } from "../constants"; @@ -71,10 +72,7 @@ describe("SuperTokens Account linking", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); page.on("console", (consoleObj) => { const log = consoleObj.text(); diff --git a/test/end-to-end/emailverification.test.js b/test/end-to-end/emailverification.test.js index 435f29f27..88ae6a6e3 100644 --- a/test/end-to-end/emailverification.test.js +++ b/test/end-to-end/emailverification.test.js @@ -55,6 +55,7 @@ import { getDefaultSignUpFieldValues, getTestEmail, waitForUrl, + setupBrowser, } from "../helpers"; describe("SuperTokens Email Verification", function () { @@ -68,10 +69,7 @@ describe("SuperTokens Email Verification", function () { await fetch(`${TEST_SERVER_BASE_URL}/startst`, { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); accountLinkingSupported = await isAccountLinkingSupported(); page = await browser.newPage(); @@ -616,10 +614,7 @@ describe("SuperTokens Email Verification server errors", function () { let consoleLogs; before(async function () { - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); await page.goto(`${TEST_CLIENT_BASE_URL}/auth?mode=REQUIRED`); }); @@ -673,10 +668,7 @@ describe("SuperTokens Email Verification general errors", function () { await fetch(`${TEST_SERVER_BASE_URL}/startst`, { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); await Promise.all([ page.goto(`${TEST_CLIENT_BASE_URL}/auth?mode=REQUIRED`), @@ -784,10 +776,7 @@ describe("SuperTokens Email Verification isEmailVerified server error", function await fetch(`${TEST_SERVER_BASE_URL}/startst`, { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { @@ -864,10 +853,7 @@ describe("Email verification signOut errors", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { @@ -950,10 +936,7 @@ describe("Email verification claim refresh with clock skew", function () { }), }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/embed.test.js b/test/end-to-end/embed.test.js index e5a335334..1ca49a76a 100644 --- a/test/end-to-end/embed.test.js +++ b/test/end-to-end/embed.test.js @@ -5,17 +5,19 @@ import { TEST_SERVER_BASE_URL } from "../constants"; import { AuthPage } from "./pages/AuthPage"; import { EmailVerificationPage } from "./pages/EmailVerificationPage"; import { ResetPasswordPage } from "./pages/ResetPasswordPage"; -import { backendBeforeEach, clearBrowserCookiesWithoutAffectingConsole, screenshotOnFailure } from "../helpers"; +import { + backendBeforeEach, + clearBrowserCookiesWithoutAffectingConsole, + screenshotOnFailure, + setupBrowser, +} from "../helpers"; describe("Embed components", async () => { let browser; let page; before(async function () { - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); await backendBeforeEach(); await fetch(`${TEST_SERVER_BASE_URL}/startst`, { diff --git a/test/end-to-end/generalerror.test.js b/test/end-to-end/generalerror.test.js index b29d76fa3..44c797e2b 100644 --- a/test/end-to-end/generalerror.test.js +++ b/test/end-to-end/generalerror.test.js @@ -42,6 +42,7 @@ import { setGeneralErrorToLocalStorage, backendBeforeEach, waitForUrl, + setupBrowser, } from "../helpers"; import { @@ -78,10 +79,7 @@ describe("General error rendering", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { @@ -240,10 +238,7 @@ function getEmailPasswordTests(rid, ridForStorage) { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { @@ -378,10 +373,7 @@ function getThirdPartyTests(rid, ridForStorage) { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/getRedirectionURL.test.js b/test/end-to-end/getRedirectionURL.test.js index fa0304c82..f491f7ad9 100644 --- a/test/end-to-end/getRedirectionURL.test.js +++ b/test/end-to-end/getRedirectionURL.test.js @@ -17,6 +17,7 @@ import { isPasswordlessSupported, isThirdPartyPasswordlessSupported, backendBeforeEach, + setupBrowser, } from "../helpers"; import { @@ -38,10 +39,7 @@ describe("getRedirectionURL Tests", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { @@ -86,10 +84,7 @@ describe("getRedirectionURL Tests", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); await page.goto(`${TEST_CLIENT_BASE_URL}/auth?authRecipe=thirdparty`); }); @@ -139,10 +134,7 @@ describe("getRedirectionURL Tests", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); }); @@ -216,10 +208,7 @@ describe("getRedirectionURL Tests", function () { }), }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); await Promise.all([ page.goto( @@ -303,10 +292,7 @@ describe("getRedirectionURL Tests", function () { }), }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); await Promise.all([ page.goto( @@ -390,10 +376,7 @@ describe("getRedirectionURL Tests", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); // We need to set the localStorage value before the page loads to ensure ST initialises with the correct value @@ -464,10 +447,7 @@ describe("getRedirectionURL Tests", function () { }), }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); // We need to set the localStorage value before the page loads to ensure ST initialises with the correct value await page.evaluateOnNewDocument(() => { @@ -557,10 +537,7 @@ describe("getRedirectionURL Tests", function () { }), }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); // We need to set the localStorage value before the page loads to ensure ST initialises with the correct value await page.evaluateOnNewDocument(() => { @@ -632,10 +609,7 @@ describe("getRedirectionURL Tests", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); // We need to set the localStorage value before the page loads to ensure ST initialises with the correct value diff --git a/test/end-to-end/mfa.chooserscreen.test.js b/test/end-to-end/mfa.chooserscreen.test.js index 3fab733b6..cb14c1d70 100644 --- a/test/end-to-end/mfa.chooserscreen.test.js +++ b/test/end-to-end/mfa.chooserscreen.test.js @@ -33,6 +33,7 @@ import { setAccountLinkingConfig, isMFASupported, expectErrorThrown, + setupBrowser, } from "../helpers"; import fetch from "isomorphic-fetch"; import { CREATE_CODE_API, CREATE_TOTP_DEVICE_API, MFA_INFO_API } from "../constants"; @@ -80,10 +81,7 @@ describe("SuperTokens SignIn w/ MFA", function () { }).catch(console.error); await setAccountLinkingConfig(true, true, false); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/mfa.default_reqs.test.js b/test/end-to-end/mfa.default_reqs.test.js index ab1fda1d3..04e150bf8 100644 --- a/test/end-to-end/mfa.default_reqs.test.js +++ b/test/end-to-end/mfa.default_reqs.test.js @@ -32,6 +32,7 @@ import { getFactorChooserOptions, setAccountLinkingConfig, isMFASupported, + setupBrowser, } from "../helpers"; import fetch from "isomorphic-fetch"; import { CREATE_CODE_API, CREATE_TOTP_DEVICE_API, MFA_INFO_API, TEST_APPLICATION_SERVER_BASE_URL } from "../constants"; @@ -80,10 +81,7 @@ describe("SuperTokens SignIn w/ MFA", function () { }).catch(console.error); await setAccountLinkingConfig(true, true, false); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/mfa.factorscreen.otp.test.js b/test/end-to-end/mfa.factorscreen.otp.test.js index ce76687b4..e44f35eca 100644 --- a/test/end-to-end/mfa.factorscreen.otp.test.js +++ b/test/end-to-end/mfa.factorscreen.otp.test.js @@ -34,6 +34,7 @@ import { isMFASupported, setAccountLinkingConfig, waitForUrl, + setupBrowser, } from "../helpers"; import fetch from "isomorphic-fetch"; import { @@ -87,10 +88,7 @@ describe("SuperTokens SignIn w/ MFA", function () { }).catch(console.error); await setAccountLinkingConfig(true, true, false); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/mfa.factorscreen.totp.test.js b/test/end-to-end/mfa.factorscreen.totp.test.js index fd1f56465..4136369ec 100644 --- a/test/end-to-end/mfa.factorscreen.totp.test.js +++ b/test/end-to-end/mfa.factorscreen.totp.test.js @@ -33,6 +33,7 @@ import { isMFASupported, setAccountLinkingConfig, waitForUrl, + setupBrowser, } from "../helpers"; import fetch from "isomorphic-fetch"; import { CREATE_CODE_API, CREATE_TOTP_DEVICE_API, MFA_INFO_API } from "../constants"; @@ -81,10 +82,7 @@ describe("SuperTokens SignIn w/ MFA", function () { }).catch(console.error); await setAccountLinkingConfig(true, true, false); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/mfa.firstFactors.test.js b/test/end-to-end/mfa.firstFactors.test.js index a9e597c9a..c3cdd2fcf 100644 --- a/test/end-to-end/mfa.firstFactors.test.js +++ b/test/end-to-end/mfa.firstFactors.test.js @@ -28,6 +28,7 @@ import { submitForm, isMFASupported, setAccountLinkingConfig, + setupBrowser, } from "../helpers"; import fetch from "isomorphic-fetch"; @@ -56,10 +57,7 @@ describe("SuperTokens MFA firstFactors support", function () { }).catch(console.error); await setAccountLinkingConfig(true, true, false); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/mfa.requirement_handling.test.js b/test/end-to-end/mfa.requirement_handling.test.js index 347ed2db8..e170f1e45 100644 --- a/test/end-to-end/mfa.requirement_handling.test.js +++ b/test/end-to-end/mfa.requirement_handling.test.js @@ -32,6 +32,7 @@ import { getFactorChooserOptions, setAccountLinkingConfig, isMFASupported, + setupBrowser, } from "../helpers"; import fetch from "isomorphic-fetch"; import { CREATE_CODE_API, CREATE_TOTP_DEVICE_API, MFA_INFO_API } from "../constants"; @@ -78,10 +79,7 @@ describe("SuperTokens SignIn w/ MFA", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/mfa.signin.test.js b/test/end-to-end/mfa.signin.test.js index 9e9d0da92..364f234a5 100644 --- a/test/end-to-end/mfa.signin.test.js +++ b/test/end-to-end/mfa.signin.test.js @@ -33,6 +33,7 @@ import { setAccountLinkingConfig, expectErrorThrown, waitForUrl, + setupBrowser, } from "../helpers"; import fetch from "isomorphic-fetch"; import { CREATE_CODE_API, CREATE_TOTP_DEVICE_API, MFA_INFO_API } from "../constants"; @@ -81,10 +82,7 @@ describe("SuperTokens SignIn w/ MFA", function () { await setAccountLinkingConfig(true, true, false); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/multitenancy.dynamic_login_methods.test.js b/test/end-to-end/multitenancy.dynamic_login_methods.test.js index 210a6864c..6364161fd 100644 --- a/test/end-to-end/multitenancy.dynamic_login_methods.test.js +++ b/test/end-to-end/multitenancy.dynamic_login_methods.test.js @@ -40,6 +40,7 @@ import { setupTenant, backendBeforeEach, getTextByDataSupertokens, + setupBrowser, } from "../helpers"; import { TEST_CLIENT_BASE_URL, @@ -106,10 +107,7 @@ describe("SuperTokens Multitenancy dynamic login methods", function () { }); before(async () => { - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox", "--disable-web-security"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/multitenancy.mock.test.js b/test/end-to-end/multitenancy.mock.test.js index 2e479ddb9..34b56121f 100644 --- a/test/end-to-end/multitenancy.mock.test.js +++ b/test/end-to-end/multitenancy.mock.test.js @@ -28,6 +28,7 @@ import { assertNoSTComponents, assertProviders, getProviderLogoCount, + setupBrowser, } from "../helpers"; import { TEST_CLIENT_BASE_URL, DEFAULT_WEBSITE_BASE_PATH, ST_ROOT_SELECTOR } from "../constants"; import { before } from "mocha"; @@ -64,10 +65,7 @@ describe.skip("SuperTokens Multitenancy w/ mocked login methods", function () { }); before(async () => { - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox", "--disable-web-security"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/multitenancy.tenant_interactions.test.js b/test/end-to-end/multitenancy.tenant_interactions.test.js index 57a1bb33f..bceeaedc7 100644 --- a/test/end-to-end/multitenancy.tenant_interactions.test.js +++ b/test/end-to-end/multitenancy.tenant_interactions.test.js @@ -47,6 +47,7 @@ import { removeTenant, backendBeforeEach, waitForUrl, + setupBrowser, } from "../helpers"; import { TEST_CLIENT_BASE_URL, @@ -117,10 +118,7 @@ describe("SuperTokens Multitenancy tenant interactions", function () { }); before(async () => { - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox", "--disable-web-security"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/oauth2provider.test.js b/test/end-to-end/oauth2provider.test.js index d1e1c78a7..4e2a052f8 100644 --- a/test/end-to-end/oauth2provider.test.js +++ b/test/end-to-end/oauth2provider.test.js @@ -39,6 +39,7 @@ import { getOAuth2Error, waitForSTElement, isOauth2Supported, + setupBrowser, } from "../helpers"; import fetch from "isomorphic-fetch"; @@ -81,10 +82,7 @@ describe("SuperTokens OAuth2Provider", function () { }), }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/passwordless.test_gen.js b/test/end-to-end/passwordless.test_gen.js index cb9f41e14..4d21d8c7f 100644 --- a/test/end-to-end/passwordless.test_gen.js +++ b/test/end-to-end/passwordless.test_gen.js @@ -37,6 +37,7 @@ import { isAccountLinkingSupported, backendBeforeEach, waitForUrl, + setupBrowser, } from "../helpers"; import { TEST_CLIENT_BASE_URL, TEST_SERVER_BASE_URL, SOMETHING_WENT_WRONG_ERROR } from "../constants"; @@ -1907,10 +1908,7 @@ async function initBrowser(contactMethod, consoleLogs, authRecipe, { defaultCoun }), }).catch(console.error); - const browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox", "--remote-debugging-port=9222"], - headless: true, - }); + const browser = await setupBrowser(); const page = await browser.newPage(); page.on("console", (consoleObj) => { const log = consoleObj.text(); diff --git a/test/end-to-end/refresherrors.test.js b/test/end-to-end/refresherrors.test.js index 06909e4cf..259ef4c1f 100644 --- a/test/end-to-end/refresherrors.test.js +++ b/test/end-to-end/refresherrors.test.js @@ -19,7 +19,12 @@ import assert from "assert"; import puppeteer from "puppeteer"; -import { clearBrowserCookiesWithoutAffectingConsole, getTextInDashboardNoAuth, screenshotOnFailure } from "../helpers"; +import { + clearBrowserCookiesWithoutAffectingConsole, + getTextInDashboardNoAuth, + screenshotOnFailure, + setupBrowser, +} from "../helpers"; import { TEST_CLIENT_BASE_URL } from "../constants"; @@ -29,10 +34,7 @@ describe("Refresh errors", function () { let page; before(async function () { - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/resetpasswordusingtoken.test.js b/test/end-to-end/resetpasswordusingtoken.test.js index 54b7cf7dc..d8ebe60b6 100644 --- a/test/end-to-end/resetpasswordusingtoken.test.js +++ b/test/end-to-end/resetpasswordusingtoken.test.js @@ -55,6 +55,7 @@ import { backendBeforeEach, waitForText, waitForUrl, + setupBrowser, } from "../helpers"; /* @@ -72,10 +73,7 @@ describe("SuperTokens Reset password", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); diff --git a/test/end-to-end/routing.test.js b/test/end-to-end/routing.test.js index 7071ef669..27dd56570 100644 --- a/test/end-to-end/routing.test.js +++ b/test/end-to-end/routing.test.js @@ -32,6 +32,7 @@ import { clearBrowserCookiesWithoutAffectingConsole, screenshotOnFailure, waitForUrl, + setupBrowser, } from "../helpers"; /* * Tests. @@ -40,10 +41,7 @@ describe("SuperTokens Routing in Test App", function () { let browser, page; before(async function () { - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); }); diff --git a/test/end-to-end/signin-rrdv5.test.js b/test/end-to-end/signin-rrdv5.test.js index bb9b1ab8a..3c29a2edb 100644 --- a/test/end-to-end/signin-rrdv5.test.js +++ b/test/end-to-end/signin-rrdv5.test.js @@ -52,6 +52,7 @@ import { backendBeforeEach, setEnabledRecipes, waitForUrl, + setupBrowser, } from "../helpers"; import fetch from "isomorphic-fetch"; import { SOMETHING_WENT_WRONG_ERROR } from "../constants"; @@ -77,10 +78,7 @@ describe("SuperTokens SignIn with react router dom v5", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { @@ -655,10 +653,7 @@ describe("SuperTokens SignIn => Server Error", function () { before(async function () { await setEnabledRecipes(["emailpassword"], []); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/signin-rrdv6.test.js b/test/end-to-end/signin-rrdv6.test.js index 53dbcdc84..1cb3a6e11 100644 --- a/test/end-to-end/signin-rrdv6.test.js +++ b/test/end-to-end/signin-rrdv6.test.js @@ -53,6 +53,7 @@ import { getInvalidClaimsJSON, expectErrorThrown, waitForUrl, + setupBrowser, } from "../helpers"; import fetch from "isomorphic-fetch"; import { SOMETHING_WENT_WRONG_ERROR } from "../constants"; @@ -74,10 +75,7 @@ describe("SuperTokens SignIn with react router dom v6", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { @@ -802,10 +800,7 @@ describe("SuperTokens SignIn => Server Error", function () { let consoleLogs; before(async function () { - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/signin.test.js b/test/end-to-end/signin.test.js index 883218ea3..9db71074d 100644 --- a/test/end-to-end/signin.test.js +++ b/test/end-to-end/signin.test.js @@ -56,6 +56,7 @@ import { getInputField, isReact16, waitForUrl, + setupBrowser, } from "../helpers"; import fetch from "isomorphic-fetch"; import { SOMETHING_WENT_WRONG_ERROR } from "../constants"; @@ -77,10 +78,7 @@ describe("SuperTokens SignIn", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { @@ -873,10 +871,7 @@ describe("SuperTokens SignIn => Server Error", function () { let consoleLogs; before(async function () { - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/signup.test.js b/test/end-to-end/signup.test.js index 486719c84..2d4f1389b 100644 --- a/test/end-to-end/signup.test.js +++ b/test/end-to-end/signup.test.js @@ -44,6 +44,7 @@ import { isReact16, getDefaultSignUpFieldValues, waitForUrl, + setupBrowser, } from "../helpers"; import { @@ -69,10 +70,7 @@ describe("SuperTokens SignUp", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); page.on("console", (consoleObj) => { const log = consoleObj.text(); @@ -880,10 +878,7 @@ describe("SuperTokens SignUp => Server Error", function () { let consoleLogs; before(async function () { - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); }); after(async function () { diff --git a/test/end-to-end/thirdparty.test.js b/test/end-to-end/thirdparty.test.js index dac9a98b1..49411419b 100644 --- a/test/end-to-end/thirdparty.test.js +++ b/test/end-to-end/thirdparty.test.js @@ -33,6 +33,7 @@ import { clickOnProviderButtonWithoutWaiting, backendBeforeEach, waitForUrl, + setupBrowser, } from "../helpers"; import { TEST_CLIENT_BASE_URL, TEST_SERVER_BASE_URL, SIGN_IN_UP_API, GET_AUTH_URL_API } from "../constants"; @@ -60,10 +61,7 @@ export function getThirdPartyTestCases({ authRecipe, rid, signInUpPageLoadLogs, method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); page.on("console", (consoleObj) => { const log = consoleObj.text(); diff --git a/test/end-to-end/thirdpartyemailpassword.test.js b/test/end-to-end/thirdpartyemailpassword.test.js index d1b7f56fa..c04fa9ce6 100644 --- a/test/end-to-end/thirdpartyemailpassword.test.js +++ b/test/end-to-end/thirdpartyemailpassword.test.js @@ -49,6 +49,7 @@ import { getLabelsText, isReact16, waitForUrl, + setupBrowser, } from "../helpers"; import { TEST_CLIENT_BASE_URL, @@ -77,10 +78,7 @@ describe("SuperTokens Third Party Email Password", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); page.on("console", (consoleObj) => { const log = consoleObj.text(); diff --git a/test/end-to-end/thirdpartypasswordless.test.js b/test/end-to-end/thirdpartypasswordless.test.js index 80fc4c485..d97f74d34 100644 --- a/test/end-to-end/thirdpartypasswordless.test.js +++ b/test/end-to-end/thirdpartypasswordless.test.js @@ -38,6 +38,7 @@ import { getGeneralError, backendBeforeEach, waitForUrl, + setupBrowser, } from "../helpers"; import { TEST_CLIENT_BASE_URL, TEST_SERVER_BASE_URL, SIGN_IN_UP_API, GET_AUTH_URL_API } from "../constants"; @@ -71,10 +72,7 @@ describe("SuperTokens Third Party Passwordless", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); page.on("console", (consoleObj) => { const log = consoleObj.text(); diff --git a/test/end-to-end/userContext.test.js b/test/end-to-end/userContext.test.js index 3903415c8..2a5e120f8 100644 --- a/test/end-to-end/userContext.test.js +++ b/test/end-to-end/userContext.test.js @@ -26,6 +26,7 @@ import { loginWithAuth0, backendBeforeEach, waitForUrl, + setupBrowser, } from "../helpers"; import { TEST_CLIENT_BASE_URL, @@ -48,10 +49,7 @@ describe("SuperTokens userContext with UI components test", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); page.on("console", (consoleObj) => { const log = consoleObj.text(); diff --git a/test/end-to-end/userroles.test.js b/test/end-to-end/userroles.test.js index 1587e5804..96bb1648d 100644 --- a/test/end-to-end/userroles.test.js +++ b/test/end-to-end/userroles.test.js @@ -32,6 +32,7 @@ import { waitForText, backendBeforeEach, waitForUrl, + setupBrowser, } from "../helpers"; import { TEST_APPLICATION_SERVER_BASE_URL, TEST_CLIENT_BASE_URL, TEST_SERVER_BASE_URL } from "../constants"; @@ -54,10 +55,7 @@ describe("User Roles in the frontend", function () { method: "POST", }).catch(console.error); - browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], - headless: true, - }); + browser = await setupBrowser(); page = await browser.newPage(); await Promise.all([ page.goto(`${TEST_CLIENT_BASE_URL}/auth?authRecipe=emailpassword`), diff --git a/test/helpers.js b/test/helpers.js index 47935672b..5a03eaa01 100644 --- a/test/helpers.js +++ b/test/helpers.js @@ -27,7 +27,9 @@ import { import path from "path"; import assert from "assert"; +import { appendFile } from "fs/promises"; import mkdirp from "mkdirp"; +import Puppeteer from "puppeteer"; const SESSION_STORAGE_STATE_KEY = "supertokens-oauth-state"; @@ -752,12 +754,94 @@ export async function getTextInDashboardNoAuth(page) { return await page.evaluate(() => document.querySelector("#root > div > div.fill > div.not-logged-in").innerText); } +export async function setupBrowser() { + const browser = await Puppeteer.launch({ + args: [ + "--no-sandbox", + "--disable-setuid-sandbox", + "--disable-web-security", + "--host-resolver-rules=MAP example.com 127.0.0.1, MAP *.example.com 127.0.0.1", + ], + headless: process.env.HEADLESS !== "false", + }); + browser.logs = []; + function addLog(str) { + if (process.env.DEBUG !== undefined) { + console.log(str); + } + browser.logs.push(str); + } + const origNewPage = browser.newPage.bind(browser); + browser.newPage = async () => { + const page = await origNewPage(); + page.on("console", (msg) => { + if (msg.text().startsWith("com.supertokens")) { + addLog(msg.text()); + } else { + addLog( + `browserlog.console ${JSON.stringify({ + t: new Date().toISOString(), + message: msg.text(), + pageurl: page.url(), + })}` + ); + } + }); + + page.on("request", (req) => { + addLog( + `browserlog.network ${JSON.stringify({ + t: new Date().toISOString(), + message: `Requested: ${req.method()} ${req.url()} (${req.postData()})`, + pageurl: page.url(), + })}` + ); + }); + page.on("requestfinished", async (req) => { + const resp = await req.response(); + const respText = req.url().startsWith(API_BASE_URL) ? await resp.text() : "response omitted"; + addLog( + `browserlog.network ${JSON.stringify({ + t: new Date().toISOString(), + message: `Request done: ${req.method()} ${req.url()}: ${resp.status()} ${respText}`, + pageurl: page.url(), + })}` + ); + }); + page.on("requestfailed", async (req) => { + const resp = await req.response(); + const respText = req.url().startsWith(API_BASE_URL) ? await resp.text() : "response omitted"; + addLog( + `browserlog.network ${JSON.stringify({ + t: new Date().toISOString(), + message: `Request failed: ${req.method()} ${req.url()}: ${resp.status()} ${respText}`, + pageurl: page.url(), + })}` + ); + }); + return page; + }; + browser.on("disconnected", async () => { + if (process.env.MOCHA_FILE !== undefined) { + const reportFile = path.parse(process.env.MOCHA_FILE); + const logFile = path.join(reportFile.dir, "logs", "browser.log"); + await appendFile(logFile, browser.logs.join("\n")); + } + }); + return browser; +} + /** * @param {import("mocha").Context} ctx * @param {import("puppeteer").Browser} browser */ export async function screenshotOnFailure(ctx, browser) { if (ctx.currentTest?.isFailed()) { + console.log( + `${ctx.currentTest.fullTitle()} failed ${new Date( + Date.now() - ctx.currentTest.duration + ).toISOString()} - ${new Date().toISOString()}` + ); const pages = await browser.pages(); let screenshotRoot; From 8cdc767809b3c672cb2c56450f577b455b12e5b4 Mon Sep 17 00:00:00 2001 From: Mihaly Lengyel Date: Mon, 30 Sep 2024 18:43:16 +0200 Subject: [PATCH 15/20] fix: shouldTryLinkingWithSessionUser --- examples/for-tests/src/App.js | 2 +- lib/build/emailpasswordprebuiltui.js | 12 ++--- lib/build/multifactorauth-shared2.js | 17 +++++++ lib/build/passwordlessprebuiltui.js | 44 +++++++++++-------- lib/build/recipe/emailpassword/index.d.ts | 4 +- lib/build/recipe/passwordless/index.d.ts | 4 +- lib/build/recipe/thirdparty/index.d.ts | 2 +- lib/build/thirdparty-shared.js | 2 +- lib/build/ui/index.d.ts | 2 +- .../components/features/signin/index.tsx | 4 +- .../components/features/signup/index.tsx | 4 +- .../components/themes/signIn/index.tsx | 2 +- .../components/themes/signUp/index.tsx | 2 +- lib/ts/recipe/emailpassword/index.ts | 4 +- lib/ts/recipe/multifactorauth/utils.ts | 9 ++++ .../components/features/linkSent/index.tsx | 2 +- .../components/features/mfa/index.tsx | 11 +++-- .../components/features/signInAndUp/index.tsx | 2 +- .../features/signInAndUpEPCombo/index.tsx | 10 ++--- .../features/userInputCode/index.tsx | 2 +- .../components/themes/signInUp/emailForm.tsx | 2 +- .../themes/signInUp/emailOrPhoneForm.tsx | 2 +- .../components/themes/signInUp/phoneForm.tsx | 2 +- lib/ts/recipe/passwordless/index.ts | 4 +- lib/ts/recipe/thirdparty/index.ts | 2 +- lib/ts/recipe/thirdparty/utils.ts | 2 +- test/end-to-end/generalerror.test.js | 2 +- test/end-to-end/signin-rrdv6.test.js | 6 +-- test/end-to-end/signin.test.js | 6 +-- .../thirdpartyemailpassword.test.js | 2 +- test/helpers.js | 32 +++++++++----- 31 files changed, 124 insertions(+), 79 deletions(-) diff --git a/examples/for-tests/src/App.js b/examples/for-tests/src/App.js index 321b85016..2d668989c 100644 --- a/examples/for-tests/src/App.js +++ b/examples/for-tests/src/App.js @@ -443,7 +443,7 @@ if (testContext.enableMFA) { SuperTokens.init({ usesDynamicLoginMethods: testContext.usesDynamicLoginMethods, clientType: testContext.clientType, - enableLogging: true, + enableDebugLogs: true, appInfo: { appName: "SuperTokens", websiteDomain: getWebsiteDomain(), diff --git a/lib/build/emailpasswordprebuiltui.js b/lib/build/emailpasswordprebuiltui.js index 1c16cca73..9871f7907 100644 --- a/lib/build/emailpasswordprebuiltui.js +++ b/lib/build/emailpasswordprebuiltui.js @@ -730,7 +730,7 @@ var SignInForm = uiEntry.withOverride("EmailPasswordSignInForm", function EmailP 4 /*yield*/, props.recipeImplementation.signIn({ formFields: formFields, - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext: userContext, }), ]; @@ -1000,7 +1000,7 @@ var getModifiedRecipeImplementation$1 = function (origImpl) { origImpl.signIn( genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, input), - { tryLinkingWithSessionUser: false } + { shouldTryLinkingWithSessionUser: false } ) ), ]; @@ -1022,7 +1022,7 @@ var getModifiedRecipeImplementation$1 = function (origImpl) { origImpl.signUp( genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, input), - { tryLinkingWithSessionUser: false } + { shouldTryLinkingWithSessionUser: false } ) ), ]; @@ -1074,7 +1074,7 @@ var SignUpForm = uiEntry.withOverride("EmailPasswordSignUpForm", function EmailP 4 /*yield*/, props.recipeImplementation.signUp({ formFields: formFields, - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext: userContext, }), ]; @@ -1299,7 +1299,7 @@ var getModifiedRecipeImplementation = function (origImpl) { origImpl.signIn( genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, input), - { tryLinkingWithSessionUser: false } + { shouldTryLinkingWithSessionUser: false } ) ), ]; @@ -1321,7 +1321,7 @@ var getModifiedRecipeImplementation = function (origImpl) { origImpl.signUp( genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, input), - { tryLinkingWithSessionUser: false } + { shouldTryLinkingWithSessionUser: false } ) ), ]; diff --git a/lib/build/multifactorauth-shared2.js b/lib/build/multifactorauth-shared2.js index ee8ff240f..3663607b4 100644 --- a/lib/build/multifactorauth-shared2.js +++ b/lib/build/multifactorauth-shared2.js @@ -347,6 +347,23 @@ function normaliseMultiFactorAuthFeature(config) { ); } function getAvailableFactors(factors, nextArrayQueryParam, recipe, userContext) { + genericComponentOverrideContext.logDebugMessage( + "getAvailableFactors: allowed to setup: ".concat(factors.allowedToSetup) + ); + genericComponentOverrideContext.logDebugMessage( + "getAvailableFactors: already setup: ".concat(factors.alreadySetup) + ); + genericComponentOverrideContext.logDebugMessage("getAvailableFactors: next from factorInfo: ".concat(factors.next)); + genericComponentOverrideContext.logDebugMessage( + "getAvailableFactors: nextArrayQueryParam: ".concat(nextArrayQueryParam) + ); + genericComponentOverrideContext.logDebugMessage( + "getAvailableFactors: secondary factors: ".concat( + recipe.getSecondaryFactors(userContext).map(function (f) { + return f.id; + }) + ) + ); // There are 3 cases here: // 1. The app provided an array of factors to show (nextArrayQueryParam) -> we show whatever is in the array // 2. no app provided list and validator passed -> we show all factors available to set up or complete diff --git a/lib/build/passwordlessprebuiltui.js b/lib/build/passwordlessprebuiltui.js index a8c658278..4ca8a7b77 100644 --- a/lib/build/passwordlessprebuiltui.js +++ b/lib/build/passwordlessprebuiltui.js @@ -1355,8 +1355,8 @@ function getModifiedRecipeImplementation$4(originalImpl, setError, rebuildAuthPa attemptInfo: genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, loginAttemptInfo), { - tryLinkingWithSessionUser: - (_a = loginAttemptInfo.tryLinkingWithSessionUser) !== null && + shouldTryLinkingWithSessionUser: + (_a = loginAttemptInfo.shouldTryLinkingWithSessionUser) !== null && _a !== void 0 ? _a : false, @@ -1562,7 +1562,7 @@ var EmailForm = uiEntry.withOverride("PasswordlessEmailForm", function Passwordl 4 /*yield*/, props.recipeImplementation.createCode({ email: email, - // tryLinkingWithSessionUser is set by the fn override + // shouldTryLinkingWithSessionUser is set by the fn override userContext: userContext, }), ]; @@ -3723,7 +3723,7 @@ var PhoneForm = uiEntry.withOverride("PasswordlessPhoneForm", function Passwordl 4 /*yield*/, props.recipeImplementation.createCode({ phoneNumber: phoneNumber, - // tryLinkingWithSessionUser is set by the fn override + // shouldTryLinkingWithSessionUser is set by the fn override userContext: userContext, }), ]; @@ -4842,7 +4842,7 @@ function useOnLoad(props, recipeImplementation, dispatch, userContext) { recipeImplementation.createCode( genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, createCodeInfo), - { tryLinkingWithSessionUser: true, userContext: userContext } + { shouldTryLinkingWithSessionUser: true, userContext: userContext } ) ), ]; @@ -4984,7 +4984,7 @@ function getModifiedRecipeImplementation$3(originalImpl, config, dispatch) { genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, input), { - tryLinkingWithSessionUser: true, + shouldTryLinkingWithSessionUser: true, userContext: genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, input.userContext), { additionalAttemptInfo: additionalAttemptInfo } @@ -5040,8 +5040,8 @@ function getModifiedRecipeImplementation$3(originalImpl, config, dispatch) { attemptInfo: genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, loginAttemptInfo), { - tryLinkingWithSessionUser: - (_a = loginAttemptInfo.tryLinkingWithSessionUser) !== null && + shouldTryLinkingWithSessionUser: + (_a = loginAttemptInfo.shouldTryLinkingWithSessionUser) !== null && _a !== void 0 ? _a : true, @@ -5080,7 +5080,15 @@ function getModifiedRecipeImplementation$3(originalImpl, config, dispatch) { return genericComponentOverrideContext.__generator(this, function (_a) { switch (_a.label) { case 0: - return [4 /*yield*/, originalImpl.consumeCode(input)]; + return [ + 4 /*yield*/, + originalImpl.consumeCode( + genericComponentOverrideContext.__assign( + genericComponentOverrideContext.__assign({}, input), + { shouldTryLinkingWithSessionUser: true } + ) + ), + ]; case 1: res = _a.sent(); if (!(res.status === "RESTART_FLOW_ERROR")) return [3 /*break*/, 3]; @@ -5305,7 +5313,7 @@ var EmailOrPhoneForm = uiEntry.withOverride( genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, contactInfo), { - // tryLinkingWithSessionUser is set by the fn override + // shouldTryLinkingWithSessionUser is set by the fn override userContext: userContext, } ) @@ -5622,7 +5630,7 @@ function getModifiedRecipeImplementation$2(originalImpl, config, rebuildAuthPage genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, input), { - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext: genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, input.userContext), { additionalAttemptInfo: additionalAttemptInfo } @@ -6142,7 +6150,7 @@ function useChildProps$1( 4 /*yield*/, recipeImplementation.createCode({ phoneNumber: contactInfo, - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext: userContext, }), ]; @@ -6189,7 +6197,7 @@ function useChildProps$1( 4 /*yield*/, recipeImplementation.createCode({ email: email, - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext: userContext, }), ]; @@ -6240,7 +6248,7 @@ function useChildProps$1( 4 /*yield*/, recipe$1.EmailPassword.getInstanceOrThrow().webJSRecipe.signIn({ formFields: formFields, - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext: userContext, }), ]; @@ -6277,7 +6285,7 @@ function useChildProps$1( recipeImplementation.createCode( genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, createInfo), - { tryLinkingWithSessionUser: false, userContext: userContext } + { shouldTryLinkingWithSessionUser: false, userContext: userContext } ) ), ]; @@ -6503,7 +6511,7 @@ function getModifiedRecipeImplementation$1(originalImpl, config, rebuildAuthPage genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, input), { - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext: genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, input.userContext), { additionalAttemptInfo: additionalAttemptInfo } @@ -6731,8 +6739,8 @@ function getModifiedRecipeImplementation(originalImpl, setError, rebuildAuthPage attemptInfo: genericComponentOverrideContext.__assign( genericComponentOverrideContext.__assign({}, loginAttemptInfo), { - tryLinkingWithSessionUser: - (_a = loginAttemptInfo.tryLinkingWithSessionUser) !== null && + shouldTryLinkingWithSessionUser: + (_a = loginAttemptInfo.shouldTryLinkingWithSessionUser) !== null && _a !== void 0 ? _a : false, diff --git a/lib/build/recipe/emailpassword/index.d.ts b/lib/build/recipe/emailpassword/index.d.ts index 089a44d92..9bff21ab9 100644 --- a/lib/build/recipe/emailpassword/index.d.ts +++ b/lib/build/recipe/emailpassword/index.d.ts @@ -66,7 +66,7 @@ export default class Wrapper { id: string; value: string; }[]; - tryLinkingWithSessionUser?: boolean; + shouldTryLinkingWithSessionUser?: boolean; options?: RecipeFunctionOptions; userContext?: UserContext; }): Promise< @@ -94,7 +94,7 @@ export default class Wrapper { id: string; value: string; }[]; - tryLinkingWithSessionUser?: boolean; + shouldTryLinkingWithSessionUser?: boolean; options?: RecipeFunctionOptions; userContext?: UserContext; }): Promise< diff --git a/lib/build/recipe/passwordless/index.d.ts b/lib/build/recipe/passwordless/index.d.ts index 5f851efbe..ca5a32715 100644 --- a/lib/build/recipe/passwordless/index.d.ts +++ b/lib/build/recipe/passwordless/index.d.ts @@ -20,13 +20,13 @@ export default class Wrapper { input: | { email: string; - tryLinkingWithSessionUser?: boolean; + shouldTryLinkingWithSessionUser?: boolean; userContext?: UserContext; options?: RecipeFunctionOptions; } | { phoneNumber: string; - tryLinkingWithSessionUser?: boolean; + shouldTryLinkingWithSessionUser?: boolean; userContext?: UserContext; options?: RecipeFunctionOptions; } diff --git a/lib/build/recipe/thirdparty/index.d.ts b/lib/build/recipe/thirdparty/index.d.ts index 9978aeb1f..7c8e6e943 100644 --- a/lib/build/recipe/thirdparty/index.d.ts +++ b/lib/build/recipe/thirdparty/index.d.ts @@ -41,7 +41,7 @@ export default class Wrapper { thirdPartyId: string; frontendRedirectURI: string; redirectURIOnProviderDashboard?: string; - tryLinkingWithSessionUser?: boolean; + shouldTryLinkingWithSessionUser?: boolean; userContext?: UserContext; options?: RecipeFunctionOptions; }): Promise; diff --git a/lib/build/thirdparty-shared.js b/lib/build/thirdparty-shared.js index c34e7f232..ed10b4874 100644 --- a/lib/build/thirdparty-shared.js +++ b/lib/build/thirdparty-shared.js @@ -1333,7 +1333,7 @@ function redirectToThirdPartyLogin(input) { thirdPartyId: input.thirdPartyId, frontendRedirectURI: provider.getRedirectURL(), redirectURIOnProviderDashboard: provider.getRedirectURIOnProviderDashboard(), - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext: input.userContext, }), ]; diff --git a/lib/build/ui/index.d.ts b/lib/build/ui/index.d.ts index c345f2b0c..9137df7c3 100644 --- a/lib/build/ui/index.d.ts +++ b/lib/build/ui/index.d.ts @@ -43,7 +43,7 @@ declare class UI { showBackButton: boolean; oauth2ClientInfo?: | { - clientLogoUri?: string | undefined; + logoUri?: string | undefined; clientUri?: string | undefined; clientName: string; } diff --git a/lib/ts/recipe/emailpassword/components/features/signin/index.tsx b/lib/ts/recipe/emailpassword/components/features/signin/index.tsx index 134f01a72..4a98e12b0 100644 --- a/lib/ts/recipe/emailpassword/components/features/signin/index.tsx +++ b/lib/ts/recipe/emailpassword/components/features/signin/index.tsx @@ -189,11 +189,11 @@ const getModifiedRecipeImplementation = (origImpl: RecipeInterface): RecipeInter return { ...origImpl, signIn: async function (input) { - const response = await origImpl.signIn({ ...input, tryLinkingWithSessionUser: false }); + const response = await origImpl.signIn({ ...input, shouldTryLinkingWithSessionUser: false }); return response; }, signUp: async function (input) { - const response = await origImpl.signUp({ ...input, tryLinkingWithSessionUser: false }); + const response = await origImpl.signUp({ ...input, shouldTryLinkingWithSessionUser: false }); return response; }, }; diff --git a/lib/ts/recipe/emailpassword/components/features/signup/index.tsx b/lib/ts/recipe/emailpassword/components/features/signup/index.tsx index 648102840..0b3507973 100644 --- a/lib/ts/recipe/emailpassword/components/features/signup/index.tsx +++ b/lib/ts/recipe/emailpassword/components/features/signup/index.tsx @@ -168,11 +168,11 @@ const getModifiedRecipeImplementation = (origImpl: RecipeInterface): RecipeInter return { ...origImpl, signIn: async function (input) { - const response = await origImpl.signIn({ ...input, tryLinkingWithSessionUser: false }); + const response = await origImpl.signIn({ ...input, shouldTryLinkingWithSessionUser: false }); return response; }, signUp: async function (input) { - const response = await origImpl.signUp({ ...input, tryLinkingWithSessionUser: false }); + const response = await origImpl.signUp({ ...input, shouldTryLinkingWithSessionUser: false }); return response; }, }; diff --git a/lib/ts/recipe/emailpassword/components/themes/signIn/index.tsx b/lib/ts/recipe/emailpassword/components/themes/signIn/index.tsx index 7e57d8aef..a55e516cf 100644 --- a/lib/ts/recipe/emailpassword/components/themes/signIn/index.tsx +++ b/lib/ts/recipe/emailpassword/components/themes/signIn/index.tsx @@ -58,7 +58,7 @@ export const SignInForm = withOverride( const response = await props.recipeImplementation.signIn({ formFields, - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext, }); if (response.status === "WRONG_CREDENTIALS_ERROR") { diff --git a/lib/ts/recipe/emailpassword/components/themes/signUp/index.tsx b/lib/ts/recipe/emailpassword/components/themes/signUp/index.tsx index b0c76e350..9a98d7752 100644 --- a/lib/ts/recipe/emailpassword/components/themes/signUp/index.tsx +++ b/lib/ts/recipe/emailpassword/components/themes/signUp/index.tsx @@ -58,7 +58,7 @@ export const SignUpForm = withOverride( const res = await props.recipeImplementation.signUp({ formFields, - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext, }); diff --git a/lib/ts/recipe/emailpassword/index.ts b/lib/ts/recipe/emailpassword/index.ts index 98d170cf5..52957243b 100644 --- a/lib/ts/recipe/emailpassword/index.ts +++ b/lib/ts/recipe/emailpassword/index.ts @@ -100,7 +100,7 @@ export default class Wrapper { id: string; value: string; }[]; - tryLinkingWithSessionUser?: boolean; + shouldTryLinkingWithSessionUser?: boolean; options?: RecipeFunctionOptions; userContext?: UserContext; }): Promise< @@ -134,7 +134,7 @@ export default class Wrapper { id: string; value: string; }[]; - tryLinkingWithSessionUser?: boolean; + shouldTryLinkingWithSessionUser?: boolean; options?: RecipeFunctionOptions; userContext?: UserContext; }): Promise< diff --git a/lib/ts/recipe/multifactorauth/utils.ts b/lib/ts/recipe/multifactorauth/utils.ts index 2e276e42e..fb1934d29 100644 --- a/lib/ts/recipe/multifactorauth/utils.ts +++ b/lib/ts/recipe/multifactorauth/utils.ts @@ -13,6 +13,7 @@ * under the License. */ +import { logDebugMessage } from "../../logger"; import { normaliseRecipeModuleConfig } from "../recipeModule/utils"; import type MultiFactorAuth from "./recipe"; @@ -48,6 +49,14 @@ export function getAvailableFactors( recipe: MultiFactorAuth, userContext: UserContext ) { + logDebugMessage(`getAvailableFactors: allowed to setup: ${factors.allowedToSetup}`); + logDebugMessage(`getAvailableFactors: already setup: ${factors.alreadySetup}`); + logDebugMessage(`getAvailableFactors: next from factorInfo: ${factors.next}`); + logDebugMessage(`getAvailableFactors: nextArrayQueryParam: ${nextArrayQueryParam}`); + logDebugMessage( + `getAvailableFactors: secondary factors: ${recipe.getSecondaryFactors(userContext).map((f) => f.id)}` + ); + // There are 3 cases here: // 1. The app provided an array of factors to show (nextArrayQueryParam) -> we show whatever is in the array // 2. no app provided list and validator passed -> we show all factors available to set up or complete diff --git a/lib/ts/recipe/passwordless/components/features/linkSent/index.tsx b/lib/ts/recipe/passwordless/components/features/linkSent/index.tsx index 03a7b1ba0..d8b457233 100644 --- a/lib/ts/recipe/passwordless/components/features/linkSent/index.tsx +++ b/lib/ts/recipe/passwordless/components/features/linkSent/index.tsx @@ -211,7 +211,7 @@ function getModifiedRecipeImplementation( userContext: input.userContext, attemptInfo: { ...loginAttemptInfo, - tryLinkingWithSessionUser: loginAttemptInfo.tryLinkingWithSessionUser ?? false, + shouldTryLinkingWithSessionUser: loginAttemptInfo.shouldTryLinkingWithSessionUser ?? false, lastResend: timestamp, }, }); diff --git a/lib/ts/recipe/passwordless/components/features/mfa/index.tsx b/lib/ts/recipe/passwordless/components/features/mfa/index.tsx index 67069be26..86f64f1d4 100644 --- a/lib/ts/recipe/passwordless/components/features/mfa/index.tsx +++ b/lib/ts/recipe/passwordless/components/features/mfa/index.tsx @@ -359,7 +359,7 @@ function useOnLoad( // createCode also dispatches the event that marks this page fully loaded createResp = await recipeImplementation!.createCode({ ...createCodeInfo, - tryLinkingWithSessionUser: true, + shouldTryLinkingWithSessionUser: true, userContext, }); } catch (err: any) { @@ -467,7 +467,7 @@ function getModifiedRecipeImplementation( const res = await originalImpl.createCode({ ...input, - tryLinkingWithSessionUser: true, + shouldTryLinkingWithSessionUser: true, userContext: { ...input.userContext, additionalAttemptInfo }, }); @@ -498,7 +498,7 @@ function getModifiedRecipeImplementation( userContext: input.userContext, attemptInfo: { ...loginAttemptInfo, - tryLinkingWithSessionUser: loginAttemptInfo.tryLinkingWithSessionUser ?? true, + shouldTryLinkingWithSessionUser: loginAttemptInfo.shouldTryLinkingWithSessionUser ?? true, lastResend: timestamp, }, }); @@ -515,7 +515,10 @@ function getModifiedRecipeImplementation( }, consumeCode: async (input) => { - const res = await originalImpl.consumeCode(input); + const res = await originalImpl.consumeCode({ + ...input, + shouldTryLinkingWithSessionUser: true, + }); if (res.status === "RESTART_FLOW_ERROR") { await originalImpl.clearLoginAttemptInfo({ diff --git a/lib/ts/recipe/passwordless/components/features/signInAndUp/index.tsx b/lib/ts/recipe/passwordless/components/features/signInAndUp/index.tsx index e0003dd20..4e29f5fc8 100644 --- a/lib/ts/recipe/passwordless/components/features/signInAndUp/index.tsx +++ b/lib/ts/recipe/passwordless/components/features/signInAndUp/index.tsx @@ -209,7 +209,7 @@ function getModifiedRecipeImplementation( const res = await originalImpl.createCode({ ...input, - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext: { ...input.userContext, additionalAttemptInfo }, }); if (res.status === "OK") { diff --git a/lib/ts/recipe/passwordless/components/features/signInAndUpEPCombo/index.tsx b/lib/ts/recipe/passwordless/components/features/signInAndUpEPCombo/index.tsx index 2831f3c7f..179701925 100644 --- a/lib/ts/recipe/passwordless/components/features/signInAndUpEPCombo/index.tsx +++ b/lib/ts/recipe/passwordless/components/features/signInAndUpEPCombo/index.tsx @@ -83,7 +83,7 @@ export function useChildProps( if (isPhoneNumber) { const createRes = await recipeImplementation.createCode({ phoneNumber: contactInfo, - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext, }); @@ -116,7 +116,7 @@ export function useChildProps( // only pwless exists const createRes = await recipeImplementation.createCode({ email, - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext, }); @@ -147,7 +147,7 @@ export function useChildProps( const response = await EmailPassword.getInstanceOrThrow().webJSRecipe.signIn({ formFields, - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext, }); if (response.status === "WRONG_CREDENTIALS_ERROR") { @@ -163,7 +163,7 @@ export function useChildProps( const createInfo = isPhoneNumber ? { phoneNumber: contactInfo } : { email: contactInfo }; const createRes = await recipeImplementation.createCode({ ...createInfo, - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext, }); if (createRes.status !== "OK") { @@ -332,7 +332,7 @@ function getModifiedRecipeImplementation( const res = await originalImpl.createCode({ ...input, - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext: { ...input.userContext, additionalAttemptInfo }, }); if (res.status === "OK") { diff --git a/lib/ts/recipe/passwordless/components/features/userInputCode/index.tsx b/lib/ts/recipe/passwordless/components/features/userInputCode/index.tsx index 8ef227c8b..b49d83827 100644 --- a/lib/ts/recipe/passwordless/components/features/userInputCode/index.tsx +++ b/lib/ts/recipe/passwordless/components/features/userInputCode/index.tsx @@ -200,7 +200,7 @@ function getModifiedRecipeImplementation( userContext: input.userContext, attemptInfo: { ...loginAttemptInfo, - tryLinkingWithSessionUser: loginAttemptInfo.tryLinkingWithSessionUser ?? false, + shouldTryLinkingWithSessionUser: loginAttemptInfo.shouldTryLinkingWithSessionUser ?? false, lastResend: timestamp, }, }); diff --git a/lib/ts/recipe/passwordless/components/themes/signInUp/emailForm.tsx b/lib/ts/recipe/passwordless/components/themes/signInUp/emailForm.tsx index 8eb3b1911..aadd55613 100644 --- a/lib/ts/recipe/passwordless/components/themes/signInUp/emailForm.tsx +++ b/lib/ts/recipe/passwordless/components/themes/signInUp/emailForm.tsx @@ -62,7 +62,7 @@ export const EmailForm = withOverride( const response = await props.recipeImplementation.createCode({ email, - // tryLinkingWithSessionUser is set by the fn override + // shouldTryLinkingWithSessionUser is set by the fn override userContext, }); diff --git a/lib/ts/recipe/passwordless/components/themes/signInUp/emailOrPhoneForm.tsx b/lib/ts/recipe/passwordless/components/themes/signInUp/emailOrPhoneForm.tsx index 2b4b609fb..afbe7000e 100644 --- a/lib/ts/recipe/passwordless/components/themes/signInUp/emailOrPhoneForm.tsx +++ b/lib/ts/recipe/passwordless/components/themes/signInUp/emailOrPhoneForm.tsx @@ -137,7 +137,7 @@ export const EmailOrPhoneForm = withOverride( const response = await props.recipeImplementation.createCode({ ...contactInfo, - // tryLinkingWithSessionUser is set by the fn override + // shouldTryLinkingWithSessionUser is set by the fn override userContext, }); diff --git a/lib/ts/recipe/passwordless/components/themes/signInUp/phoneForm.tsx b/lib/ts/recipe/passwordless/components/themes/signInUp/phoneForm.tsx index 58d84f969..cf733537c 100644 --- a/lib/ts/recipe/passwordless/components/themes/signInUp/phoneForm.tsx +++ b/lib/ts/recipe/passwordless/components/themes/signInUp/phoneForm.tsx @@ -79,7 +79,7 @@ export const PhoneForm = withOverride( const response = await props.recipeImplementation.createCode({ phoneNumber, - // tryLinkingWithSessionUser is set by the fn override + // shouldTryLinkingWithSessionUser is set by the fn override userContext, }); diff --git a/lib/ts/recipe/passwordless/index.ts b/lib/ts/recipe/passwordless/index.ts index 0ce48c588..89ed3066f 100644 --- a/lib/ts/recipe/passwordless/index.ts +++ b/lib/ts/recipe/passwordless/index.ts @@ -42,13 +42,13 @@ export default class Wrapper { input: | { email: string; - tryLinkingWithSessionUser?: boolean; + shouldTryLinkingWithSessionUser?: boolean; userContext?: UserContext; options?: RecipeFunctionOptions; } | { phoneNumber: string; - tryLinkingWithSessionUser?: boolean; + shouldTryLinkingWithSessionUser?: boolean; userContext?: UserContext; options?: RecipeFunctionOptions; } diff --git a/lib/ts/recipe/thirdparty/index.ts b/lib/ts/recipe/thirdparty/index.ts index 7f35750e9..2c3047220 100644 --- a/lib/ts/recipe/thirdparty/index.ts +++ b/lib/ts/recipe/thirdparty/index.ts @@ -86,7 +86,7 @@ export default class Wrapper { thirdPartyId: string; frontendRedirectURI: string; redirectURIOnProviderDashboard?: string; - tryLinkingWithSessionUser?: boolean; + shouldTryLinkingWithSessionUser?: boolean; userContext?: UserContext; options?: RecipeFunctionOptions; }): Promise { diff --git a/lib/ts/recipe/thirdparty/utils.ts b/lib/ts/recipe/thirdparty/utils.ts index 3b48b8883..cca4aa28b 100644 --- a/lib/ts/recipe/thirdparty/utils.ts +++ b/lib/ts/recipe/thirdparty/utils.ts @@ -152,7 +152,7 @@ export async function redirectToThirdPartyLogin(input: { thirdPartyId: input.thirdPartyId, frontendRedirectURI: provider.getRedirectURL(), redirectURIOnProviderDashboard: provider.getRedirectURIOnProviderDashboard(), - tryLinkingWithSessionUser: false, + shouldTryLinkingWithSessionUser: false, userContext: input.userContext, }); diff --git a/test/end-to-end/generalerror.test.js b/test/end-to-end/generalerror.test.js index 44c797e2b..1100c0150 100644 --- a/test/end-to-end/generalerror.test.js +++ b/test/end-to-end/generalerror.test.js @@ -173,7 +173,7 @@ describe("General error rendering", function () { { name: "name", value: "John Doe" }, { name: "age", value: "20" }, ], - '{"formFields":[{"id":"email","value":"john.doe2@supertokens.io"},{"id":"password","value":"Str0ngP@ssw0rd"},{"id":"name","value":"John Doe"},{"id":"age","value":"20"},{"id":"country","value":""}],"tryLinkingWithSessionUser":false}', + '{"formFields":[{"id":"email","value":"john.doe2@supertokens.io"},{"id":"password","value":"Str0ngP@ssw0rd"},{"id":"name","value":"John Doe"},{"id":"age","value":"20"},{"id":"country","value":""}],"shouldTryLinkingWithSessionUser":false}', rid ); diff --git a/test/end-to-end/signin-rrdv6.test.js b/test/end-to-end/signin-rrdv6.test.js index 1cb3a6e11..5222f2e62 100644 --- a/test/end-to-end/signin-rrdv6.test.js +++ b/test/end-to-end/signin-rrdv6.test.js @@ -184,7 +184,7 @@ describe("SuperTokens SignIn with react router dom v6", function () { assert.strictEqual(request.headers().rid, "emailpassword"); assert.strictEqual( request.postData(), - '{"formFields":[{"id":"email","value":"john@gmail.com"},{"id":"password","value":"********"}],"tryLinkingWithSessionUser":false}' + '{"formFields":[{"id":"email","value":"john@gmail.com"},{"id":"password","value":"********"}],"shouldTryLinkingWithSessionUser":false}' ); assert.strictEqual(response.status, "WRONG_CREDENTIALS_ERROR"); @@ -256,7 +256,7 @@ describe("SuperTokens SignIn with react router dom v6", function () { assert.strictEqual(request.headers().rid, "emailpassword"); assert.strictEqual( request.postData(), - '{"formFields":[{"id":"email","value":"john.doe@supertokens.io"},{"id":"password","value":"Str0ngP@ssw0rd"}],"tryLinkingWithSessionUser":false}' + '{"formFields":[{"id":"email","value":"john.doe@supertokens.io"},{"id":"password","value":"Str0ngP@ssw0rd"}],"shouldTryLinkingWithSessionUser":false}' ); assert.strictEqual(response.status, "OK"); @@ -401,7 +401,7 @@ describe("SuperTokens SignIn with react router dom v6", function () { assert.strictEqual(request.headers().rid, "emailpassword"); assert.strictEqual( request.postData(), - '{"formFields":[{"id":"email","value":"john.doe@supertokens.io"},{"id":"password","value":"Str0ngP@ssw0rd"}],"tryLinkingWithSessionUser":false}' + '{"formFields":[{"id":"email","value":"john.doe@supertokens.io"},{"id":"password","value":"Str0ngP@ssw0rd"}],"shouldTryLinkingWithSessionUser":false}' ); assert.strictEqual(response.status, "OK"); diff --git a/test/end-to-end/signin.test.js b/test/end-to-end/signin.test.js index 9db71074d..7662959dd 100644 --- a/test/end-to-end/signin.test.js +++ b/test/end-to-end/signin.test.js @@ -181,7 +181,7 @@ describe("SuperTokens SignIn", function () { assert.strictEqual(request.headers().rid, "emailpassword"); assert.strictEqual( request.postData(), - '{"formFields":[{"id":"email","value":"john@gmail.com"},{"id":"password","value":"********"}],"tryLinkingWithSessionUser":false}' + '{"formFields":[{"id":"email","value":"john@gmail.com"},{"id":"password","value":"********"}],"shouldTryLinkingWithSessionUser":false}' ); assert.strictEqual(response.status, "WRONG_CREDENTIALS_ERROR"); @@ -268,7 +268,7 @@ describe("SuperTokens SignIn", function () { assert.strictEqual(request.headers().rid, "emailpassword"); assert.strictEqual( request.postData(), - '{"formFields":[{"id":"email","value":"john.doe@supertokens.io"},{"id":"password","value":"Str0ngP@ssw0rd"}],"tryLinkingWithSessionUser":false}' + '{"formFields":[{"id":"email","value":"john.doe@supertokens.io"},{"id":"password","value":"Str0ngP@ssw0rd"}],"shouldTryLinkingWithSessionUser":false}' ); assert.strictEqual(response.status, "OK"); @@ -413,7 +413,7 @@ describe("SuperTokens SignIn", function () { assert.strictEqual(request.headers().rid, "emailpassword"); assert.strictEqual( request.postData(), - '{"formFields":[{"id":"email","value":"john.doe@supertokens.io"},{"id":"password","value":"Str0ngP@ssw0rd"}],"tryLinkingWithSessionUser":false}' + '{"formFields":[{"id":"email","value":"john.doe@supertokens.io"},{"id":"password","value":"Str0ngP@ssw0rd"}],"shouldTryLinkingWithSessionUser":false}' ); assert.strictEqual(response.status, "OK"); diff --git a/test/end-to-end/thirdpartyemailpassword.test.js b/test/end-to-end/thirdpartyemailpassword.test.js index c04fa9ce6..fb4bdef59 100644 --- a/test/end-to-end/thirdpartyemailpassword.test.js +++ b/test/end-to-end/thirdpartyemailpassword.test.js @@ -330,7 +330,7 @@ describe("SuperTokens Third Party Email Password", function () { { name: "name", value: "John Doe" }, { name: "age", value: "20" }, ], - '{"formFields":[{"id":"email","value":"bradparishdoh@gmail.com"},{"id":"password","value":"Str0ngP@ssw0rd"},{"id":"name","value":"John Doe"},{"id":"age","value":"20"},{"id":"country","value":""}],"tryLinkingWithSessionUser":false}', + '{"formFields":[{"id":"email","value":"bradparishdoh@gmail.com"},{"id":"password","value":"Str0ngP@ssw0rd"},{"id":"name","value":"John Doe"},{"id":"age","value":"20"},{"id":"country","value":""}],"shouldTryLinkingWithSessionUser":false}', "thirdpartyemailpassword" ); await waitForUrl(page, "/dashboard"); diff --git a/test/helpers.js b/test/helpers.js index 5a03eaa01..c07425386 100644 --- a/test/helpers.js +++ b/test/helpers.js @@ -651,7 +651,7 @@ export async function defaultSignUp(page, rid = "emailpassword") { { name: "name", value: "John Doe" }, { name: "age", value: "20" }, ], - '{"formFields":[{"id":"email","value":"john.doe@supertokens.io"},{"id":"password","value":"Str0ngP@ssw0rd"},{"id":"name","value":"John Doe"},{"id":"age","value":"20"},{"id":"country","value":""}],"tryLinkingWithSessionUser":false}', + '{"formFields":[{"id":"email","value":"john.doe@supertokens.io"},{"id":"password","value":"Str0ngP@ssw0rd"},{"id":"name","value":"John Doe"},{"id":"age","value":"20"},{"id":"country","value":""}],"shouldTryLinkingWithSessionUser":false}', rid ); } @@ -668,7 +668,7 @@ export function getDefaultSignUpFieldValues({ { name: "name", value: name }, { name: "age", value: age }, ]; - const postValues = `{"formFields":[{"id":"email","value":"${email}"},{"id":"password","value":"${password}"},{"id":"name","value":"${name}"},{"id":"age","value":"${age}"},{"id":"country","value":""}],"tryLinkingWithSessionUser":false}`; + const postValues = `{"formFields":[{"id":"email","value":"${email}"},{"id":"password","value":"${password}"},{"id":"name","value":"${name}"},{"id":"age","value":"${age}"},{"id":"country","value":""}],"shouldTryLinkingWithSessionUser":false}`; return { fieldValues, postValues }; } @@ -798,19 +798,27 @@ export async function setupBrowser() { ); }); page.on("requestfinished", async (req) => { - const resp = await req.response(); - const respText = req.url().startsWith(API_BASE_URL) ? await resp.text() : "response omitted"; - addLog( - `browserlog.network ${JSON.stringify({ - t: new Date().toISOString(), - message: `Request done: ${req.method()} ${req.url()}: ${resp.status()} ${respText}`, - pageurl: page.url(), - })}` - ); + try { + const resp = await req.response(); + const respText = req.url().startsWith(TEST_APPLICATION_SERVER_BASE_URL) + ? await resp.text() + : "response omitted"; + addLog( + `browserlog.network ${JSON.stringify({ + t: new Date().toISOString(), + message: `Request done: ${req.method()} ${req.url()}: ${resp.status()} ${respText}`, + pageurl: page.url(), + })}` + ); + } catch (e) { + console.log("requestfinished err", req.url(), e); + } }); page.on("requestfailed", async (req) => { const resp = await req.response(); - const respText = req.url().startsWith(API_BASE_URL) ? await resp.text() : "response omitted"; + const respText = req.url().startsWith(TEST_APPLICATION_SERVER_BASE_URL) + ? await resp.text() + : "response omitted"; addLog( `browserlog.network ${JSON.stringify({ t: new Date().toISOString(), From e9e178edf29c71c02853b4ba1da4223cce287095 Mon Sep 17 00:00:00 2001 From: Mihaly Lengyel Date: Mon, 30 Sep 2024 18:48:19 +0200 Subject: [PATCH 16/20] chore: update versions --- frontendDriverInterfaceSupported.json | 2 +- lib/build/genericComponentOverrideContext.js | 2 +- lib/build/version.d.ts | 2 +- lib/ts/version.ts | 2 +- package-lock.json | 11 +++++------ package.json | 2 +- 6 files changed, 10 insertions(+), 11 deletions(-) diff --git a/frontendDriverInterfaceSupported.json b/frontendDriverInterfaceSupported.json index fb1c46a67..06d758578 100644 --- a/frontendDriverInterfaceSupported.json +++ b/frontendDriverInterfaceSupported.json @@ -1,4 +1,4 @@ { "_comment": "contains a list of frontend-backend interface versions that this package supports", - "versions": ["2.0", "3.0"] + "versions": ["3.1", "4.0"] } diff --git a/lib/build/genericComponentOverrideContext.js b/lib/build/genericComponentOverrideContext.js index 03e91101a..4d7d6e80c 100644 --- a/lib/build/genericComponentOverrideContext.js +++ b/lib/build/genericComponentOverrideContext.js @@ -266,7 +266,7 @@ var SSR_ERROR = * License for the specific language governing permissions and limitations * under the License. */ -var package_version = "0.42.2"; +var package_version = "0.43.0"; /* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. * diff --git a/lib/build/version.d.ts b/lib/build/version.d.ts index c763119b6..b3a7d195c 100644 --- a/lib/build/version.d.ts +++ b/lib/build/version.d.ts @@ -1 +1 @@ -export declare const package_version = "0.42.2"; +export declare const package_version = "0.43.0"; diff --git a/lib/ts/version.ts b/lib/ts/version.ts index 0225d5395..a1230a1c5 100644 --- a/lib/ts/version.ts +++ b/lib/ts/version.ts @@ -12,4 +12,4 @@ * License for the specific language governing permissions and limitations * under the License. */ -export const package_version = "0.42.2"; +export const package_version = "0.43.0"; diff --git a/package-lock.json b/package-lock.json index d04cc06d9..b6e23c86c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "supertokens-auth-react", - "version": "0.42.2", + "version": "0.43.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "supertokens-auth-react", - "version": "0.42.2", + "version": "0.43.0", "license": "Apache-2.0", "dependencies": { "intl-tel-input": "^17.0.19", @@ -23889,9 +23889,8 @@ "integrity": "sha512-r0JFBjkMIdep3Lbk3JA+MpnpuOtw4RSyrlRAbrzMcxwiYco3GFWl/daimQZ5b1forOiUODpOlXbSOljP/oyurg==" }, "node_modules/supertokens-web-js": { - "version": "0.12.0", - "resolved": "git+ssh://git@github.com/supertokens/supertokens-web-js.git#369d66078ec4f2669508485dd066d213ba076b89", - "license": "Apache-2.0", + "version": "0.13.0", + "resolved": "git+ssh://git@github.com/supertokens/supertokens-web-js.git#0ec39f949fb2d000bd4aa62bb2250204725a94a6", "peer": true, "dependencies": { "supertokens-js-override": "0.0.4", @@ -43370,7 +43369,7 @@ "integrity": "sha512-r0JFBjkMIdep3Lbk3JA+MpnpuOtw4RSyrlRAbrzMcxwiYco3GFWl/daimQZ5b1forOiUODpOlXbSOljP/oyurg==" }, "supertokens-web-js": { - "version": "git+ssh://git@github.com/supertokens/supertokens-web-js.git#369d66078ec4f2669508485dd066d213ba076b89", + "version": "git+ssh://git@github.com/supertokens/supertokens-web-js.git#0ec39f949fb2d000bd4aa62bb2250204725a94a6", "from": "supertokens-web-js@github:supertokens/supertokens-web-js#feat/oauth2/base", "peer": true, "requires": { diff --git a/package.json b/package.json index 6fe6dd23c..3ecb5992d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "supertokens-auth-react", - "version": "0.42.2", + "version": "0.43.0", "description": "ReactJS SDK that provides login functionality with SuperTokens.", "main": "./index.js", "engines": { From f34e0c2e2b3e6d6bdca78a24e1e53e3dc9e90613 Mon Sep 17 00:00:00 2001 From: Mihaly Lengyel Date: Mon, 30 Sep 2024 21:00:37 +0200 Subject: [PATCH 17/20] ci: do not forward browser logs into the console on CI --- test/helpers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/helpers.js b/test/helpers.js index c07425386..19cc7ef2b 100644 --- a/test/helpers.js +++ b/test/helpers.js @@ -766,7 +766,7 @@ export async function setupBrowser() { }); browser.logs = []; function addLog(str) { - if (process.env.DEBUG !== undefined) { + if (process.env.BROWSER_LOGS !== undefined) { console.log(str); } browser.logs.push(str); From dda829299bcdd8afae92a6251a590a4cad0bc3da Mon Sep 17 00:00:00 2001 From: Mihaly Lengyel Date: Mon, 30 Sep 2024 21:38:20 +0200 Subject: [PATCH 18/20] test: improve request logging in tests --- test/helpers.js | 38 +++++++++++++++++++++++++------------- test/server/utils.js | 2 +- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/test/helpers.js b/test/helpers.js index 19cc7ef2b..6e38874f8 100644 --- a/test/helpers.js +++ b/test/helpers.js @@ -798,27 +798,39 @@ export async function setupBrowser() { ); }); page.on("requestfinished", async (req) => { + if (req.method() === "OPTION") { + return; + } + const resp = await req.response(); + let respText; try { - const resp = await req.response(); - const respText = req.url().startsWith(TEST_APPLICATION_SERVER_BASE_URL) + respText = req.url().startsWith(TEST_APPLICATION_SERVER_BASE_URL) ? await resp.text() : "response omitted"; - addLog( - `browserlog.network ${JSON.stringify({ - t: new Date().toISOString(), - message: `Request done: ${req.method()} ${req.url()}: ${resp.status()} ${respText}`, - pageurl: page.url(), - })}` - ); } catch (e) { - console.log("requestfinished err", req.url(), e); + respText = "response loading failed " + e.message; } + addLog( + `browserlog.network ${JSON.stringify({ + t: new Date().toISOString(), + message: `Request done: ${req.method()} ${req.url()}: ${resp.status()} ${respText}`, + pageurl: page.url(), + })}` + ); }); page.on("requestfailed", async (req) => { + if (req.method() === "OPTION") { + return; + } const resp = await req.response(); - const respText = req.url().startsWith(TEST_APPLICATION_SERVER_BASE_URL) - ? await resp.text() - : "response omitted"; + let respText; + try { + respText = req.url().startsWith(TEST_APPLICATION_SERVER_BASE_URL) + ? await resp.text() + : "response omitted"; + } catch (e) { + respText = "response loading failed " + e.message; + } addLog( `browserlog.network ${JSON.stringify({ t: new Date().toISOString(), diff --git a/test/server/utils.js b/test/server/utils.js index b568ff9ca..d0660d58f 100644 --- a/test/server/utils.js +++ b/test/server/utils.js @@ -20,8 +20,8 @@ let axios = require("axios").default; module.exports.executeCommand = async function (cmd) { return new Promise((resolve, reject) => { exec(cmd, (err, stdout, stderr) => { - console.log(err, stderr, stdout); if (err) { + console.log({ err }); reject(err); return; } From 7697259c2582aaa74e723662e2bf15f9a12f3f59 Mon Sep 17 00:00:00 2001 From: Mihaly Lengyel Date: Tue, 1 Oct 2024 01:41:55 +0200 Subject: [PATCH 19/20] test: update test expectations to match new node logic --- test/end-to-end/accountlinking.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/end-to-end/accountlinking.test.js b/test/end-to-end/accountlinking.test.js index e676f6eb7..daa974cc6 100644 --- a/test/end-to-end/accountlinking.test.js +++ b/test/end-to-end/accountlinking.test.js @@ -373,7 +373,7 @@ describe("SuperTokens Account linking", function () { assert.strictEqual(new URL(page.url()).pathname, "/auth/"); assert.strictEqual( await getGeneralError(page), - "Cannot sign in / up because new email cannot be applied to existing account. Please contact support. (ERR_CODE_005)" + "Cannot sign in / up due to security reasons. Please try a different login method or contact support. (ERR_CODE_004)" ); }); From f5a402fb473b24cb66746154ea7502443de11a38 Mon Sep 17 00:00:00 2001 From: Mihaly Lengyel Date: Tue, 1 Oct 2024 10:56:48 +0200 Subject: [PATCH 20/20] chore: update web-js dep version in lock --- package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index b6e23c86c..65bb69a62 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23890,7 +23890,7 @@ }, "node_modules/supertokens-web-js": { "version": "0.13.0", - "resolved": "git+ssh://git@github.com/supertokens/supertokens-web-js.git#0ec39f949fb2d000bd4aa62bb2250204725a94a6", + "resolved": "git+ssh://git@github.com/supertokens/supertokens-web-js.git#84a0923ee04985a01bfaadcbddea72ce3f280f5d", "peer": true, "dependencies": { "supertokens-js-override": "0.0.4", @@ -43369,7 +43369,7 @@ "integrity": "sha512-r0JFBjkMIdep3Lbk3JA+MpnpuOtw4RSyrlRAbrzMcxwiYco3GFWl/daimQZ5b1forOiUODpOlXbSOljP/oyurg==" }, "supertokens-web-js": { - "version": "git+ssh://git@github.com/supertokens/supertokens-web-js.git#0ec39f949fb2d000bd4aa62bb2250204725a94a6", + "version": "git+ssh://git@github.com/supertokens/supertokens-web-js.git#84a0923ee04985a01bfaadcbddea72ce3f280f5d", "from": "supertokens-web-js@github:supertokens/supertokens-web-js#feat/oauth2/base", "peer": true, "requires": {

    9EIan`0#%EiL^9{& z=#&dfRwzK(mQS17Z|(0^OKcf002tK}g(0&ILdyH`8GDy|mq~^pPv_5@Pn4bQ2HL^2 zbv3A~K-XEU7!dd7;AP?1B4- z9i9!bni6|9aK?Dwb@g}h0ttL6$g20MO9GH%<7{KSnUE*Wv@wgLRT|ZA%1o5vfZ5w7 zvj+Ot(gS@dF zf}FV>@6mvj%2zE|r&U$z36?OlfIwz1?&UiI?@&Z+WoM*TjpRKt2qDlCVVGMo1QFy- zNrex;G%DD4y7^i_pf2Rmu%mZ2L^Z{LS7}lr0ztf(Lg^Ms184SVsE;Qye)1#gxm4a^ zw0}um{suwV!31@N}f5rnaEDq(EKJO#{^YCFYMP^nzy3S1PH?j~EUc^Ny;r%B7b}mV%&W z0_%Ezdw7g4D%?b6AvwweEWlfKW?(-S0gQ%JSMFPB2N(;1LNUF&eU>mZTE{@gyo?~D zx0XW!X0MafYX9^BG>LQhdmB&}W!$)QObqvo_nP930u}gaSDZ9&;=Jj{{sgZ2w@-0Z zVUC66V_q1@$n_3o<>xAY;w_}~bvH4dLZWqMPY6j)2AMML4*dQ`LUxg}>{Gk4`dVqh zJ;>QTHyslU0sOL=Q3V(p#K`ug>Rfyv-48f{$j+O6qz4kNY^rCTRV||GDT@Hkgt=$r zuJdq)q_6)zvHu zVvu@hR&El%)sL)ODQcZ~b=|K9>&NqiNLh<$9d=ESxWgaSN@d{lD1**ih z`~g_(wrZO!8rZH5NS6>q(((ZyF~vaiS&0ou&x+c^(q^22non$|;xCh@e;Ap}ZX$}z zboA?D!vohsU`Un-L9RAH9Q}ijHCLGRJLYru3b;z_52e%MH}hTYZgR*v0C-Dm*_xo= z*}rNUY$MaF%cKaM4d`U4Vivv0)v>UBUea1@`I|03Mru4r8SImO6>Re-ut&{Puu9ma zSq9Xc#tu)kb&v&ZmL6hWmjfaB8Ag-1r21Y7O#dy&9>44PzPt<1QwgXP^_!bYO{_rt zK}?82iB%1mEEYz~L~(TMlk3pm@-y>pTqVY-m@=o)=jv?3zKiwLYF@U4aM+PH3}Fjm zC@(T3+^x-Rx_t{7YEx;wO3%mLK>t0c3z1!EI z&qW4_VE1qRi0m@OylYcoMmvGsN*_#~KeY4sFUseQSAG}m-!MmZXz*FB^jPsBZ=jK; zPV=vSgGWu84F^jmYp!&|6YJwq4Hh$lGJ0$E8f;OV9_>G6aX_%Xand=|i~ z3R5b8d1MR#0GY%&hKPs+j?3>g-tH=OX5lGt0|3pB%Eifib=C-osS>$^kB$CjFIeT) z-T%9M`JX)c{H^~&icpjLJ}*+y8swL@UQ2O$VNL@7h(FdY{`4KOOFC-?ncj&7rP2+; zXCX)MSzG$7a`tQ0JH zk~PHr)Vjf0H26JaGF4Qb(pelCaG*{Ag9SrpxghCypDeX&$eoK8)4#`4{!>l2+x!Db zU9BYLjh^LF#0WMV;$cdm%I6ZYHQdp$J<_4IQ9lNy(azB$`yb7&Wcz?XTIXZ1b7i1} zx2o}?P=_l$;RYmrf&Zs32zz>`i5@#(qEkPLZUsbjnY?Zm` z?(>IH=rtU3fS&;1?~++-yFM~KhWtJ{NOGF7XcyVDYy03W@*_~+D%&jj!r2BAr?uHH zn29$V+bb45!e(fQ?W`^{CT5_9j2o#;Jcp!bfbxj5rk9?9tID1q&_M!>TJyc7T9VGj z#{r@-8ff~0jSWUy+~R_@iv$SRW^NN6BqMH;`yV*yEt;dtLYJ+d-)qpT<+ILqh7DE# z8pUa=!8SdkA*bk(S0Vgn%c^PeoLJvBG+m9jD;RO%Ap{1nULZ?%kKI>_8_ht1bjYa$ zyj1SjAupY7TyUgS2mvaCB7*)sFZTWcv|jq>I9>r+PfT1rCW{zG5X4Z2@+Zj=9K2o_J}aNTzQ zN;H>#zty$NaX0(Wsb;!K9h!8v>ww|21LYkB8vvOpD9|MS`dsHlQ>p^qYr5$=TgO)r z6e*Yf{Pxp;5Xl46lT#8n3}|I;GP_Q9zv3@+O`7`Q@Z&vpG(?;0+99hlP$7aktL-Xk ztUsAQCoIw6>HaJoXjDI@_1-9gw)=Jc!=~Y!nv`AoAz}L*!*X8u z6zt!QjMApEG})=+dnqochI+uAe=8RU zjz9%x3oL2vQ&){csFFxDzVSw!OPvCSjrhO7GkZ@<=6zNIqfK6fwhSSwqG8POPJO=` ziVr&u4^gBfOl|#dgP@uaZrb+i`vbkEyPDfMm1Q68Ro{Xzr!h`U*7^b%d^l4~Krd$Z zAYE2_R+`-l+Q`*y*CWllEgpOm$p@16sbXW^*gR+NeCZsqhsH?Mf5#Fl@;)l{?7h`C z`V~gD=|D78OPnlSnOST8WYs;Blsq1`wNxNG(Du1q+<~9V%fz; zKQMIpa>`z#yl(f{Gnqa%v3fWAwgrJcA|GM!6jl*)iYYV7MgkDc?t$arfB_hN5u;fg zk3UuL>824aR%ukDcTBkWll3fam$$?0nU$M4U*AswgaUsW5mDC62alYfncH~o7xVaV z)2s_qARTb^mS_q07ljABZcB(8e(sHT_ea^yX$a&ti?sGp@*QfN|E+aj&w+X+jNzzq z83a#83%Q(1M)!!c?M)6ER@tH*K6DlWYR={mL<~@#sSP|jF!rM6=yyvu`rdWV5+H{6 z7Hs^oseY2U;Vrzpe!Bt5EvoT>OmCFoK2ij|FAdRZi5A`{FKX_ir%RLm9jW)I z88%_u?CZ}q`!Skq@?K-9pDa)S64T|^-EO?jFdX6uq=CQ1Ap&AVt>M?F9_s}^Br9Gx z(0^SJI$O0tnAJ{TG6THNV$5l%#8E{I*L?GH%lMJW#5eJD!!sc3xpFkE%mdocF?_h| zpLgk8??L}Tk1}&@{IT?G3KjSd@ocb{rpHvvK-$!;KchzOO?5f`I^9}5P|=HIK2suq z2h{e`Kq3^ObA~PeM0T_S2tJHC+3c7Ep+}{QWz^bPA1as&`}Q&M2LIh$KO`Cy#Y)MV z?QRvP`b#ApR@|kd)}Kk zbDXKfRTIK7@Oek*wYm=83txwFznlIJSXe^Cvn$3DEhzu}0PUT_Zx0QNGL5C92=)?@ z2XjA&8U;n5B!(7?QbcRo4P&}_P2_u|7~%TzSc#%DYrv)ZY{oq@rV7aB7Hz5wfnu)L z^Q}>mKxTxL(CQda2x8A|rc*v8rW$bRxH%@X-laljXtPiwnJrnSLc9XUSxU6(Su!ZC zfhrXMzHY_WoAKTdYn5sH#bF=NrBOW0zcamd?6+=x9=@ZyI7?H7-m(7Urrk;6>%=1P zvF(eub=ph|ht1Dk&bsfE-ZQO%@o~%vT4x4 zZ#6utLbw~4h&-Vg_sq#z%~M{8yCB)~ZS8h8GV40(|}+o>=}}+SS>*)&(w~?EF&wkm0Hg zlX|Hd8rvxf-R!pbq`LE8n97)RwinHj8Nq@d)aknMwN9uwBxXTXs)5AjOF}x zakX^qQlKFc)T%Ph!|EH15c~$W70z0A#CgBovr}8N;O0@ggl5ZL(G% zF6*&6b2Xexwg2VpI`*KpO|gKXAad2I1j z7Ta~8?VCh0a>-UVBlsxoRR1jlw&QYN$Rq#DyAu zb~oGUqLT@*5bOU&T{35^Dw1L#U-?US(7lto+~p$Sp#3PiHW<;$FTHieYp%vGy``W0 zY%tox+KvC;Dm}3+etGoumFz_cBeSm%IW7WLbF`9TJJ(lT+V>k`R9$A-3_o{E4B}=ffB-cGCx}o0cnv z#4|aLRskTtuVN3O9?FhH@Z|B66JLp>v)0QfLb!@O9o{ct8$j}IDYX74;(PPMe9(Vk zPhB0&Vl1McSjeHG`wwx^l5c>ai^Q0tKgZb-_5^!8!v`y6pom@SmFoMwwZxu)n#NSl zyO8(k3Lh^+E=M7NZov1_w*&}u>r?ry_@c3$-%rs9PIa++)Ah5hRNevVvaYxLOYGx= z`d}poz2Bl6XKQgwyQgeM#D>{$gI+c@VumJ?>LiTR)*+dm*5EolYJ$Q%1-1PQbCI?T z5Cf;R5==+T;e0>)z^2dL|0F#BudNTz18jiv)wBK0mj)lE>Z|K)P^RN}Fm6%CmD3O@ z&YI_PYJz1!HmElv7t(^sHuuk`B*XTU>zU}(^X$?siQ!ChVDxq}r9Z58?LCY3Uom}< zVX@lvT(J^9gL~>H^hsl-3v2_H*TNkH0%gvU*BKVYxp9W79s#Dw`MpzG2^OPSs zcz>PfH&Iwb8`sjCx^>4+ngMLZEo6E15|f#++u#GAT-;thC_)P#jGj|;r`;z2+7`^o zqQ@OaTZH;(s=lBww8JH#dr=A1*{>r8{CyInkk_;Sq2FC*ovQo#>7+lyKag%&YCv29 zw`k42e@o`hL9XMBwp=LJ8?h0w!bz!D?6%5ZxSl$YW+>5QoEW7{s(u2aPuBD>=U&sv zKweZ7U{&H8jPQ=JK4()Fyuo@4BBw43p^VD1SPa7(LM~GSXD2~zNS#rH+GcL?GqblT z^gohc?j+jjjI3q0wP^1OlowLy0d+h(>i7)Rdd|U<{dZjdBMaUdIEyma@Iv)JiMQ$= z_;kj%g1ia?{eLH!Tn~`!&N4|TB3(h zVnpgguO+{itr%VuC!2yWV$WLx7-PDMD11u7j6#1k-;O3Eu`>~l2rxRKXuA?WeU^)T zah-U5X_KnwUDnP>sPLwyXV%KxdC`%7ck-lS)+a&N>dz?-4q~d~7tUa4oGOqhO3#7a z7Hq84_E$H7C!JSC6Fu!-3w$B_Q~2B2gtGZ}#KeI$4U#MJ)2{$_c&=>Sr2kWRmC1Pw z^5~@g4#M_+i7ESGR4RqDgu2W6ufiJjM!eQ+!gJ4xmQwpSI&pmA@Y+eaUESeAWG8y%%3H9)>hd0#MThChH^+Tywe@`#(P| zQVG08T-DUeokZ!Wi=93lR@SknG4dpTs`L{IC~)kY3v&|Hk_*Tmm|K_~cdVrkE`p~Q z(a(%`&OKJ+czBWdtYshyzU8sJsMl1ZvSH29U-Wo(dSpBFv8-Cv_I-}(6B)Bg6?-uH z=yHr51p^Wu-TsF<$(!-&K6DkDVyj%#s-8?9hcEhRze6{ouA@QT99Tl9sw!(nZPYu@ zL+XM+2bXC#U`BFG2zK!PC&DahIWo+!Fd8Eabr|FdeJftk@_zbfzDqwf*)t|QT7tkn zxkYXVwGm`7ZzR#*?G^>poV`yl!e_YnOs9Bk=VX1ZwUt{`B7TZGfR^m8xqSM^y~^ja zvut7g(f@4)tZ`|VJu`v^eoJf+c=lx~PotXad?aIwLp9(upH01|OSG$-;n&7MhbjKl? zUda0wg_L?Q?%*nQJ_eet~CJ%Uvut7AnL<7G$eP3i-&;A=zaO1KF z*I^U!SV>QM#9BhmLcZCQG9vkc}V$F@wd7PcL5;99>&(SYgh!^ zKDsn)X$iK+d4!Lw63HHSgd&hO zDCC~6Zz5@y%9IUBmiazQvD_QeB<}-%f~n$FGF=a64rep;5rOrRg0A-1NVsLwQ%TMt z)19WdH@N-x2v8|QF@P^r zXQzI!U8?sHwP>tb*Ykbyl@b8myLBt!vu9pj#H%E&Ch#o~>)#$IwoRr7`U(tm&5Xa% zjg@tC_%G7VEZEBW;9VI$!bORL*zPERl8O1g06K>t3or2D2NonFic@7Ke%5rzJ#NKoc}P` z-PZ73C3o|1qG|0~rmZpcY3+L%I3LZC-8u2Mke#njxVm(;1|!I?U!VbgAd{2nWWF;! z>~5yM8_%)*S7Lh(_}e?+)3M~0f>&8&`u^uce4=fh>Gj{TP5&4~{A-U+#S(KedeLX{ zG$fOE=Qp-L-&#fVA{3 zDc!J0iFCjF6`$X`f53j`*36l6&&-vwm#IHl_2#y1vaG8Omtk)k(WeEM@=cq)&8eKI zhySss$=2mXskcCWxqizx_!DUQ!Q*vRfA9eRAP7Q$PXl2nuN;9;gnex{om^ksRvxvi9!Z9n7{#2@F#}3- zSZPQ4(iXp|KCLc-Sh$A{F%5~EBr$Ft6O^AQe>KPXv6FtVgZP%;*R^`PZ4xg{IPt4> zWF!d;WckHM)fnPh+R`s-X4Ze1gV-EN-@@@ zIJ8d@9>IropdH$+{y=0Ee6xoF~nGHix&hcGeWm~>!He(DK4 zHXXC$%Hl>bf0bMf0dN<_qd79E8V^Bpew91-rl9Tle4^AyG1}#=QdD3`G zS#k4Ak8$F>GtrjkLdHosGJ&{lXYmI8K&B^{iEt&NIuREUYpon= z=79Zcon>>0)vz`QNDgbC^jLd|Zb6iub@; z<^3temzs0H^pR#c4E?()kw|BzV9JL4^Q~3oV84e;kEPIP*d4EgEGcZxAKu2ezZ8HU zKW+Tld3njab$#r)Hhn}07U)M0T@u>8d|k7bwJf^5$AOl|(TF41HGgb@x9Y3#LM6*^ z1Sd=SUQMX_do=WaCJ;92>iTqv!seE(RzA+>ormWh3C8xLkBCH3u%2Rdd`4JKU;~s2 zPVjh#g+3sLv~+U1l;BV@0irt4l_h%a0=K8^PLH%e=M__lp2Km+dcn=PmCLOJ!|!He z-LOHFFuhc?`%E6uhDa&CJmJY~ z8X;BOG8W*6nJIXiWeaOnoHduqXkC{a`SUsA+>N$GqWbnvxNG%z`qS`;Dfj5jYp*X zIA{Nz3E#Af@tM~%ez<#DA}uj~44j9^W6nd!r$hPM9(5*IgP7g%E$4VfMp^XGm4LV$ z?Ik((1BXfM0PM`erLGc=A!sCIB9o30Txz;oi3LOx&~kvX^4ohc0JT56KgmZC1W-=F zO#-4e?wD6V+B0oa348i5TXu;!*l1s`(>#RZ@EQ7|(6=3$GVE-DGn?r{0=|)#K8HOo zEpsK$*j*U%HMk5nb)|{x{3zLFTcl;PBRX<2F+0m$7z7_gq+#NZXRi4M8O<((+gUad zgEB`cmg%mCs4?ms0#C~j@n+Nz5Fnv^Dcy6LY zn}U~bgvo%Eva%C-B9gyI?5CGdNSOa>=fp`MkzLoM=10%dpb*wf=3c^hRi)@#`b6>& zs(E9zBM5#(_-8s=FWACLQJ2l7S~iTzlAKQF32RSqxog<*b-A?h8ch|8RFR$qtVY)_vXbm4sn=V`p<| zxu4|$>FHt_0pSWAD+95b_dF+%_AG$AR|+&)z)J4Z5Auhy~LRbAZ{NBrae2nSghVR9%TF@klF@aYl@EAw`WHFKX;Ic zFN%UA7W^!Ajiji;pfR5~dL9y|cd2KF3Y}4KN_vNBQ2bU_T|L+j4N6*5hy&6LYodM^ z9EUD9-OP9R8rthG3c7IqJAE8>I(qTq z$Nj^iXx?wfu1Zt+A{mCzJ3bIVQBLbB^reACDb-v|Xt zqlc@TPJ^)^QaV>Ak}neXn`l9Vw%M!A%3Rdg6pU09bCq%KQ8l`stE0dB;DWWE6X#r( z9(M$U{U(Z`ZQUE`No#LgPHGcL%^aEWLXW&iY93Q!IT16=e&w_!%hSta;@1GJc>Z5h zBf-lxM<&Y1y?}5Dp{PB zz5Ia&49On`7a$;h7d_&eOBUd#O&LCauWaT+4jGK%?q*Wip9ps zYoXOrB$I~8=3*XtyGHPVIgIk1&|Xs%GA3{8@fJ|JRocSxxnXvUhEX5YGE0r}7c!|^ zXz*{uScc-c0Bp%F`js~I>ASj`xMVbc@6r(vetl$DkR7NZl7AtJB$HoPdrgg~+tsLr ze?~=z7kS4&8;PQU>y>~B+UTuJ!(?Og3@H?>6#e#miHuf1_teHF2A!s1Xg>5(&`SKs zM8EMO^A0bjXm=a1fP&u)I6J(&5R#Fj1#5)IMkh*SWsZ6+D#CtsKOyq9eZl$5@q{VS z(GtA`L0&LS$@E|{NFcU9%v@qH0%E?$hF35r2_Erg9)iy99==ky>=A0jnwXZoPCUzo zH(?|^wAYbD7L7jC1W9R)n{EmRw zF3@}Yowwrm0gurVFl|XExGM=QTRESbp$0jwF8$7C&!JjZs3(!9VEl*gC!4q>@#Fll zhW<7od;ZVdF-%#weMT3TY(Ym=oT*Va*ZW*EZ-}=AGd?NS(QqqUrH*FuBO3{mBR?I; z04^!-Sz0F;|K@qvPJa-iJMl&GtDqn6wxIVz0_OlJ(XPA4}8@Cf|Xo}_XJ%$}iZ<328iTInVZ@-yG- ztBwBP^hi!mjT`DjpQI}98BNWG@L#UhD8rYSKVMKfDX)wLNZt}M!O^N8=-t0>B>$F@ z&s4N#)KB)ggWCk%#2q^&H(d)h^WClZ2W5_f@zF*fF#A@4Fl3yIF?167n+4sCOyp!zev&RbF3k+x;#4r zf@&Y>Jl8rpI&Xej__i!!(MY4`-4D05go2GoXKPT0#ixx~`LnMsCu(nYbGzEfpcdny z%HKk8?G5f+c`^0>!$Up-hSERY-8Y-WIXVwSUy8~Rc`2kQSM-e=sXklytfM&_gNgIu zY;NB*KXX?U(bp5B4VuWC)0F3F>Y^7Ge=88vr`g)?jN1Q>#maW{N}_AK*v}I{GVwJh zD#1~=ItHm!@AkLkD&zfmt$+E*worTAm$SBa^YH}&@Q50ex=_{kq*6dY_+~kh0Gc^$ z;kY?h*~=SRM)uu|l>`oPJxh&5j;v~iE3m!V@P3ktm)QT| z0ghWvRhZsm7$n&X<%IVA&mNU4^~_{}e-0yn*dn7i{syFQ;)s2&DRe|~Ff2m~S!I&o z3KmWDee9)cCTov*?%Y*AcsiIi-TOeLE%Gee%2?CEbt57(UqUF@a>%a^9m@GadXW=z zUs`n$=4Ewl2tB$M)ZuROE%KOcyI@cWbHh?J&9+T@7Ax?6tEi)l zZqa13?5k?RDckvL@LQ3GyKC8HyRHyvOA8Y~)}$#Gfd5~Pnw1pCiUe=Tb6Xf?X7{D; z-j@_2)Yco5ek0FAgwK<|_?RRAF%$RxPPU&ed$CW1wxWvH_%30TzeBy*Mm5H0Ddt`$E}b@&j$`XmzM73&>y`tM;h^1VMnX z!NQypCC86`Q{!R^J|Lm#_W&4lwqL^J`|#PL=urpG@@$y05b_8{H||ZPP~evm=S#_i z+eJB*%pHv31w7U3&4&E#MEi-B!Be01`v8=L2MEq~7pfDHL{#T8N@S4UDD*cQz z2A9tlf0acdPNazReJovVwsu+^iMrA2NAe<@>%Ry|CbwxrG+?teS-I|35yp{}>orwKun zZGEYlA%_B=W9Ipxlk)cvm?@P(daz-*GRsJP(3hrabqh@U2~5s9u0Gnc1rPqVi*U%e zRSki;#VRmGYx3~u7hu)SfYBur*EcPJV&>eY;Xj7Tx-JYj5`=1&v@%;ukawu=Ov)`A z)$?PpVM1eqJ-Ssq1eWQwWWUltF(91lY)YG&QLGHZMIoyElA{Cr&K*INKj*hFvz|W| z+Ud$5=r?np5|3Hk9}`h;YG?Yl;XGV7UmEb$%c0YQ$=@9kR1XvhCbdt`N>*W%RSR^KjG7^w8 z3yqU-=4T5uxB#ndx%_(P%;)({VC|7_^24CEop-!uTJ156fpuf|96-IDO<}I!OTY@% zjuJ@;i`Axtvm856I@zZw@1egaJ2#(vi8M=DVO+by+ ztLd?zTPZ)^+uN>AYkM$x<;)fV4yeO{m^3%c(Umz>+u^;5UX!ON!>6TghSS?lYVdea z_9@$=TuI=_v0lE7&_k-$3%Q2u-`KIjFRDVGFNjX2_j$UhAvP+ZUsb&LPk!BK8dHW%Woq3cwiLuyPCm_v=RBsbwY9^FFZqWH8KTvitJ;pj$O?k5N z@}RLqQPw;-^wQ|v4+6W)Z_0m(W*0}6yFh=7nYbxbon!sFzt@^_PJk&#g3*o zy_m92_6HTELpB9JW(~xZ|9q8EGo$!5Mx}A&e8CLxHg#mbM*B|)n~71XLt;D8k5D)M zl!E^dnE>keG(S(C$r#Vw#-+b0xZ(Y1Kr=d|_=PY!Eyo81$~zfG+XjAA#n&nUMV$S~)S04@U}_%cuFYydVOOxGpa-uKKp-xR{0h~&5Z zewjCQ9TgqY8g!`SB2yLXNFeV#4*(kl^Fzr6b!N==r3RH5q}BFEp6y zo!{CGrZ?nm`VN=1=~+k!XY|#VbkZVvt^0cj8E7WseVwG(?58gjnZegmXk@IW&5g3q zAavDEDI_cmnukQ;#D?~b9=b?E+jA2(fUP=Yfhcd3A<+c+yBgd%VK`*#-5K}l8}s60 z849Na`Tj!Ox+>$fMRcyLG;IN{t}$P4{vD<|?v>JLN=0~EoR_eWIpzX7Q);@L#xv;6zlAahuYmK8{YC< zp6&aKN~#vU5A*y-Un8bY_~>z7nIzy)9XHxKV&=Nm?5*#>-$I3Q@BF;;J1T1aQ1;u+ zX7Tl(Y}eb4a{q_Z++9I8?`sCiy|fsWNCs#4Hf$=H3!0-RyB=VVu*L9nJS2pe6kf9mE=Oh>HnQ(B{TUB1JTIFl z)x9`vs0WUB(UW`C$&GEiIbz@BRM6Z%q6t|JLcjH*bTir2{h@2T_RtuDBv@<@SH6S2 zYg$Pm&a2$c%ZZqv(O)I8-c-2r5M})9l&0O;;%dxgGpRwZu+U|Ge4+6s2xd0=TzyR7 zKO>~U7Ke4Dkj9V%$wo!=>wd~-lEFe-DyN6-!vThWBHDU+vc1^or89!y7yV874E407 zdESl-X<=SV$G;qJHFr)_86bGiK7n8f=N|a(>j7(9tX}<)L|fSJRr%3orLN`kVdI1M zEBUEZjaYEa@XT!R13Z0Eiwlc5Yn~XKqK?y8=JUg;l!ZDE@fpuZKAo97q!j|mKQV4= z^uir$)# z_`j0JhxCklzTPSh4`h~=cktM?Pg11L_ii!b7Djl%G92AYC@&o5(eOW9zIgq)gtquq z${;j)g6)05ywF6e<0{D>(8r=|O8c!Y-^6LT@4HXhf23ulKlJ1CGY(X&XIN!(PeiNz z%lY&EWiyn2vzd9ukh_i8&(r|Q9{-PA*u_$$5V4eP_SgbhlEGssZqp=r-hwG1&B*~- z29pb&%H@fUG2ITr`DHbY53>n%TgL-&hDZt&bakVnUwzG}Yz{qwpopv2k*;yp-NMs- zt3*S)i^*FaIVxTL4=!DU3tMvSGAN8`l$D`2K2-jp-n5x7|K+)>sDdhnI!vO^ z7W#A2p(p}KY8qcmSy1quVmelfj$dx7v>TFjL8W9|PVcne8pyb4Wv6|VD&wLfUrf{i z*glT_ABNFp6Po$&Cd4-QAs6Ao@ZYCc0*|Imu9bucrUGulm5WUcBuDAA)L19P`33- zhydT_93!=Zayxyd7V9g=WE(Pkmz%sES$K~b$q?Eq;k-UW7E(G23$tWypIsr-g~f(U z-+9RJC!Udp6mzLsq7d>orcy0@`Sx91zaB(tOXeYFJO#WB`ENZFe~gA=xh3UI&pf#l zgkQ$rDiQbNN-UAKnN&RrYpfM)6Xz1eI<7>Uu8RtVzg}A}uiEukku1}&~sR9%6!P%J}`Wwqzr^@aJ~q3k8+0tmg$*bflz&>r&N_G#_X| zmsZ|@h|W~Wh2FR2zb{`YuXW9(AB?{qvHl~|C!f`vKJ)zTkw#B)e^rqNe+teKKEqy` z2s{o?&4hI7*W7y&y1t)1p%un6PIemuuN+i#%}YET=C$s0)RdGsElR5zef{sYiAWE+ z(@7-d>_Qduuh0?OUJeOEe@MR_DR64?0vU(ElC`L`a+alFN8L^_c3!v(G(d94LJEy{ zmT%CkbB1ir_If0BPv*svWWlaw%j&pZpnY*U_>PtErYrP)z1{@pyv@GW<5Dtgeesyg zmJWw+kAN1Ezm^2heuSg#uTY@hWT{M%f4Q~SO?qyF2ENy5k=E4k?lC= ztr<8*z#h>#Bx#yAaR3WB9LgHk`0hL5-{#CLItmhd-jV7U8unbIi`SJJ>4lSuX~=iKl-i}@dmJ8L?s_vJbO1dH_k_ESeuV@xuR(J|t;^(Z?SP?Kuz2{NusSt;jJB_JG0r34M&gXkO9vUGRKTH#0 zseaIZxDj++l^{23Vp zN?Nl}C!P66e2%aJ51G^G520Ump95TE5`MRjJb$U*(JKby`LGxbD<$EOp&hlrfSkUx zjQE=Ej5W5yMrzwFCBO1hU!}*TeL3$w=j}#L4)o74Y{T=*G)IXjPrmG)k>m1&+`0c%IxcD$>lnZc~ znhoznlN|@Z`~L_`hi%dNn>ePebk@ zfG+c;lbk_bjwiIkYP>!_=9}3(6dgJ_Ng=b6%Cy0;<-F@S`rSS4IVn^fap4=!1P6D& z^9TMAX;^CqojMxLjpxJNJ`2EoSJe)V;kmgN%x}(h;8BDU^{)+UHt)s)h+MP_Js82% zS_Zgn`Y&8c^ezw*9Q%>o;t^Rl=exbGj+a%hX545=s%7Tx212h2k3aC)CRbTVxBd^G0G;0KbKOjy>J1)H%CGs7A# zy&Lw&hryHeGGI13p{zRgL%a_pi(K&*!*%Ohi|*$2a#TL)tai55eyQ6D78^1=sY86a z9z@lUAZ9<%h?Bm*;iZfGA)|_k%r`PSi=ogJ)29N0fLe(#T`aB8O+LH5Zfv#C-VMjC zZ_Rzdho*?S0%20lsB(0l@MfI|2j*Up8qmARU|HVb6&eL-!8s#C5egfiO^1(LA+;U6 zGx;rlqrH_C;=&@Iun4100RKHzPSaTzQlO)g9G2XSV=fM5Oa9@tQ>*^;HVeRr@w|V6 z6FAsfg884A!NCx0QC;#nbC`-jAQ+Ci{vg8?=e8sxQ`Ww~rzvj0#V?mmtOXWmCOBKn zrT9bHrLqtx{StI;w@;KgC?$II*42M0cO)=e(SQX)s5}@d!qa%?!Copr|FRw zC{lu$pIhTi8HIZ$$ZaLPXmpojykKGKar|^`q`yeLja7P*#NW;eGnf$<#cAP-3ZCVh zf*kKwoGGMD7sp?Xo7fwk-h3lJx0re?Eb=aB{|vpqbJK&*U6}Kr(~VpmRd{q^W4g_P z#CWP@6Tagj?-ND4wr|;G7ysDE#U%V9e~*Zxo2EMzxsqX5$U53VI-Aqb^)Xz?a7Dzd?~3Oq*FjjVh=`(y-Ty-| z3J^T3X0tRIq`frDj(hV132a9F99F2Rd0g_<)^el*&rDieX(5wnY`dUlu9JPRh%ILF*Fi~5`lRcC{^n0x z>L+6~@O`|J^D6dceVP$KCjvS|;7U?NFE%%v+(V_kaT$a+DY#c}3dYom-! z7Kyhp`tPF&u$+yhDK8=1Z*5xn{p@H^1_><~eWH}db;A7LdfHOVL$ELya0|Io6^!64 z({6%ZN-xlzexP#QP_=nH%YER-(_*|{8w+%MgVt7YGH)h8L4_9dN-4l?jxNCIpeBgq zJO|jvV%fS^P-!=+Iw-UvJv(nN@%X)U@cy1|D0HS~KwbNDLVXYC0{po}rAb0(#6t_q z>{3{^`36fX$*>#2 zsy}@pV)K_j!(-^4wGrt(YIe|1Y5d&ef6FRVQahCS#(-8sj~`c5q^NEzTq{3}P^Jhw zs+pQ~M1*2Q%bJ#;TtBqpkTEP>*=(jnM2XGczC~_4)X$YPY&EckVz3yV;qiKZg$LQg z3*s*XbAWkBX2&xS|C7u6UJldvP7x7BIHIwYXY=yzQ&S$VK_W{2^Fb}!8>SOhb)OtV zRdwJv5A9i{pe0qBNp#9yLmE0X2({WkyWzQ};4Fh|u;HNwJ~5XOwad3pO7@0dgIDw& zSFh~!N#Zv9h6V13z^;9ZC+$Kh?G0WM4bgJ-jKMC62MCFSgm9qGJ^Qc`pZZfWHC} zn3~E=U@IsX*)ojogXN{6F<+EbI6cb9S3zSFho9`lKR9nlw?C|Y2==pZRl$NmrZJ#% zeu9-hR6m3hF{KJOJ2i>FViipJ$*N)1#6*^gTM)xhk`Rl_lbss`x=v}PA1toMUA9au z&YBb!ImP=u4>&7%_LSXH;2r8zs#4NsvLb=08EL_`IOzz7Xb8_j&LZLAaF)Vs{hTu) z{aWjf;ty7>XueiJZoOQAJkDjl+ekF1mfRa_y1VOE9>fJow&98toNVs3{pLW& zi&5lkJT5ZY4fft zo>G6uq3PCW`V0Iy`fL50|FcCvStrz_S(V39-5q)LbS^NKI8PK&JSQ*%Xx>l;793(F zktSedN9{~e{AnO|3Z(I>R_@G9-B?eZL8o@u1VIG zoHpEaootXJwKe;c<=ntJ^6;^8#xq*W=iz$47S0qkqaM1hFwuFvr4c$tP7q@K>%6`X zN)dtCiOd8xUdZ9+rG6gVf~uHQBp$Me9cN!3pk=bEkzEFkFbL8K>ArUV^<{v2S!}V% z7r|f{<5NzO&E5TE8r61diDg=DnN3eMaxlyxEsQ};IVC4zCbeQ1O4ooq7MEj-uQg!kT-9S!I!Dy zYA(F^ro)%Kt?enQ2`08#=3{ZLy^lBAnV8GL%ZUR7u0-w%?i@+N29N43Gf&|Pp*=wt zMb}b2i&X~_=&_iz4pAG6fc|=|l=Enz7P!fVKdj6sgwZ~uWgMZy5ng3cIo^Y@;zugh z{d2wEkmuAcsy|ve-0#8CcW;<0x(Dn{uM_0LMvvqozeG^$6El6Khk*_~igyCSI!zX4 za_~Wdu_LbE)NmbC$asIk{ljuc9tz;;(p!SRv8zkjZ1bbc z*uES&U+xd5F>KBe+ z%gQ`8ODKH&LV=*R#@fqWBO)CSqnNr`?~~Y zse^RJ9$swH`irC#pWM5<-imYC$w3B5QjJ|A%2+0o!L!(+2Hmcm1phVhxSE%b)VT#b z;Y+1?ylXYA?QO+%NL4>VZVR%Zi5ojxAA9l7fak}&^{g0;v6rH?sFVbGOwBlX z;lC+K^7ZK)batXK<6NA?T^9(uW<9VqT zmMQ??CEi03bo-@)_ww%@tI6WWWB(E)D`?nt74YN2f zZul-_X9F)hvLu3u&>&c=wWVd#A0yMsIG%rD-8gj_y1Kb{JNn7!>F0L8fLglo3tC$R zYbL6D7jB4cbNm6luEzsesZez4Y)AE?9ydHbp~~7QJUrTR!gQeK!pAZMHnLs8X<+Vx zNYi$P(fpl(krODn*Y>dOxc?7YR(wVf#moSy|F{fB0uSTl86i#!?_Q9XB^c=geQJ1k zci%ZuvT!2uWNMrr%kM4OMjMy;!)P15Do8`hCXWWHPDNNqEOgS8` zhh$_2PF!{ub!aH;M@430K&ONaa5o%RLGNETx6cup6ZUbqwLQ1?kJbvdLx$~ZgwNvB z2<^`p>c(?8>|OiNc%61X!MaEXUECWW+%w*}zIT@CD?oibdUZjqT=R3stfTsBX)?8< zZWjJ*U3GD?pQeO1v|Y*DyU39koB9B6PKk*^{K);>V<~yhk4pXx4dqNc?v!1MRxR^E zQ^RDenRjo2w;z@j^v43(z+shWnDIJH&~9qy!sqKM+}GXhjYml$P6)JN{mSLa$7w>D z-jI1R=>tC3osR|?7K^OknfT+WQHcy?4EI*U;mh~pR!B2E8;yuf=r1@VFi!+ogSlg8 z&OmV^`hJU~gigFY2X2>g5YaM+(NH_GsM@iK=OZCN4N*GXBTxzk3n?_;*3u>nEyQu5 zt<;?2#qofd_U)IRkqH%lL!Xa2vDISZ@H7OIpZv*tQuaFJnOT;wmmg(LfZ^-ptIU1Qr-j#;UM$uGgpPk4}BN{kp(#Gfia2J>=B%rWBdS zO1MD&C3eyNu#?DK2NIZWiPZsprXTi>Mt9okK!&k@hL*Dw9co~5MX$U3!{(K~=e^oo zv&dlaNxK5Bom4tJ#^XNq%0jS~B#pI#*d_uxPX=jubkz=!zzYs9th2lHXlU9^$h>)t zrN@{@Ks>prg>B@MCf2gILKvDV^sQPz#Z@y8uFnGkMBk7M zZ4YK5nD&iQ6f>VeJv1x(c96^I_Y%~kcbs68jLK?JM zfalp;Uk&37QcRpLuez;4ZWNhVPm)4v8I=cDmlr-QyU{w3lZRcL{PR^6L?M>VE7O8A zbD+7%V8phq~<{j^cm%yJMx zYPi@RFxny!IHKhk&uEWUQ(ju0d<=&;)AsLLcVjrAo_NlFd@e;U8;~4Q+6}@fL$Qhmhz_&}>D#m*Z_ZF~a|g2E9RvsR z`*w9o(H5hL2IlE(v&ezgk;mpI0h8M*a>}_ac=2y#N0S+Im6nMbf zf(s}!<%}E1=>>Hb{fhib7yQPjl7}&3H5cO>fU^ouU&CfI!5VRYUl)ECFVuempMVcw zix^!9lo9!U(;gKF9Fbv{kX8B41j$j$%ZVIEI`PDysV0)e(Jg4`i+TT+gA2%};&E(Q zaLPpCu<(X3uk=l-4HK|sTd?m^$yE4F?7NnQTAFSv?seRy$Bk2lKgf)D1r{Uw4HT*S zO(T(p%e`t56l-_P_yu_`9eZZpQ~##GP{2m=)thHGd`E9*1GQK^k=ijJycWsbP-&QB zEznem%i#3IN?ZrBB^}HtTdW3NeG#o8H#j+3bs(MKu4;ircGlWfLY!{^Ux7oZUl|I( z7|TJA&#|Ll<;;gxWX$&-RpS2uS9x$yarKyWulVw&OHTfwRSv z>r^EK=`>W|__ml#=t6MK(>u3wk#wBg`C_}ai9Ruk4~o^iwxU0kbpL zDZzw4ycp5%@mf~&sK?|LRgnm?G1dKpxnQS-0^pIVw`|gol`cG8&<%hy= zjvudE=nQX&7b}b+q`Fi0>NmZL3k?_#xDE3I`^J2C>%gE_ZKdb8m+ev{@74cMmpG@a zRzzExC~loE*ezLzFYbPl!e*%hY1wAtR+E3ya@pz}jY>DmI3OJl=O1^k{rU3lw;*_jVX zT)S3kKAfOUDg1_dc=#h+NBH?aJP?5K9A>s=n;6)+Z7oUcgpCF%4lO6G78_JHo+u4X zNt6HO&;e%=vgL)m008T{#o*^X0mh^`8jrsvjdtwb8NUj#KBWKyFqWc1T#bOkU8g2y;(=k<9_LFC^Q^t$7F{X98S;QW&8WO91fJw=ZbW5$=VT zSIra(@W^uXHB9PC@VlVexG4Net|K^-V)y>Z!HZ!W>f8$9wmGrHipYcooO zg{~-b#!~h(CEH&%-FYAdsG=-JXRUuj8#mc~59D)l)Mnk8Z;xJ`Ws_Lk{CW06Yv=4Z zs4SezkQ7?`he9`n@DS76gTYIKTO(`IlmSou=XRB&wFBJVz*)({NK^xz0OivdamIM)R;MS@nZP%-!C@mYGA8^y z6?!rE2bqr_@s(qMp#~oa@bbLZKiG+peL%J}F}-~);NITNEV3U#a(@kQIR=TkM!Q1o zw(tv(2N$h&a0@$j^SAE!e)(4A!WCSTE(PEM85dEme_l_3<&=j4L-cnZoS8hJY{+Z0 zVM(o9kqqXfmJpVzJl>=*IuMul@w-pN@9PV}u~1d9|51gh0TwVp!y644kLdbHz<7R@ z$N@wV=G~CVtiI0?o^6ZZrad#B`AQz>_@|+uH_+nl56ZRVrf! zz^Dd?(GecaDIUwv<>|5cB8-!6kOKy^5Mf!YucqD7A_AI@!adnhW=kTHLyiial}YV* zCz|WJrxi@KFU4giLJb_$L+QYILP2Xl%ZY_}X&5}O>`AlW?2q5@)9g<-_X+KsrZOnv zOw#f~_(J>~Tu^b6B$`Gp{@8*Mw!es*!fpxm(fX{FX5~KYixW1{J}-7zb1-D<)`{8^y5iJH(LSsm>Kdmq8*swEi zKgDT6^~=rMW$=DdUx-E*dmf_GvRWm4DDw7frD$y4bJo5SW76o!%OHrx9utmy8!uEd z@e5nr`GX%B^MU)Bt_ZTLkB<&ycg-?=f+19C{KjBlZ&Jk%0z_R$@^g1Jzed zOc%bfHNFHOkTC$*nj$R@##rU=GGPfa`i(-$`Yx>t?RSV=sr$db14O5_ZeDON01uot z?YS9mLu^G#_A}AqcO&-{YW3lAqy=r48~F1x9KhLm0?VI)+5Z|?uf5OG3|^@ua*3ds zNI>&dMHFJ15@5)@IlZzxX&w0VX3}mG)};8Ok!;j}@8Kv#_CN|>w6gruj?z(H^}G3K z?7DrjaXKJV8dny>TP~mKsdg+@q1dK5HehKs+hH$rt@zxLyEd(;Sa7!P-gi_en$Lqb z)8AniopScBzatPWLp7*=8AiQxK@09>GofXg2nc;2%PN*i=CyxdVbbA{;ea5?Q?4D( zZx^P__-5onAw)0b3^^y2%ivXhTWQECn%X(E)-qhVD z?=(K`_$_XpcobdKL~C#63_vo0H*YcZr_?oE!&+iv%P~OZtciW&000lJ$?=N(s39!q zVq#mU!rH4ankK_5*fekXR^Eu$VWMJQ*p~TnF1IT*Ok=$5&lNLGTi{&D+?5i_UxGgX ze~mC7I|H$UtZNGxT;J?Xo!?vO#9{dyhAruWqrxuMb>~i)D}|+u%%wt>V|R5ma%CRR zr;ALp@T!h5Z?S6Lyo@GGxFoMp!l%p1kRRM-u_7#pi;mi8N8`o)PEqFU^s8a6_~F$Lwtsx|(4Rki;hG1!AzN;R` z>vjr2k((>id;u0#4%UU~5GK;dxC2}+*Ls304XcSILvfZ{NZWBh0B?H9V7E4zqi3Zx zpaYpek8GU#(AT#JjXrN`!IoBY9-_ zL?vAEXQD*={%s<^*`~ggt3qO(xbbO0wN;&Cnrfr4gErfZlkZ$4=j)n0US2ow{6~F2 zxZBbpGc_=-D+}PVHRRFp;9~5eMw1Z@t7H22Rom#CyM0*nVFeZ~xPlh&b`!~ncmjFj zG!JKG^BXA!EeSSmzBaf51K~2`z2TM{vM@|yjA{kHac*n^F$6dee`QKm~dp|$)Fsb&f{*^ zBPiAn(v@6R`wQj9(8!6kWY&!V4Ic4g!glh!v@UJ_#fq?01Q2ek)YSj0>8b*v{GK)nNJ@97 zlr+*UB^?UV9n!IMip0_>-Q7rcDBUa_(gI5(EFFF?{Qlp?-t5IYC+5t|d1jtDVW6*Y z(+^CKUVcAL{sz-8oh>tr;#ISYcbTRkv(9UwwFEWeWfSVlf(`hVqbvZfU&K@mCaZ7& z){(om+?lq?{#|tF+ZI73@Nu%QWPO_&CV-r}+}!LT?De2Q+N>9Y`>g&K$CLy#;f3Y{ zbv>DN$(wQ!Y7DroggJJmeF$o?3RCl^Dg@c?!#b;;HgM*;MRpyL)4WAXC-I>jIris^q!5OS2vkqCvO2k5rZ7K653dbd+#Ke5!Y z@_G!A|Kpvh#?}Fm?q7GT+$-!Hkt|}|TC_>xuS1bZw2J+%LX?r}8qStpNvK&%`WgWg zTBEIYhhB^y5VTdK!hP>Gg=Pj3+})GKPE(|pzwb8diPEtwIoV51%m)z!=SK3>JCFO$ zS`p^CGDsP=QZ|{>AqkFe|BA)_FJ>C}Q(?|;vE~0AxuXy+QvjI;mR3iM#O3|&JIRR4X3K6uqm^?A2Tz)y!B{rY$y>muihr4M^; z8-$HEIsKxjw2c&h{1IUvOn0ZjbMD!wie)^yf&dLbwvc)W;`sbR=^Z!iQf(TE#R~mk zIK{9aED%K7#j$*^OHP_EAjL} z3zkFs_P?GJ13y{Bky;T}J}qhlM02nZ_0ZmH66OS-gHisL;sNEBrzb0Y+}W0B?*fZc z=0uREA{|T>&Gc;(=Gx3<>doKL2X!oFfe4NY?6fADm>$CQfC16+wADm3ph}Tso~0Fa{CR ztoc;qOAv#M*!)Fa{rjcs<%sVxUU-2futz}WUE@maLef!yDq2HYul7_`*`P}|JaC6J z(f<^GAvr?_D5+yU)J77VsxXRlHs>Eko*Y5pM>u=^{-b5a8tjTQaJIPlR9Lq}JpNkm zAC+9wgRvA-7bmR@tOV>7os9o*e1=4>;LMX8bVfFQ>J9#G!AyHM`ZBXN9p0H!P#c2+A-IrDqBs3t-xm zj&#eb;Vmp}do5-*$rDt$4C9PSk)i=uE4iUas~7ZwiP7zjM_D3wNng&n@{qoP3CoAZ zLmHbF@+*U(mmd06D%7poXppnPRf)nV#7%qb9Sz{1ApLjKqz0Ui-S2>DPg)&Aj-+pChFeQRa>`#}oYyVcMJw=yQ#GW|V9*|*Z! zy)0~^;Zj$9=e&NKXwxNmlu04MFCYFv?I(?Quy)HA??!t~SnG&+$sN+FKD)1Hv|H$a zL9rV)+mX6=nvvC;t{@XoAXbOL_v7pffjNregNx#>uv2qM5aI`c71QLaAxuA)=XK#1 z7+19V%GTUuR$};X2GwA+LNd|=`6cUVNtl5C&bdu2S%RsVctl-x0uuX{s=QJ7LS;rt!krQv?PWGmFBnq85bcVbie=X{x4*l)%OqncLJ{Uuft7h2_CL!dS}*v8)oNEh z>P77sb3Za=(*$k~b-E6N6hD0J3{|Pcg&``=-ds=&6Z8(#-9cwQx_ zIG1eMQrFkd>fnd~`(r3u-0d$`HW#$&cxPiFNh{tHQTAa7X$Ux*J4HjXkxa-B9HgCZ zfwbt))yh6-#)_5X*yFkvwG83vnEWRkuBemC$d5s8OF9OgrORLRs!g@qOU(__@&mE- z_xn^ir3^|`u=Cu>pTptx1E-{oAEbpKElUS%!C$~q|3F@0glqVEt>+tyQ>3fN6Im+I zsdg~N;^QFQ-rD%*1=%Y`Q3g1KCLFv={pC z?mW>e;U6F`XuWa!!`4`2W)exPSMbNd_Iq4;ZK3PZo!qmE#IDE86GtRpcATXM96@%_ zFEJcjUQ12PoOyRkrbjg`pD8p`I*R#3LzY9z)*D8OaYb>SWgiCf;ohzjPqMb|(DAZK z<4}%dcSOTIY=2ad7mbCpqtUUU!p@19^BXs2p%y%B~C(pYy+0anN zJbUIwDet*P0wax*i{zg37qv?Aukp7F|6MVOpA%NEeYhCiwZn;!HYKAu_iU)$scE_u zK29>%1;s8S^kEs=!%rh6-MAOSuGV!~r)L#xon;!F(T5-vs=A!!?T1j9LJPHL}N zqjrOl)vBbc^Jb7F%)Hqc3rzQlT5z27zeK`%K1!1Iy&JYykItlL&0E4zYL>|&dD3^T0)SUz}pZP}vBnhtU>rb4^)G`_J6aPzz;4&(i6R#K2ks9!8^}PRUF!-({BioUxtQfV_)>`8x(H)ha&I*F*L9oEH>*O1m#}hs&>^jx0$RE* z3Z(j&h`RNUKx4c4>FVjFM?DP)C<3fyHjlrU5{<+1O{w@_;2jVnp_}BRguRk}T83md ztseebb+p2SjGRHddSye-_F?wQXS1%Y;T2chq1oa@XM}|@wT>CKfW=Z4@9J!Z>gDk% z+{q|Z^ZT)lOgRx}YsE18=^4vxf9)SimyI~5_<|Oa2rQ8?aA&)iRgmNdP6&DMrUUk? z|E>4jA7mi(*^fmLxuzEP$7q9gx0S96SS%~*(1>R<-)YOAU7At6``h9aP+=A0A4w$S zZDl;&ZY`Uf5}GspWgl2Wv!IEs4+b_vd_phpESaQYFqvm6u~wk9@A5uP(E(daTo#CR zbhPlY*Xrqj1$+cdXN-jP)f=BQxJ(ijg#Zeq%I_aAjQf4NO0V1JulCITdM-L=;E)wp zJlOWQVwc3?`|?u*AusOmD*ae^Cv1X+j3Tl45-UHdcL^E6!#!f8yp0!MP(m>=f{IoL z?Y*=LTUnj>eWj$YjwX!y&GV^tWUeo`ShkUn?O)yf86;>J&=?xby0BGV@pk&hTsJUX zWgR+Ee}G5`(q*0x!?-Fd;fyh0@v__Gv#-lz-}?4fUDM;##uiu%7WPVNSbgfmWn zibUBblF&Q21 zYzB$F9Sv^2EFgUP?|oRB<~{}i3PgrPvJVxq5+B#h5Dqb+Ze<>gZozoh&idE6 zw6xJL4~uobVvMhy`gzq0w#I@)fsTF7iC&X&MbajAY~s2MxjEb4zf?s3OzpM2^INu5 zN$dW47|+=y>6`VV28*?}B#T%dDE_++=MD}HCA`EOA*DD_t(OYz>8|EnerPX8A%^rX zZNtKT_98>Pu=1*twZBA%eGo-#s~ApT$3R4NOi32u%iJNuF6%KRXi1u{o>0yoga%nANF1|ZME#| zE1;$QI@j5J35n>j1fug zsTrBVCUL5^eDN$DoeW>A+I)8QRi`X?_4og~t!58OIp~*Yp3>oB3yHSP4n!!#B+lB0 zm($BERm5(jhzPm|=+_d=! zU~fIzGSZtd+wD9)_-Qn)iLJ!6h)q=y>j>-=M2x-Lok+Rtgzt#o&c1taYbzD=f86sE zi;N2y&QK}+mKz>VQ8gv8&HBt>T&GI(i&gfG43`UB3W%Tfuv-rDdbVZ_TDiTDA0z8UWs=JRCowbRBc4s7`~6Fx%T)(5(yn8ki$Z)3gTucV_sE#8q6DA)OU?HyFM-f`!e#rNDW<(lm&RJQDP_ZQU;qS)#~o76Z_ z>(>NBWKD&6ESw`nReb#H3YXwZOa6&_u7)IlA(o}M9i5;cBpVy)u0CjyH`t()$WCgR zI4xfh>_*(a8=J?86eUT#!CNN*w!d;>m*J~*gz=k9X&P zX+X7bc2T@{h@_^0uaT&Aengy{Kiz!1rJF zlCbKlGuY&%xkxT4(ey%dE$Xwt1()jaOG6^ z*}9A!HPjj}mgr?-d?8=CS#kP>H7r1pSSw)#W&R$<$qhn@`#-`VrUdma;&q>|Hdc#e zenUBG+sCIT!WOnHE8f^KB?8yw;Kz~e+8V5mHZMJXJ$g>T1#QyR>?d=-etsPkiqq(m zhujebCqn9Uc@V6^9mvOhv<*%jR|pTExO1rg7{J?qdf~@TN0@*r37TZy3*y-RQ?1Tm z#>5FUGQJi@1;jht`xKbedxyLWvWobg1DVGDVTcAfiL?R$C>W zRFNhkHE%xw=d}z&~SSlqG5aywux>Gl!Wz8O=CgP7pjAxmt6|nV8~b-T{xW{ zx*;{7Vy`;feNWb-o{72RF->GhG$5lK8Vk)TRE#j5>B|IUhy54(qCK8}!zR^&T;!y+ zi?EC93>1Y8VzcHLocN@-7DM**cYhE){LYi@`XnRv>gx=n9qh;N!RX8qjK_Ou^CQW? z!saU^t)vHQy`&R^lNv`dp^3|=7%Cq2iCzDzI~Pi^#65Xu9{nh&g$JWq4NEz{L!2PcB0=JpRkyWW<_G{X~kdbBIoOA!5!H!$o{>O*%s>u(DCvIWO)Gk7y*NR8Gm^6Fh!xKBg@adl8sf4;a z)FKrfLh6zBBeIc!u!S$IBQ#QVl$E-xqmx}UJ5NRCB>!?$1Xu1 z>=!>6dICWoS1QXYzxcP{*GHPkbE<2B~fd5Bivz||=|51Z6gEQv>c@B{#w^y_q& z)1;ctIOff|-+6BUvS#)JI)jXtlAP#hVC4Kg2Y1irO-iA%(}s<_^>5K;)vlmvi^<%E zhtDK&I27;7Q*5L^gAEo~)8ebs$9Ftsuc!t`KI!W?b$!uH^Q$TUJ=6=`tS(ev4fR;w z==g6CVU2G+Bh_2^fV4vWWA?w>CV`n%VXiec-Wap+@y8X9NOCd;MzyOOQ(~3Ry55?T zGpl$#tJf7KPljO%r6kkCix}aH`9x$=y9F*+*!DaIt#z#%0%ovBu}<2mLh^{TKERPW zZcIDr&(msO+PB^qaiM1tn7HF`kZ31-I-lJ&*9D5uF?lDcXll+QM61$w;ydmNsdt`S z*+Sg=qW+?vfcpIa({P9raU;EC^^+9@E~Qi7_c-*`VKm&WU@W_}a+yD*bz&>Sbzxzw zXg4}G3NH1MAT3%QYN=!tEzV++|9W#7$#CG_N@2bcE<+~g@<*FwT0JEXnog3YHu1is zlJTKHWQfo1LP$myIhsH<=w>#?=(CY=NF)~Fi$gD)-9GbM$kL`5Ng=F7ah+w$#$Mf( znZzNn*@K|oCTEwoiX!?hr%To-P)mYR8UL5IU* zBgJJ9Ww93Z7uwobYnBQfr1^4>YA#5oME|R`%^cof35Pt{AToL!On`2QKcFf2fDwNfJ4#g`R&=(^z-o___E|9G9J)t8;lu!4kuT=e<{OQQ7 zxH<3D*6SE!{|dj}#xSsoeL31|`Lmv}?S&d0>M!XEx1sRk{A*2xU|07MBwK*h&aK1O zI&!Ae%7YjT9n$$5xqZ40aAu$ljy6{-4VAe1=U;<=8f7OD>#KnYNNr!78{a7H{E5xW#49kPI?`YQCD&V#(lGtJRGWgdX`D$ zukMse@BUDSBwJkLRtoRb5zWa{B(Q19cXK6JU9Fs)I54a>X>Z$Ez!;?nMJ_t`g~!(x zTn?+)+xVX*+FccS6QT^%6!&v_jO|+C)?sD8=m^hIuF0j!k?%jR-}Nx$HRaA0(x}a* z4jwiakkSluVKiV^f_!AIUzXx6@nb6KAX*XaR>j0zk05$GY2JR>$CW1?21TsR9Y7Km zZD}8NfsSI^0&On|$Se;WzjNmeg*=6k0ql~xNo21Ai3ZjOxA|oVAAkbZ)`fel+=&5; zwfUHv?Wqa^$;*&X3`yeniF^?Sm-c^S`SDcx8j;6I>A8BLn&n=&k3WUS{HVQ-aBK1v zKl}1h!w+#xBZ?eyb0_kC>4PemHcj+Nx#N+U#yGA~Nj06md3GqSkgRuF8i7MaWClTx zCm&vcAObWpl-Xs(6B-flmZCzWwxZw()vv>;ki63mF8rtO(Sn^!5HHjs?fnm^S-kWJ z(DAI2P#_KoDdgMWBQmZBs?mhJfro-Nl4Yg*iFADZy(L2n6)kYUfAvC?${e_Yll0Kl zjQ3(Gr(NXq{AHu~YF=W@KA|j$p)F|rEt`#eB@?Rge^*CqSp_~*mlupe;Vq@nwo*PL zy+fU9RS2<%sq!r`$Pg0bdDkIOFEv^VyL>PLAOL#7v|Z6wy{bBdvplW2Y8Hr^1c9R(R};_vlTkuPmGu2YUH-rlWc&~cgb(+A?uTo?v>_wuzP>=e-uUxPUKhukt<`@{GFZmQY@10#8V12?_|K23(M^Z)r-2w z5O`muqYa6eG4oHFZ42M$flZ~bjB)&A504_)7;^Po1v-d?-8y4Lk}=?jjN0rU26*ccbQL*Bf=gyDKMHgkip zEz)ZukdG#vkX|h9GEti1c4|kiu6uuK&+@%z_x_SPA@lklJXr#61jPIgG~A?~Lph#E zL^uUt3}R|`>!<&1)19}rlqQvRcp>fVX*b9I!s|D~7)C=Lc3wjMe=tM$2S^}+6f{wS zLCOBb(grnAPf1kc$h$!cT*e^wW$&I7Rjv=#11N8d0$=k|=F9nnOvn0Gy#WVn%kVa# zGL04*_Pi+)`sFcr?He)W+k%nW_IKdYgMr*Nn=La}zKV6pmtzKE|K_Fd$B)#yrKMnq z&@WQKr|AV@i;$lLVba?!>IF4gWoUJUI!Os2BV`+K34zDYR@}1Koh=&RPQM}y^CzNG z)yiimq~m9>OR~RW_pMgEGiCi}HX;|5?cPRlwJKwnW^Y(hPw2Rk5YUzMh7;T7vL-QU=u?p~iIF^eWVpchkv zltu(&#CTW)C-s=ymla_QMCAF`ztO7oBR<6v4DizLSej^xL~(uFb8YtxFy)>LvtPZa zH;<#?9Lhu-SfnM>{x5~TiiG2phC9Y$9=;3-EMHBm75dk0WBu+l&N-<1Xu~brN^LuEvZ()<>T<~ zr2$(q8~1G{6We7pt&$o$|9BQPi;VbljyT|(It?xfwilO07Tij(>PEfMB0=HE0tXH| zp-PMzl%ImM*D~Pi-c1Gk!y^12ozg!yDJJtp!zT6o7QF;YY&t97ZeeXa(reeZvh;d* zzU9%HxXy#^oW||?c9j4{<%D%m`P0&%P`1iz$j`mQO$%K=x!!@M^g-02-cpcn4LGZ8)Bc`FwuTpKF=G z)XA@G5?A)NOp;nyIi^yh_pJACzP8%$Or15y-JqX3DW1Fwwyi~CGIEvTT$9^(=9sE&ADNczlq(CD7yBBBXI_HN*@f(+V#Cx$R=MgmuKi?8V-V{y8c^k_UP++;huE2erT^ z4mFa5xeGJ7RB+8@QFkdt?j$@#5#0=uZ$N@tuAd{fuP#Fek^LQ1nP_RyMU8IP&1gMWvX zaBt@#Mbxu$m0DqFh=y{L6WIT^-6r%_1xC+jX5g;c0o{jO1IDTVj3@@4Tx< z#T9mZ1wtP=EX-e302_POcU?s&D$kumO-fo`V5wZ#T6xAodzYZviLEjz1#IOv>H&@Y z5kn!o@+QJZ`*q*$lGud2JW_J$By`*s-k@A=|dxGj|1ld82Zw1hUoT89Rf|h0h%1(u?!WAG%krJ( zW0KGy1U&&nM~5Hq^FwQC^@-yzC8Ao_c{b!w&ozovo9QDPc=Ns zrgDVBFS!PauqOeg2>v4Bv1XQ0Ue$kng*{L+X}u8br@ItNz}sdn9f6J--JrEl*5v(? z-1}GP6UG-%r&fk1Td=p2h?R?-vw@X}m1$_-fBFu?$VTrathQ^A3bC?o=hLkYEw(PM z30u8MX?pojmMe_B%CwnJekjfCYF_Gw0<20x+S)wYFRPC!J}yM;kNwaq)dX=cYD1*+ zspOt+^5Qgx$tWEFHSu3pF`Vz8*Fh7-iv8!O>GhTYE{?sUKVC zvP2^-tMZaw=r(Owsp&Vmr2X9ny*9Y9;?)tu*qc6;QmvJPBK*A2qseSlmR6I`y->1i z+b21WW}UfjU~<;HAO>-U+n012k|4h}b$j^r(~lFeNl1ebL31|JFi4<%Q+Aj;CUS1S zW&7vMqy~@V7Au3r=?}QWZx4(ME^&(%SCq79TPNZ%yx+vS59Dm7cn7WID9ZkDVZZKv zmLmmN*sL9?x)nL>+>3vAS3qHz0?C1ue*k09w$OGBW77*q49S zCO(r4X;>JFkYd`rNxk3qlR?2RCbQCNEjZpP$%reDS9m$;e{&;AI9vVXxSk)JStp7` zIoh$d$*_XJxenbQ_iC{RB&>V!=Uy(*cXe-LhT!X3jMM4R7N0%D>rE_75;G~JR=DHnfN(8c#`F`14&tHPbYs&|vjvr8)temOtVl$JXb8dy`fVr18DJ;vKO z%Q%mC^{Q@U2~svN-?C|g;CHA$X+pVh(T=BR=8LAtoYjFPhBF+|RTH7r=TH>QI0S3$MW}MDj9j^v4{9&#>Cbpd@jFRr?G?k6=D6Vy7Wjp9 zY&}CptyF+s&jkozEXh8}t6p257^?$WvDua4=5nDp_mA#t#8ai-E^#<)7+a!#NB3;s zh*p$;XeZ)HL{^czePaYa$8LtNX<(CyZ^dqD`rz-fQ(w6JV>2ZF8A9#hgbbZEnXB z>kEf7PUVWtou)qBE^~OEeC{~U%4=QMUf~yB#J=&UA`eSJ91q$+W63biL627faMLzH z7%)QeikypFdDpj6v#J8-aac!aRD1D%bi8dxTXj|BjbM4OgAcf_(i| z#6`j2E411?={Sr#fly2%Kpb2lq#P;V*G&m(kH(O$qa0umjkku#kkfb_d5R7o&QO2d^!30Cl5*~>|d`qJZ68*wEDV#oYefv}=9t=u?dW;`A zx3u?KrNXj)QiOl$ySl%h1Vco8IG)b);5I3Du5Q2Q9Cpt8{3WdoBgK=Eb`s|3S>_3! zz83*+CAA^EZF%34Y872mgp#|8h5@9^n{G2|@LETae-S`My!mrF(evt^`=Zi=6(ikt zWtwP!5}}FOMlC-?Y(%NpDjbw&lxf`*QiTp}iQ||Pu-a{@gzF$%=|B~#!O1KppY5kR zAck`@W8f4VzKvake2phjGXeeit(Y;v^@i z3~sr|$NEgvQaXa5J)zQ(GS5{AVA(_za;QAVa;A;A%Nja&DtO%h?&JFR?#8ztG>*`W z5(QttopyX|C(ttWQQ^B&dFZ&iEj%{d6D5BX-1Teg%5Rr<<2eZ>*-=rJvbk**%M!cV zy^aA0RbqNI*QL(=E++~6u*cm$Pn!iczlRkV+IX%pjOS(V|I;xOKM~!#*ZECF1!EYT z9Vq(!3hr>|UVm*>3zUPSDS*+4^{(nyR^(b4F=TIXQjI!ff}wo62>)x_+dYMUIj_mR z0!?#9$e9q%HcF5kBqasBdbp^W(=>j_VNVgeE!%27ISax62gEy*y! zQjr*@i*{{3mU_XmfHus&ZEnkxIztdJM^MvkT z*F=YE1^5w{!skY$_|R!Uw9VSFP5YGgh2gu60U&_4%>-WajNi+xzJ^aov!gPPGhc7) zZjF)E+fEpDqPkcVb6c=KyNQui-W}sLUw%yWZ737(`-lB7qK*zMR<07B<5gq6_y){> z#1WWZpO%=nlO9)xPP{8JbZzQnZ`Miam)ftMBzzyu43l$b+I;n#kskP0FV;;LnS=y~ zTL;N(9=5|}$u7gEnCimR6K2a)Wy6U&K4(}k9ysZ%?DOqftdqK1z^=LdV>d@C-+Hei zih&lQo|3{@r$3*1BN+`9TT05JOtM(I;?R8B6=`HqV0SBn+?@_na{KfFAlC+ZDg@Gh z3HO0|Nhof~Wq!dU6jWhPEu|}i7m94jJ5gJ}kP69E{oQcW<0;#?;4TR}$PM;g*)O}u z`}TE$UMl&uk_C)Zl=TVY_3?TGN`ezXD^Lyr{X+TG;8c-JWV++RA+wPhX$g0&<2D+u zd^VWo5QHa;pOa})uezv@GDR#2GvVy7t|waI8i}V!8i+I(`I0cc*i51m=MA0}X^!=R z2!*c7MPj&7Ad1QXV!E%+N>eBM5TM$s7hm6UM{3x3Etq6vJSy;G5+cAk)@p>n8UtZO zG+4dquOFgmvLaI1=|(QYglst5ohw>(;kP<#3)-^#y#6q-rBhW7*jlAe9-WPtS96hn z7c0rA{TRAn#eNNX@>y%LszDea`jk%qjr1QSZgrjvdd|8AXW}9p+~+NCp%u>eUf!HK zjL1lcdxLx=xSWkPqJNbowBo2(iM*KPnizBqKjeGw=g1|xy`FA2nLzv!=D?LFhFjjd z@jf|wy`?VyruSJ)PjT4f{G(O}CTJwcke|IyOjyR_6&#qMrpO`8Xyj@=NA^+=cydt` zEEcKIGXK8rG)lI-Z{ZEwkT!b+O$3r}tMV#S)R;-M_OY1+(7gMV!Tl^mfzdBA6=F@J zZZlvz|6U|yVWM!?c{*%yOqK8U`&YZaBQzda(%CJD1FJ%y8@sFV^36xao(+a4>bz>? zRa3qexkxr(-Td@yEX3Fae!Y6nHUo_5)MQ$&ezFRh!-bj3*!EckuVA;1ED*Z=yJ6aJ zkBHuL!%|(^!>(F?!wq^{Oke$}+e^~Pq=$Ax*n_GFM zM5O2|8Py3KI5_4y-=8Z!F*Gi`e``I5rIaRVYNjoW<`hZ;L1k$oC{ubQvwr*geP)II z>I|kg(ZM&?h4}gG`B*FHn~j?GUFwJQGFlj2H9>l8OH85+XU0!a`*;-aHbWY>QbaEB z^6%QqdV(>dtCbCQ}Pgyll;lJmQxGQH%Al2`TqxbXG~2wKT;P zw$h>4l=+9QVOw;Qv(LZsSuyig9_@x=iij!o7SR7z^dy>3d|YA2%fI@)V!rW>4Um|T z;Q6M08|}|mX=o~(-Mb&-R)!ylBm^nBACf0F;NS*KTsQ?;ji&H;nHJ+{rK$;jzky^b z^aS{j)xGZD!D+!I*m05YVw~s9NIt5q{3x5O_HYl_+_^hT;ClXv>>u(5)2wkQ<}W~! zBZYj@mK=x58%FVoNW*`TXfouiD#T7pV+tT%pP5&1{I9nVbnt%@0uwvJh(F zA@+3`hI<%gnHMv9a7vS<1#7naNO6``mmu_QlL0^N|GZ z*a2Jl@6!$!DiS|4R#q0v0Jd&-UaT&u=k$nPxXAO9nE*UoM#i42&-o$rI%fd4Kmi#t z9>Q!=ub!$?7UxEPnDXT&TBcgwqh0LelEH>ManA!~!MB*jOhEKwx?sH+8vm^g=F=4xbcPOH}_%pWxm@TqEI#K4~I@-Glt}IY50(MmV&VgI_uwFD) zegq0cbiVlXH;^c$lIN>NBH{&pRl!%Nhn3*0H~0M}JgLutrdkF)?rj-wcl)C!d-K5u zO0=~Bh00AazolcPLDSep;1$>xk`BdQ#_38r-B#?&y!7K;6L={TISCQ2Quphx03w33 zp?CXLS3VJW%8x&$-)quIRLYT;7cldW?IQ2CW@p-m-GP>%UPoN{>71s5?ZJD<(T3eQ zXV5;lv55RIr%b)jRMoo2j=jK- zlxuO&H{zn0|M?emD0`>@legWVYX5eAf{wfO54vrF{BecwC3a|zR4A$FILY>Ll%*BgM2yKo81dlrs+wN$>ElwA4;ovT1ZX2}<--_R_%?xQeLt1+4 z+DYcM&(r%bOmck57x3ui8MV6e;1aUVd#r7C61BE9YY?9DJ8fVOuCcrp7f0vFWHvqI z?T`O}h$n$Re{kLvq!C=!3Z-c^Y&Fj~;wDhDrZ}o6)u6ab{pLz`CC!#?!R=chso$^7 z(Ir_a*#WBams=rY<`-ceU1pErl;tYl$vd1ZK#35wb(W{<^%?1>fD46li(miM)1At; z*Tb@1hsIE6{ZEEMME>y^yrkM(^wReZTLpG}#RYpD#(;z0z6TXhEiE4o%PT?dRz3S8 z<}NQQ58+!RBGIgW?{;#Jo7!6SvP@taLH4a{0EK|-W-bu1_@=6g>(d3-qK$sWS z+Dt34N7Tc(HS>1=h`wf@-)aH5>?r>|?O*aWEXv*bumUhT>sRqe0e;xY$bq<(`_)qmfR-+X@G?P1PBUoW;0{xi0SMU;#_36)S4UWB1Ga9 z_|hUkqVY{}cm%!@iG1N&+H`mm61KpVfA>RX#lFdYI}>FE^e$gk%_|`dGTsd!ANaqL zDf9f?>fh~`@)#g|0Y1zq%Yo}gCh&UWavb_{JVW-?EFC$*_dg(OE81$F*Em zz6W1M0o{3O^D0xJPoFrdHW-3sG~;xIP4 zo?2v9NOg(!9B#pglGjO(DnVTDQ_IWsURsffsCu085l$MOXQ?yWREv;31I}?yfsv#b znmED|Sx* z$Z91FqM_6tUcew|nK)6hd2Jr5Djh;2r1Q$;X%Pp*hV9&MeUDzA@9_E6tm?D8L?xd==^m*=E_H=C@ z6oGo-txtqe-mg?SY)?Z@9rsko7?liPK9R_XVzrMBg+%NsRJTVP;ftEtvug8Wd!1De zP;pT_>lj(w!YyP#^%2#h^wY3&R0Z@W7rz?;hOx+c4jsyJZHd#n3e#pi|Cx)W0BErnVqnO#*$VX4qDKRnq*L%R@ zYQ^pHOTt{QhaHEF_myvv!wy{659k2RE9`N2Kl~6ISOch+99P2foOV zi)IE8l%9@_B{s{BvTqr7T(xjYqnCMx9}$aOdc_g1=r$j#QBWLqANFS?Q)Hp`8lAtM zqtVB`&`atNw`ni34}a-|1nq(}{B5>afc^;G4C}088#j-xpMc53Wy}1TPK}Xb5FW64 zSKYhB%lFf#d6e7!5C#|8#6RxErHB$jitq-e*6Qz)Je?sv@LK&wwFVUorg16Am5zd$T<>|^C|O@Fr+PM49*1)~uR-veJ859bU170(^`Z2EsF zmg!&G@uH}lP>Dx~RN!;bk(&M~3gp+$1JzdlxbBy9XRjU@j=VVN-q%`z?o5FKL3#z~ zj1Z?mFeHv?`e|^a8>|DIe0c~@=wm?gwq=<$Nti#?5hKYVUf}?`E;l9ZJ&~};&G!Ui z5g)qDhizZ8u-HGo?Ct3}gh^j*zu=27q}Fgc{JaOMiSHgRe>?c{!nU3FYV+G#A%b{J z@J^ZW(7-o;Z8>_KQ@GyGwtWWMggCf$lzsJJ0i>_PMfyAK0noV=<+J9&WgC>jHwvLl zsk0Ya-d0O5pNEOwvP!9>n?gjpowc@6L^l6`NgcG`=$ErZCbULG88YXNeOK_FODwmqSJ`VnXz3y>Ewfr0w->MurPDM2IT`ysO z$^AHyXOXlI4TA1YJp9GWTYi|fkj8uo0{Ww(Oub)$mMua?_9&zytAuBq2f2D?mII)N zR@EDEH{d8>Pp=sx3*RC=n;dZzy`lPa3)|LU-57;`Bc|3q(Gh)roXHK$Rdkb9w}{)m zm{``3>T z4PJkN_ZTagi=xH>N07EOdg5uq0G#QHZ9AtQT&NQ-h*zdwh* z71Qf@4W3F>sowPqDg#`%qkO*u74lP{2S-22oT&th^ZdSj<-8!Q%y)H!jLX2mfI7&l zz3@r!y#WcW@b&MdEtbJVij_!91j3ks{JTAUm@2mypyuZKT_0unI?VzEwY$7uo03+I z{%~c-lV!fp&yHCDu!Ml=9N=dA5A&q?Nt7<9-&s8BT)sj35Cg9#IR-8-3T${F{1}rz z?ME1+^6!$`xlc_-T@kzIIQi@jYPVDKk*iXX(HNZ@^NCSi*xxCu9$$U*_(De1Ndp+M z#31x1n;XFDM8CQh@bCu3JBw^kJPadW@+Nhp!bZiQp`FgC zX=BF(MUF=-OeudZY>xgSy=Y!*%N{SUB=qfQr?6N+nXV*SvDM>S5*Q3=pyVYR=GA+Q zb*;;{qXlE6PM<<;eIx;yKK%c!o%hBxfBj^24x5R^S&62J#8NZ;qH7S5t9Gdo=e}8{ zoF0d%ov0m;)3>_;Cm36L14E;>5I>7-dT8rIr-ExeCVRVHmG799oj-WP20TSp>IQQz ziK-tsdq1~g_<>$1uwQoDG|?59qkhh_ndw$bOUYY#%Cq9J2s;zq))~H60ZSqvkKA(NGEATb;V;rs5dZWo&Z~(6u!X z0vo}t=fvzc*k;S}Kv`6;J_G>T28IUmynufbS9 z)T#V|kFl$VAB9XfH)Dv7#REb0f8#a|p6*l6r=?pPWwtH$_LFI5X$Es&k&>s#V^u0d zLB%*gsTW!}dHmPTM%sN_(64Icj8T$3J|B}#&cBgJ-(k>>_s?Bzf$lXbprLDh|BwiT W`=$8T4Ud5j!+nrema3983j9Cd$)#Zc literal 0 HcmV?d00001 diff --git a/examples/st-oauth2-authorization-server/frontend/src/assets/images/blogs-icon.svg b/examples/st-oauth2-authorization-server/frontend/src/assets/images/blogs-icon.svg new file mode 100644 index 000000000..a2fc9dd62 --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/assets/images/blogs-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/examples/st-oauth2-authorization-server/frontend/src/assets/images/celebrate-icon.svg b/examples/st-oauth2-authorization-server/frontend/src/assets/images/celebrate-icon.svg new file mode 100644 index 000000000..3b40b1efa --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/assets/images/celebrate-icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/examples/st-oauth2-authorization-server/frontend/src/assets/images/guide-icon.svg b/examples/st-oauth2-authorization-server/frontend/src/assets/images/guide-icon.svg new file mode 100644 index 000000000..bd85af72b --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/assets/images/guide-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/examples/st-oauth2-authorization-server/frontend/src/assets/images/index.ts b/examples/st-oauth2-authorization-server/frontend/src/assets/images/index.ts new file mode 100644 index 000000000..7adf036c4 --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/assets/images/index.ts @@ -0,0 +1,8 @@ +import SeparatorLine from "./separator-line.svg"; +import ArrowRight from "./arrow-right-icon.svg"; +import SignOutIcon from "./sign-out-icon.svg"; +import GuideIcon from "./guide-icon.svg"; +import BlogsIcon from "./blogs-icon.svg"; +import CelebrateIcon from "./celebrate-icon.svg"; + +export { SeparatorLine, ArrowRight, SignOutIcon, GuideIcon, BlogsIcon, CelebrateIcon }; diff --git a/examples/st-oauth2-authorization-server/frontend/src/assets/images/separator-line.svg b/examples/st-oauth2-authorization-server/frontend/src/assets/images/separator-line.svg new file mode 100644 index 000000000..7127a00dc --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/assets/images/separator-line.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/examples/st-oauth2-authorization-server/frontend/src/assets/images/sign-out-icon.svg b/examples/st-oauth2-authorization-server/frontend/src/assets/images/sign-out-icon.svg new file mode 100644 index 000000000..6cc4f85fd --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/assets/images/sign-out-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/examples/st-oauth2-authorization-server/frontend/src/config.tsx b/examples/st-oauth2-authorization-server/frontend/src/config.tsx new file mode 100644 index 000000000..4f556c39d --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/config.tsx @@ -0,0 +1,33 @@ +import EmailPassword from "supertokens-auth-react/recipe/emailpassword"; +import OAuth2Provider from "supertokens-auth-react/recipe/oauth2provider"; +import { EmailPasswordPreBuiltUI } from "supertokens-auth-react/recipe/emailpassword/prebuiltui"; +import Session from "supertokens-auth-react/recipe/session"; + +export function getWebsiteDomain() { + return process.env.REACT_APP_AUTH_SERVER_WEBSITE_URL || "http://localhost:3005"; +} + +export function getApiDomain() { + return process.env.REACT_APP_AUTH_SERVER_API_URL || "http://localhost:3006"; +} + +export const SuperTokensConfig = { + appInfo: { + appName: "SuperTokens Demo App", + apiDomain: getApiDomain(), + websiteDomain: getWebsiteDomain(), + }, + // recipeList contains all the modules that you want to + // use from SuperTokens. See the full list here: https://supertokens.com/docs/guides + recipeList: [EmailPassword.init(), OAuth2Provider.init(), Session.init()], +}; + +export const recipeDetails = { + docsLink: "https://supertokens.com/docs/thirdparty/introduction", +}; + +export const PreBuiltUIList = [EmailPasswordPreBuiltUI]; + +export const ComponentWrapper = (props: { children: JSX.Element }): JSX.Element => { + return props.children; +}; diff --git a/examples/st-oauth2-authorization-server/frontend/src/index.css b/examples/st-oauth2-authorization-server/frontend/src/index.css new file mode 100644 index 000000000..04146b5e7 --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/index.css @@ -0,0 +1,11 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", + "Droid Sans", "Helvetica Neue", sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace; +} diff --git a/examples/st-oauth2-authorization-server/frontend/src/index.tsx b/examples/st-oauth2-authorization-server/frontend/src/index.tsx new file mode 100644 index 000000000..399c737cd --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/index.tsx @@ -0,0 +1,11 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "./index.css"; +import App from "./App"; + +const root = ReactDOM.createRoot(document.getElementById("root") as HTMLElement); +root.render( + + + +); diff --git a/examples/st-oauth2-authorization-server/frontend/src/react-app-env.d.ts b/examples/st-oauth2-authorization-server/frontend/src/react-app-env.d.ts new file mode 100644 index 000000000..6431bc5fc --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/examples/st-oauth2-authorization-server/frontend/tsconfig.json b/examples/st-oauth2-authorization-server/frontend/tsconfig.json new file mode 100644 index 000000000..c0555cbc6 --- /dev/null +++ b/examples/st-oauth2-authorization-server/frontend/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"] +} diff --git a/examples/st-oauth2-authorization-server/package.json b/examples/st-oauth2-authorization-server/package.json new file mode 100644 index 000000000..7f4d72673 --- /dev/null +++ b/examples/st-oauth2-authorization-server/package.json @@ -0,0 +1,49 @@ +{ + "name": "st-oauth2-authorization-server", + "version": "0.0.1", + "description": "", + "main": "index.js", + "scripts": { + "start:frontend": "cd frontend && npm run start", + "start:frontend-live-demo-app": "cd frontend && npx serve -s build", + "start:backend": "cd backend && npm run start", + "start:backend-live-demo-app": "cd backend && ./startLiveDemoApp.sh", + "start": "npm-run-all --parallel start:frontend start:backend", + "start-live-demo-app": "npx npm-run-all --parallel start:frontend-live-demo-app start:backend-live-demo-app" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^27.5.2", + "@types/node": "^16.11.56", + "@types/react": "^18.0.18", + "@types/react-dom": "^18.0.6", + "axios": "^0.21.0", + "cors": "^2.8.5", + "express": "^4.18.1", + "helmet": "^5.1.0", + "morgan": "^1.10.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.2.1", + "react-scripts": "5.0.1", + "supertokens-auth-react": "github:supertokens/supertokens-auth-react#feat/oauth2/base", + "supertokens-node": "github:supertokens/supertokens-node#feat/oauth2/base", + "supertokens-web-js": "github:supertokens/supertokens-web-js#feat/oauth2/base", + "ts-node-dev": "^2.0.0", + "typescript": "^4.8.2", + "web-vitals": "^2.1.4" + }, + "devDependencies": { + "@types/cors": "^2.8.12", + "@types/express": "^4.17.17", + "@types/morgan": "^1.9.3", + "@types/node": "^16.11.38", + "nodemon": "^2.0.16", + "npm-run-all": "^4.1.5" + } +} From 9fc512b5b1ce71b4970ac0c76bb5654d4e80dc54 Mon Sep 17 00:00:00 2001 From: Ankit Tiwari Date: Fri, 9 Aug 2024 16:42:33 +0530 Subject: [PATCH 02/20] feat: Add with-oauth2-without-supertokens --- .../LICENSE.md | 192 ++++++++++++++++++ .../with-oauth2-without-supertokens/README.md | 59 ++++++ .../package.json | 50 +++++ .../public/favicon.ico | Bin 0 -> 3870 bytes .../public/index.html | 40 ++++ .../public/manifest.json | 25 +++ .../public/robots.txt | 3 + .../src/App.css | 26 +++ .../src/App.tsx | 48 +++++ .../src/assets/fonts/MenloRegular.ttf | Bin 0 -> 475160 bytes .../src/index.css | 11 + .../src/index.tsx | 11 + .../src/react-app-env.d.ts | 1 + .../tsconfig.json | 20 ++ 14 files changed, 486 insertions(+) create mode 100644 examples/with-oauth2-without-supertokens/LICENSE.md create mode 100644 examples/with-oauth2-without-supertokens/README.md create mode 100644 examples/with-oauth2-without-supertokens/package.json create mode 100644 examples/with-oauth2-without-supertokens/public/favicon.ico create mode 100644 examples/with-oauth2-without-supertokens/public/index.html create mode 100644 examples/with-oauth2-without-supertokens/public/manifest.json create mode 100644 examples/with-oauth2-without-supertokens/public/robots.txt create mode 100644 examples/with-oauth2-without-supertokens/src/App.css create mode 100644 examples/with-oauth2-without-supertokens/src/App.tsx create mode 100644 examples/with-oauth2-without-supertokens/src/assets/fonts/MenloRegular.ttf create mode 100644 examples/with-oauth2-without-supertokens/src/index.css create mode 100644 examples/with-oauth2-without-supertokens/src/index.tsx create mode 100644 examples/with-oauth2-without-supertokens/src/react-app-env.d.ts create mode 100644 examples/with-oauth2-without-supertokens/tsconfig.json diff --git a/examples/with-oauth2-without-supertokens/LICENSE.md b/examples/with-oauth2-without-supertokens/LICENSE.md new file mode 100644 index 000000000..588f27e68 --- /dev/null +++ b/examples/with-oauth2-without-supertokens/LICENSE.md @@ -0,0 +1,192 @@ +Copyright (c) 2020, VRAI Labs and/or its affiliates. All rights reserved. + +This software is licensed under the Apache License, Version 2.0 (the +"License") as published by the Apache Software Foundation. + +You may not use this software except in compliance with the License. A copy +of the License is available below the line. + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations +under the License. + +--- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/examples/with-oauth2-without-supertokens/README.md b/examples/with-oauth2-without-supertokens/README.md new file mode 100644 index 000000000..019ab98aa --- /dev/null +++ b/examples/with-oauth2-without-supertokens/README.md @@ -0,0 +1,59 @@ +![SuperTokens banner](https://raw.githubusercontent.com/supertokens/supertokens-logo/master/images/Artboard%20%E2%80%93%2027%402x.png) + +# Example React App using a Generic OAuth2 Library and SuperTokens as OAuth2 Provider + +This examples app demonstrates how to use SuperTokens as OAuth2 Provider in a React App using a generic OAuth2 library such as [react-oidc-context](https://github.com/authts/react-oidc-context). + +## Project setup + +Clone the repo, enter the directory, and use `npm` to install the project dependencies: + +```bash +git clone https://github.com/supertokens/supertokens-auth-react +cd supertokens-auth-react/examples/with-oauth2-without-supertokens +npm install +``` + +## 1. Create an OAuth2 Client + +```bash +curl -X POST http://localhost:4445/admin/clients \ + -H "Content-Type: application/json" \ + -d '{ + "scope": "offline_access openid email", + "redirect_uris": ["http://localhost:3000"], + "access_token_strategy": "jwt", + "token_endpoint_auth_method": "none", + "grant_types": ["authorization_code", "refresh_token"], + "response_types": ["code", "id_token"], + "skip_consent": true + }' +``` + +Note down the `client_id` from the response. + +## 2. Run the st-oauth2-authorization-server + +1. Open a new terminal window and navigate to `supertokens-auth-react/examples/ +st-oauth2-authorization-server` +2. Read the README.md to setup `st-oauth2-authorization-server ` and run it using `npm start` + +## 3. Update config + +Open the `App.tsx` file and update `clientId` and `authServerUrl` values as per step 1 and step 2. + +## 4. Run the demo app + +This compiles and serves the React app. + +```bash +npm run start +``` + +## Author + +Created with :heart: by the folks at supertokens.com. + +## License + +This project is licensed under the Apache 2.0 license. diff --git a/examples/with-oauth2-without-supertokens/package.json b/examples/with-oauth2-without-supertokens/package.json new file mode 100644 index 000000000..adb7336c5 --- /dev/null +++ b/examples/with-oauth2-without-supertokens/package.json @@ -0,0 +1,50 @@ +{ + "name": "with-oauth2-without-supertokens", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^27.5.2", + "@types/node": "^16.11.56", + "@types/react": "^18.0.18", + "@types/react-dom": "^18.0.6", + "axios": "^0.21.0", + "helmet": "^5.1.0", + "oidc-client-ts": "^3.0.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-oauth2-code-pkce": "^1.20.1", + "react-oidc-context": "^3.1.0", + "react-router-dom": "^6.2.1", + "react-scripts": "5.0.1", + "ts-node-dev": "^2.0.0", + "typescript": "^4.8.2", + "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "BROWSER=none react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/examples/with-oauth2-without-supertokens/public/favicon.ico b/examples/with-oauth2-without-supertokens/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/examples/with-oauth2-without-supertokens/public/index.html b/examples/with-oauth2-without-supertokens/public/index.html new file mode 100644 index 000000000..6f1f7cb51 --- /dev/null +++ b/examples/with-oauth2-without-supertokens/public/index.html @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + React App + + + +