From 0dfaa59cc7ffbc19766d9e15b8521ce1ffdee708 Mon Sep 17 00:00:00 2001 From: Chakravarthi Medicharla Date: Mon, 11 Mar 2024 19:31:32 +0530 Subject: [PATCH 1/4] Update dashboard csp docs --- .../init/user-management-dashboard/setup.mdx | 8 ++++++-- .../setup/user-management-dashboard/setup.mdx | 8 ++++++-- .../init/user-management-dashboard/setup.mdx | 8 ++++++-- .../setup/user-management-dashboard/setup.mdx | 8 ++++++-- v2/static/img/dashboard/csp-error.png | Bin 0 -> 64164 bytes .../init/user-management-dashboard/setup.mdx | 8 ++++++-- .../setup/user-management-dashboard/setup.mdx | 8 ++++++-- .../init/user-management-dashboard/setup.mdx | 8 ++++++-- .../setup/user-management-dashboard/setup.mdx | 8 ++++++-- .../init/user-management-dashboard/setup.mdx | 8 ++++++-- .../setup/user-management-dashboard/setup.mdx | 8 ++++++-- v2/userdashboard/about.mdx | 8 ++++++-- 12 files changed, 66 insertions(+), 22 deletions(-) create mode 100644 v2/static/img/dashboard/csp-error.png diff --git a/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx b/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx index 3225d8e43..0569bd667 100644 --- a/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx @@ -257,15 +257,19 @@ init( ## Content Security Policy -If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly +If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +![CSP error handled UI](/img/dashboard/csp-error.png) + +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. ```text script-src: 'self' 'unsafe-inline' - https://cdn.jsdelivr.net/gh/supertokens/ + https://google.com img-src: + https://google.com https://cdn.jsdelivr.net/gh/supertokens/ ``` diff --git a/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx index 3225d8e43..0569bd667 100644 --- a/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -257,15 +257,19 @@ init( ## Content Security Policy -If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly +If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +![CSP error handled UI](/img/dashboard/csp-error.png) + +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. ```text script-src: 'self' 'unsafe-inline' - https://cdn.jsdelivr.net/gh/supertokens/ + https://google.com img-src: + https://google.com https://cdn.jsdelivr.net/gh/supertokens/ ``` diff --git a/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx b/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx index 3225d8e43..0569bd667 100644 --- a/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx @@ -257,15 +257,19 @@ init( ## Content Security Policy -If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly +If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +![CSP error handled UI](/img/dashboard/csp-error.png) + +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. ```text script-src: 'self' 'unsafe-inline' - https://cdn.jsdelivr.net/gh/supertokens/ + https://google.com img-src: + https://google.com https://cdn.jsdelivr.net/gh/supertokens/ ``` diff --git a/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx index 3225d8e43..0569bd667 100644 --- a/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -257,15 +257,19 @@ init( ## Content Security Policy -If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly +If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +![CSP error handled UI](/img/dashboard/csp-error.png) + +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. ```text script-src: 'self' 'unsafe-inline' - https://cdn.jsdelivr.net/gh/supertokens/ + https://google.com img-src: + https://google.com https://cdn.jsdelivr.net/gh/supertokens/ ``` diff --git a/v2/static/img/dashboard/csp-error.png b/v2/static/img/dashboard/csp-error.png new file mode 100644 index 0000000000000000000000000000000000000000..b16070dda3fb20798fa20281e4e9ae7bded77721 GIT binary patch literal 64164 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 e`v1A#x-VODaG;_d#|WCxGzK~*+QnK Date: Mon, 11 Mar 2024 19:38:39 +0530 Subject: [PATCH 2/4] Adds learn more link to csp.com --- .../custom-ui/init/user-management-dashboard/setup.mdx | 4 ++-- .../pre-built-ui/setup/user-management-dashboard/setup.mdx | 4 ++-- .../custom-ui/init/user-management-dashboard/setup.mdx | 4 ++-- .../pre-built-ui/setup/user-management-dashboard/setup.mdx | 4 ++-- .../custom-ui/init/user-management-dashboard/setup.mdx | 4 ++-- .../pre-built-ui/setup/user-management-dashboard/setup.mdx | 4 ++-- .../custom-ui/init/user-management-dashboard/setup.mdx | 4 ++-- .../pre-built-ui/setup/user-management-dashboard/setup.mdx | 4 ++-- .../custom-ui/init/user-management-dashboard/setup.mdx | 4 ++-- .../pre-built-ui/setup/user-management-dashboard/setup.mdx | 4 ++-- v2/userdashboard/about.mdx | 4 ++-- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx b/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx index 0569bd667..290b36f17 100644 --- a/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx @@ -257,11 +257,11 @@ init( ## Content Security Policy -If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) ```text script-src: 'self' diff --git a/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx index 0569bd667..290b36f17 100644 --- a/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -257,11 +257,11 @@ init( ## Content Security Policy -If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) ```text script-src: 'self' diff --git a/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx b/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx index 0569bd667..290b36f17 100644 --- a/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx @@ -257,11 +257,11 @@ init( ## Content Security Policy -If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) ```text script-src: 'self' diff --git a/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx index 0569bd667..290b36f17 100644 --- a/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -257,11 +257,11 @@ init( ## Content Security Policy -If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) ```text script-src: 'self' diff --git a/v2/thirdparty/custom-ui/init/user-management-dashboard/setup.mdx b/v2/thirdparty/custom-ui/init/user-management-dashboard/setup.mdx index 0569bd667..290b36f17 100644 --- a/v2/thirdparty/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/thirdparty/custom-ui/init/user-management-dashboard/setup.mdx @@ -257,11 +257,11 @@ init( ## Content Security Policy -If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) ```text script-src: 'self' diff --git a/v2/thirdparty/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/thirdparty/pre-built-ui/setup/user-management-dashboard/setup.mdx index 0569bd667..290b36f17 100644 --- a/v2/thirdparty/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/thirdparty/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -257,11 +257,11 @@ init( ## Content Security Policy -If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) ```text script-src: 'self' diff --git a/v2/thirdpartyemailpassword/custom-ui/init/user-management-dashboard/setup.mdx b/v2/thirdpartyemailpassword/custom-ui/init/user-management-dashboard/setup.mdx index 0569bd667..290b36f17 100644 --- a/v2/thirdpartyemailpassword/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/thirdpartyemailpassword/custom-ui/init/user-management-dashboard/setup.mdx @@ -257,11 +257,11 @@ init( ## Content Security Policy -If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) ```text script-src: 'self' diff --git a/v2/thirdpartyemailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/thirdpartyemailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx index 0569bd667..290b36f17 100644 --- a/v2/thirdpartyemailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/thirdpartyemailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -257,11 +257,11 @@ init( ## Content Security Policy -If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) ```text script-src: 'self' diff --git a/v2/thirdpartypasswordless/custom-ui/init/user-management-dashboard/setup.mdx b/v2/thirdpartypasswordless/custom-ui/init/user-management-dashboard/setup.mdx index 0569bd667..290b36f17 100644 --- a/v2/thirdpartypasswordless/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/thirdpartypasswordless/custom-ui/init/user-management-dashboard/setup.mdx @@ -257,11 +257,11 @@ init( ## Content Security Policy -If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) ```text script-src: 'self' diff --git a/v2/thirdpartypasswordless/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/thirdpartypasswordless/pre-built-ui/setup/user-management-dashboard/setup.mdx index 0569bd667..290b36f17 100644 --- a/v2/thirdpartypasswordless/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/thirdpartypasswordless/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -257,11 +257,11 @@ init( ## Content Security Policy -If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) ```text script-src: 'self' diff --git a/v2/userdashboard/about.mdx b/v2/userdashboard/about.mdx index 54df607c1..6d6d46cb6 100644 --- a/v2/userdashboard/about.mdx +++ b/v2/userdashboard/about.mdx @@ -263,11 +263,11 @@ init( ## Content Security Policy -If your backend returns a `Content-Security-Policy header`, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. +If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. +For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) ```text script-src: 'self' From 81e3260deca4ee02b5b38140aece1a2af40fa235 Mon Sep 17 00:00:00 2001 From: Chakravarthi Medicharla Date: Tue, 12 Mar 2024 11:56:29 +0530 Subject: [PATCH 3/4] Adds backend sdk tabs UI --- .../init/user-management-dashboard/setup.mdx | 35 +++++++++++++++++++ .../setup/user-management-dashboard/setup.mdx | 35 +++++++++++++++++++ .../init/user-management-dashboard/setup.mdx | 35 +++++++++++++++++++ .../setup/user-management-dashboard/setup.mdx | 35 +++++++++++++++++++ .../init/user-management-dashboard/setup.mdx | 35 +++++++++++++++++++ .../setup/user-management-dashboard/setup.mdx | 35 +++++++++++++++++++ .../init/user-management-dashboard/setup.mdx | 35 +++++++++++++++++++ .../setup/user-management-dashboard/setup.mdx | 35 +++++++++++++++++++ .../init/user-management-dashboard/setup.mdx | 35 +++++++++++++++++++ .../setup/user-management-dashboard/setup.mdx | 35 +++++++++++++++++++ v2/userdashboard/about.mdx | 35 +++++++++++++++++++ 11 files changed, 385 insertions(+) diff --git a/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx b/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx index 290b36f17..4eb6bbc2c 100644 --- a/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx @@ -257,6 +257,9 @@ init( ## Content Security Policy + + + If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) @@ -273,4 +276,36 @@ img-src: https://cdn.jsdelivr.net/gh/supertokens/ ``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + \ No newline at end of file diff --git a/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx index 290b36f17..4eb6bbc2c 100644 --- a/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -257,6 +257,9 @@ init( ## Content Security Policy + + + If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) @@ -273,4 +276,36 @@ img-src: https://cdn.jsdelivr.net/gh/supertokens/ ``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + \ No newline at end of file diff --git a/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx b/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx index 290b36f17..4eb6bbc2c 100644 --- a/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx @@ -257,6 +257,9 @@ init( ## Content Security Policy + + + If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) @@ -273,4 +276,36 @@ img-src: https://cdn.jsdelivr.net/gh/supertokens/ ``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + \ No newline at end of file diff --git a/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx index 290b36f17..4eb6bbc2c 100644 --- a/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -257,6 +257,9 @@ init( ## Content Security Policy + + + If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) @@ -273,4 +276,36 @@ img-src: https://cdn.jsdelivr.net/gh/supertokens/ ``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + \ No newline at end of file diff --git a/v2/thirdparty/custom-ui/init/user-management-dashboard/setup.mdx b/v2/thirdparty/custom-ui/init/user-management-dashboard/setup.mdx index 290b36f17..4eb6bbc2c 100644 --- a/v2/thirdparty/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/thirdparty/custom-ui/init/user-management-dashboard/setup.mdx @@ -257,6 +257,9 @@ init( ## Content Security Policy + + + If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) @@ -273,4 +276,36 @@ img-src: https://cdn.jsdelivr.net/gh/supertokens/ ``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + \ No newline at end of file diff --git a/v2/thirdparty/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/thirdparty/pre-built-ui/setup/user-management-dashboard/setup.mdx index 290b36f17..4eb6bbc2c 100644 --- a/v2/thirdparty/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/thirdparty/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -257,6 +257,9 @@ init( ## Content Security Policy + + + If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) @@ -273,4 +276,36 @@ img-src: https://cdn.jsdelivr.net/gh/supertokens/ ``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + \ No newline at end of file diff --git a/v2/thirdpartyemailpassword/custom-ui/init/user-management-dashboard/setup.mdx b/v2/thirdpartyemailpassword/custom-ui/init/user-management-dashboard/setup.mdx index 290b36f17..4eb6bbc2c 100644 --- a/v2/thirdpartyemailpassword/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/thirdpartyemailpassword/custom-ui/init/user-management-dashboard/setup.mdx @@ -257,6 +257,9 @@ init( ## Content Security Policy + + + If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) @@ -273,4 +276,36 @@ img-src: https://cdn.jsdelivr.net/gh/supertokens/ ``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + \ No newline at end of file diff --git a/v2/thirdpartyemailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/thirdpartyemailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx index 290b36f17..4eb6bbc2c 100644 --- a/v2/thirdpartyemailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/thirdpartyemailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -257,6 +257,9 @@ init( ## Content Security Policy + + + If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) @@ -273,4 +276,36 @@ img-src: https://cdn.jsdelivr.net/gh/supertokens/ ``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + \ No newline at end of file diff --git a/v2/thirdpartypasswordless/custom-ui/init/user-management-dashboard/setup.mdx b/v2/thirdpartypasswordless/custom-ui/init/user-management-dashboard/setup.mdx index 290b36f17..4eb6bbc2c 100644 --- a/v2/thirdpartypasswordless/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/thirdpartypasswordless/custom-ui/init/user-management-dashboard/setup.mdx @@ -257,6 +257,9 @@ init( ## Content Security Policy + + + If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) @@ -273,4 +276,36 @@ img-src: https://cdn.jsdelivr.net/gh/supertokens/ ``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + \ No newline at end of file diff --git a/v2/thirdpartypasswordless/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/thirdpartypasswordless/pre-built-ui/setup/user-management-dashboard/setup.mdx index 290b36f17..4eb6bbc2c 100644 --- a/v2/thirdpartypasswordless/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/thirdpartypasswordless/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -257,6 +257,9 @@ init( ## Content Security Policy + + + If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) @@ -273,4 +276,36 @@ img-src: https://cdn.jsdelivr.net/gh/supertokens/ ``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + \ No newline at end of file diff --git a/v2/userdashboard/about.mdx b/v2/userdashboard/about.mdx index 6d6d46cb6..acb0d9a19 100644 --- a/v2/userdashboard/about.mdx +++ b/v2/userdashboard/about.mdx @@ -263,6 +263,9 @@ init( ## Content Security Policy + + + If your backend returns a `Content-Security-Policy` header, you will encounter the following UI displaying the CSP violation details. Follow the instructions provided in this UI to make necessary adjustments to your backend CSP configuration. ![CSP error handled UI](/img/dashboard/csp-error.png) @@ -279,4 +282,36 @@ img-src: https://cdn.jsdelivr.net/gh/supertokens/ ``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + +If you return a `Content-Security-Policy` header in from your backend, you will need to include the following directives for the user management dashboard to work correctly + +```text +script-src: + 'self' + 'unsafe-inline' + https://cdn.jsdelivr.net/gh/supertokens/ +img-src: + https://cdn.jsdelivr.net/gh/supertokens/ +``` + + + + \ No newline at end of file From c3d07e7e1c907b98a533bd13313973dccb068f85 Mon Sep 17 00:00:00 2001 From: Chakravarthi Medicharla Date: Tue, 12 Mar 2024 13:11:27 +0530 Subject: [PATCH 4/4] update golang and python csp docs --- .../init/user-management-dashboard/setup.mdx | 21 +++++++++++++++++-- .../setup/user-management-dashboard/setup.mdx | 21 +++++++++++++++++-- .../init/user-management-dashboard/setup.mdx | 21 +++++++++++++++++-- .../setup/user-management-dashboard/setup.mdx | 21 +++++++++++++++++-- .../init/user-management-dashboard/setup.mdx | 21 +++++++++++++++++-- .../setup/user-management-dashboard/setup.mdx | 21 +++++++++++++++++-- .../init/user-management-dashboard/setup.mdx | 21 +++++++++++++++++-- .../setup/user-management-dashboard/setup.mdx | 21 +++++++++++++++++-- .../init/user-management-dashboard/setup.mdx | 21 +++++++++++++++++-- .../setup/user-management-dashboard/setup.mdx | 21 +++++++++++++++++-- v2/userdashboard/about.mdx | 21 +++++++++++++++++-- 11 files changed, 209 insertions(+), 22 deletions(-) diff --git a/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx b/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx index 4eb6bbc2c..78cf78888 100644 --- a/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/emailpassword/custom-ui/init/user-management-dashboard/setup.mdx @@ -264,7 +264,9 @@ If your backend returns a `Content-Security-Policy` header, you will encounter t ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) + +For example, to address the error message displayed in the above screenshot, you need to modify your `original policy`. In the given example, it appears as follows: + ```text script-src: 'self' @@ -273,10 +275,23 @@ script-src: img-src: https://google.com - https://cdn.jsdelivr.net/gh/supertokens/ ``` +To resolve this issue, make the following adjustments: + +```text +script-src: + 'self' + 'unsafe-inline' + https://google.com + +img-src: + https://google.com + https://cdn.jsdelivr.net/gh/supertokens/ + +``` +Essentially, you need to include the domain listed as the `Blocked URI` in your violated directive block within your original policy. @@ -289,6 +304,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` @@ -303,6 +319,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` diff --git a/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx index 4eb6bbc2c..78cf78888 100644 --- a/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/emailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -264,7 +264,9 @@ If your backend returns a `Content-Security-Policy` header, you will encounter t ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) + +For example, to address the error message displayed in the above screenshot, you need to modify your `original policy`. In the given example, it appears as follows: + ```text script-src: 'self' @@ -273,10 +275,23 @@ script-src: img-src: https://google.com - https://cdn.jsdelivr.net/gh/supertokens/ ``` +To resolve this issue, make the following adjustments: + +```text +script-src: + 'self' + 'unsafe-inline' + https://google.com + +img-src: + https://google.com + https://cdn.jsdelivr.net/gh/supertokens/ + +``` +Essentially, you need to include the domain listed as the `Blocked URI` in your violated directive block within your original policy. @@ -289,6 +304,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` @@ -303,6 +319,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` diff --git a/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx b/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx index 4eb6bbc2c..78cf78888 100644 --- a/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/passwordless/custom-ui/init/user-management-dashboard/setup.mdx @@ -264,7 +264,9 @@ If your backend returns a `Content-Security-Policy` header, you will encounter t ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) + +For example, to address the error message displayed in the above screenshot, you need to modify your `original policy`. In the given example, it appears as follows: + ```text script-src: 'self' @@ -273,10 +275,23 @@ script-src: img-src: https://google.com - https://cdn.jsdelivr.net/gh/supertokens/ ``` +To resolve this issue, make the following adjustments: + +```text +script-src: + 'self' + 'unsafe-inline' + https://google.com + +img-src: + https://google.com + https://cdn.jsdelivr.net/gh/supertokens/ + +``` +Essentially, you need to include the domain listed as the `Blocked URI` in your violated directive block within your original policy. @@ -289,6 +304,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` @@ -303,6 +319,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` diff --git a/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx index 4eb6bbc2c..78cf78888 100644 --- a/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/passwordless/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -264,7 +264,9 @@ If your backend returns a `Content-Security-Policy` header, you will encounter t ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) + +For example, to address the error message displayed in the above screenshot, you need to modify your `original policy`. In the given example, it appears as follows: + ```text script-src: 'self' @@ -273,10 +275,23 @@ script-src: img-src: https://google.com - https://cdn.jsdelivr.net/gh/supertokens/ ``` +To resolve this issue, make the following adjustments: + +```text +script-src: + 'self' + 'unsafe-inline' + https://google.com + +img-src: + https://google.com + https://cdn.jsdelivr.net/gh/supertokens/ + +``` +Essentially, you need to include the domain listed as the `Blocked URI` in your violated directive block within your original policy. @@ -289,6 +304,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` @@ -303,6 +319,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` diff --git a/v2/thirdparty/custom-ui/init/user-management-dashboard/setup.mdx b/v2/thirdparty/custom-ui/init/user-management-dashboard/setup.mdx index 4eb6bbc2c..78cf78888 100644 --- a/v2/thirdparty/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/thirdparty/custom-ui/init/user-management-dashboard/setup.mdx @@ -264,7 +264,9 @@ If your backend returns a `Content-Security-Policy` header, you will encounter t ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) + +For example, to address the error message displayed in the above screenshot, you need to modify your `original policy`. In the given example, it appears as follows: + ```text script-src: 'self' @@ -273,10 +275,23 @@ script-src: img-src: https://google.com - https://cdn.jsdelivr.net/gh/supertokens/ ``` +To resolve this issue, make the following adjustments: + +```text +script-src: + 'self' + 'unsafe-inline' + https://google.com + +img-src: + https://google.com + https://cdn.jsdelivr.net/gh/supertokens/ + +``` +Essentially, you need to include the domain listed as the `Blocked URI` in your violated directive block within your original policy. @@ -289,6 +304,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` @@ -303,6 +319,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` diff --git a/v2/thirdparty/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/thirdparty/pre-built-ui/setup/user-management-dashboard/setup.mdx index 4eb6bbc2c..78cf78888 100644 --- a/v2/thirdparty/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/thirdparty/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -264,7 +264,9 @@ If your backend returns a `Content-Security-Policy` header, you will encounter t ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) + +For example, to address the error message displayed in the above screenshot, you need to modify your `original policy`. In the given example, it appears as follows: + ```text script-src: 'self' @@ -273,10 +275,23 @@ script-src: img-src: https://google.com - https://cdn.jsdelivr.net/gh/supertokens/ ``` +To resolve this issue, make the following adjustments: + +```text +script-src: + 'self' + 'unsafe-inline' + https://google.com + +img-src: + https://google.com + https://cdn.jsdelivr.net/gh/supertokens/ + +``` +Essentially, you need to include the domain listed as the `Blocked URI` in your violated directive block within your original policy. @@ -289,6 +304,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` @@ -303,6 +319,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` diff --git a/v2/thirdpartyemailpassword/custom-ui/init/user-management-dashboard/setup.mdx b/v2/thirdpartyemailpassword/custom-ui/init/user-management-dashboard/setup.mdx index 4eb6bbc2c..78cf78888 100644 --- a/v2/thirdpartyemailpassword/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/thirdpartyemailpassword/custom-ui/init/user-management-dashboard/setup.mdx @@ -264,7 +264,9 @@ If your backend returns a `Content-Security-Policy` header, you will encounter t ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) + +For example, to address the error message displayed in the above screenshot, you need to modify your `original policy`. In the given example, it appears as follows: + ```text script-src: 'self' @@ -273,10 +275,23 @@ script-src: img-src: https://google.com - https://cdn.jsdelivr.net/gh/supertokens/ ``` +To resolve this issue, make the following adjustments: + +```text +script-src: + 'self' + 'unsafe-inline' + https://google.com + +img-src: + https://google.com + https://cdn.jsdelivr.net/gh/supertokens/ + +``` +Essentially, you need to include the domain listed as the `Blocked URI` in your violated directive block within your original policy. @@ -289,6 +304,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` @@ -303,6 +319,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` diff --git a/v2/thirdpartyemailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/thirdpartyemailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx index 4eb6bbc2c..78cf78888 100644 --- a/v2/thirdpartyemailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/thirdpartyemailpassword/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -264,7 +264,9 @@ If your backend returns a `Content-Security-Policy` header, you will encounter t ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) + +For example, to address the error message displayed in the above screenshot, you need to modify your `original policy`. In the given example, it appears as follows: + ```text script-src: 'self' @@ -273,10 +275,23 @@ script-src: img-src: https://google.com - https://cdn.jsdelivr.net/gh/supertokens/ ``` +To resolve this issue, make the following adjustments: + +```text +script-src: + 'self' + 'unsafe-inline' + https://google.com + +img-src: + https://google.com + https://cdn.jsdelivr.net/gh/supertokens/ + +``` +Essentially, you need to include the domain listed as the `Blocked URI` in your violated directive block within your original policy. @@ -289,6 +304,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` @@ -303,6 +319,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` diff --git a/v2/thirdpartypasswordless/custom-ui/init/user-management-dashboard/setup.mdx b/v2/thirdpartypasswordless/custom-ui/init/user-management-dashboard/setup.mdx index 4eb6bbc2c..78cf78888 100644 --- a/v2/thirdpartypasswordless/custom-ui/init/user-management-dashboard/setup.mdx +++ b/v2/thirdpartypasswordless/custom-ui/init/user-management-dashboard/setup.mdx @@ -264,7 +264,9 @@ If your backend returns a `Content-Security-Policy` header, you will encounter t ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) + +For example, to address the error message displayed in the above screenshot, you need to modify your `original policy`. In the given example, it appears as follows: + ```text script-src: 'self' @@ -273,10 +275,23 @@ script-src: img-src: https://google.com - https://cdn.jsdelivr.net/gh/supertokens/ ``` +To resolve this issue, make the following adjustments: + +```text +script-src: + 'self' + 'unsafe-inline' + https://google.com + +img-src: + https://google.com + https://cdn.jsdelivr.net/gh/supertokens/ + +``` +Essentially, you need to include the domain listed as the `Blocked URI` in your violated directive block within your original policy. @@ -289,6 +304,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` @@ -303,6 +319,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` diff --git a/v2/thirdpartypasswordless/pre-built-ui/setup/user-management-dashboard/setup.mdx b/v2/thirdpartypasswordless/pre-built-ui/setup/user-management-dashboard/setup.mdx index 4eb6bbc2c..78cf78888 100644 --- a/v2/thirdpartypasswordless/pre-built-ui/setup/user-management-dashboard/setup.mdx +++ b/v2/thirdpartypasswordless/pre-built-ui/setup/user-management-dashboard/setup.mdx @@ -264,7 +264,9 @@ If your backend returns a `Content-Security-Policy` header, you will encounter t ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) + +For example, to address the error message displayed in the above screenshot, you need to modify your `original policy`. In the given example, it appears as follows: + ```text script-src: 'self' @@ -273,10 +275,23 @@ script-src: img-src: https://google.com - https://cdn.jsdelivr.net/gh/supertokens/ ``` +To resolve this issue, make the following adjustments: + +```text +script-src: + 'self' + 'unsafe-inline' + https://google.com + +img-src: + https://google.com + https://cdn.jsdelivr.net/gh/supertokens/ + +``` +Essentially, you need to include the domain listed as the `Blocked URI` in your violated directive block within your original policy. @@ -289,6 +304,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` @@ -303,6 +319,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` diff --git a/v2/userdashboard/about.mdx b/v2/userdashboard/about.mdx index acb0d9a19..4d2db4143 100644 --- a/v2/userdashboard/about.mdx +++ b/v2/userdashboard/about.mdx @@ -270,7 +270,9 @@ If your backend returns a `Content-Security-Policy` header, you will encounter t ![CSP error handled UI](/img/dashboard/csp-error.png) -For example, you can resolve the aforementioned error by incorporating the blocked URI domain into your CSP configuration under the violated directive, which, in this case, is `img-src`. Learn more [here](https://content-security-policy.com/) + +For example, to address the error message displayed in the above screenshot, you need to modify your `original policy`. In the given example, it appears as follows: + ```text script-src: 'self' @@ -279,10 +281,23 @@ script-src: img-src: https://google.com - https://cdn.jsdelivr.net/gh/supertokens/ ``` +To resolve this issue, make the following adjustments: + +```text +script-src: + 'self' + 'unsafe-inline' + https://google.com + +img-src: + https://google.com + https://cdn.jsdelivr.net/gh/supertokens/ + +``` +Essentially, you need to include the domain listed as the `Blocked URI` in your violated directive block within your original policy. @@ -295,6 +310,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ``` @@ -309,6 +325,7 @@ script-src: https://cdn.jsdelivr.net/gh/supertokens/ img-src: https://cdn.jsdelivr.net/gh/supertokens/ + https://purecatamphetamine.github.io/ ```