diff --git a/apps/docs/components/framework_selector.tsx b/apps/docs/components/framework_selector.tsx new file mode 100644 index 000000000..f81c8bdb4 --- /dev/null +++ b/apps/docs/components/framework_selector.tsx @@ -0,0 +1,46 @@ +'use client'; + +import { useSearchParams } from 'next/navigation'; +import { Tabs } from 'fumadocs-ui/components/tabs'; +import { ReactNode, Suspense, useMemo } from 'react'; + +const FRAMEWORKS = ['angular', 'flutter', 'go', 'nextjs', 'react', 'symfony', 'vue']; +const DISPLAY_NAMES = ['Angular', 'Flutter', 'Go', 'Next.js', 'React', 'Symfony', 'Vue.js']; + +function FrameworkSelectorInner({ children }: { children: ReactNode }) { + const searchParams = useSearchParams(); + + const activeIndex = useMemo(() => { + const query = searchParams.get('framework')?.toLowerCase(); + if (!query) return 0; + + // Strip dots/spaces to match 'nextjs' or 'vue' reliably + const sanitizedQuery = query.replace(/[\s.]/g, ''); + const index = FRAMEWORKS.findIndex(f => + f === sanitizedQuery || f.replace(/[\s.]/g, '') === sanitizedQuery + ); + sessionStorage.setItem('framework-select', sanitizedQuery); + return index === -1 ? 0 : index; + }, [searchParams]); + + return ( + + {children} + + ); +} + +export function FrameworkSelector(props: { children: ReactNode }) { + return ( + }> + + + ); +} \ No newline at end of file diff --git a/apps/docs/content/examples/login/go.mdx b/apps/docs/content/examples/login/go.mdx index 762490170..69c9d5e68 100644 --- a/apps/docs/content/examples/login/go.mdx +++ b/apps/docs/content/examples/login/go.mdx @@ -129,7 +129,7 @@ You will need to provide some values for the program to run: - `port`: The port on which the API will be accessible, default it 8089 ```bash -go run main.go --domain --key -- clientID --redirectURI +go run main.go --domain --key --clientID --redirectURI ``` This could look like: diff --git a/apps/docs/content/guides/start/_app_config.mdx b/apps/docs/content/guides/start/_app_config.mdx new file mode 100644 index 000000000..b2c8f0d0f --- /dev/null +++ b/apps/docs/content/guides/start/_app_config.mdx @@ -0,0 +1,18 @@ +export default function AppConfig({ redirectUrl, postLogoutRedirectUrl }) { + return ( +
+
    +
  • + Auth Strategy: Authorization Code Flow (PKCE). This modern standard ensures tokens are exchanged securely without needing a client secret in your frontend. +
  • +
  • Redirect URIs: These define where users return after authentication: +
      +
    • Redirect URI: {redirectUrl} (Landing page after login)
    • +
    • Post Logout URI: {postLogoutRedirectUrl} (Landing page after logout)
    • +
    +
  • +
+
+ +); +} \ No newline at end of file diff --git a/apps/docs/content/guides/start/_app_values.mdx b/apps/docs/content/guides/start/_app_values.mdx new file mode 100644 index 000000000..588219e5b --- /dev/null +++ b/apps/docs/content/guides/start/_app_values.mdx @@ -0,0 +1,41 @@ +import ProjectClientIdImg from '@pub/img/guides/quickstart/project_client_id.png' +import ProjectClientIdSecretImg from '@pub/img/guides/quickstart/project_client_id_secret.png' +import ProjectUrlsImg from '@pub/img/guides/quickstart/project_urls.png' +import ProjectProjectIdImg from '@pub/img/guides/quickstart/project_project_id.png' + +export default function AppValue({ valueCount, clientSecret, projectID }) { + return ( +
+

+ To connect your application to ZITADEL, you need {valueCount} primary configuration values. + These are typically stored as environment variables in your project. +

+
    + {!!clientSecret == false && (
  1. + Client ID Navigate to Configurations in the left sidebar. This is the unique public identifier for your React application. + Get Client ID +
  2. )} + {!!clientSecret && (
  3. + Client ID & Client Secret Copy the client id and secret from the modal. The client id is the unique public identifier for your application. + Note: If you missed copy the secret, you can generate a new one in the Actions dropdown. + Get Client ID and Secret +
  4. )} +
  5. + Issuer URL Click on URLs in the left sidebar to find your Discovery Endpoint. + - The Value: Copy the issuer URL (e.g., https://your-instance.zitadel.cloud). + - Why it matters: ZITADEL supports OIDC Discovery. By providing just the Issuer URL to your SDK, the library automatically finds the login, logout, and token endpoints for you. + + Get URLs +
  6. + {!!projectID && (
  7. + Project ID Your currently in the application configuration which is a sub resource of the Project. Navigate to the Project with the back arrow and copy the Project ID. + + Get Project ID +
  8. )} +
+
+ + ); +} \ No newline at end of file diff --git a/apps/docs/content/guides/start/quickstart.mdx b/apps/docs/content/guides/start/quickstart.mdx index 85adceb55..981350868 100644 --- a/apps/docs/content/guides/start/quickstart.mdx +++ b/apps/docs/content/guides/start/quickstart.mdx @@ -1,18 +1,16 @@ --- title: The ZITADEL Quick Start Guide -description: Learn how to integrate OIDC PKCE authentication in React using ZITADEL in under 5 minutes. +description: Learn how to integrate OIDC PKCE authentication in your application using ZITADEL in under 5 minutes. sidebar_label: Quick Start Guide -keywords: [ZITADEL, React, OIDC, PKCE, Authentication, Identity Management] -framework: React -stack: Node.js +keywords: [ZITADEL, OIDC, PKCE, Authentication, Identity Management] --- -import { ResponsivePlayer } from "@/components/player"; +import { Tab } from 'fumadocs-ui/components/tabs'; +import { FrameworkSelector } from '@/components/framework_selector'; +import AppConfig from './_app_config.mdx'; +import AppValues from './_app_values.mdx'; -This sample app implements the [OIDC PKCE](/guides/integrate/login/oidc/login-users) flow for secure authentication. -- Login: Exchanges a code challenge for an access token via ZITADEL. -- Authorize: Uses the token to retrieve profile data from the userinfo endpoint. -- Logout: Clears the local session and revokes the token. +In this guide, you’ll set up a Zitadel account and authenticate your first example application. ## Get Started with ZITADEL Cloud @@ -34,8 +32,7 @@ This is the administrative hub for managing your billing, teams, and instances. Complete the brief onboarding questions. This data helps us prioritize the development of new features, SDKs, and integrations that matter most to our community. - -![](../../../public/img/guides/quickstart/onboarding_questions.png) +![Onboarding Questions](../../../public/img/guides/quickstart/onboarding_questions.png) ### 3. Create your ZITADEL instance @@ -65,33 +62,88 @@ Log in using the Admin credentials you just created. #### Step 1: Define your Project - **Name**: Enter a name (e.g., Project1). -- **Framework**: Select React (or choose Other if your stack isn't listed). +- **Framework**: Select your preferred framework - **Continue**: Click the Continue button. - -![](../../../public/img/guides/quickstart/create_project_react.png) +![Project Name and Framework/Language](../../../public/img/guides/quickstart/create_project_react.png) #### Step 2: Review Default Configuration ZITADEL automatically configures the best security settings for your selected framework. -- **Auth Strategy**: [Authorization Code Flow](/apis/openidoauth/grant-types#authorization-code) with [PKCE](/apis/openidoauth/grant-types#authorization-code). This modern standard ensures tokens are exchanged securely without needing a client secret in your frontend. -- **Redirect URIs**: These define where users return after authentication: - - Redirect URI: http://localhost:3000/callback (Landing page after login) - - Post Logout URI: http://localhost:3000/ (Landing page after logout) -![](../../../public/img/guides/quickstart/project_config_overview_react.png) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +![Project Configuration Overview](../../../public/img/guides/quickstart/project_config_overview_react.png) ### 5. Collect your Integration Keys -To connect your React application to ZITADEL, you need two primary configuration values. -These are typically stored as environment variables in your project. + + + + + + + + + + + + + + + + + + + + + + + -1. **Client ID** Navigate to Configurations in the left sidebar. This is the unique public identifier for your React application. -![Get Client ID](../../../public/img/guides/quickstart/project_client_id.png) -2. **Issuer URL** Click on URLs in the left sidebar to find your **Discovery Endpoint**. -- The Value: Copy the issuer URL (e.g., https://your-instance.zitadel.cloud). -- Why it matters: ZITADEL supports OIDC Discovery. By providing just the Issuer URL to your SDK, the library automatically finds the login, logout, and token endpoints for you. -![Get URLs](../../../public/img/guides/quickstart/project_urls.png) -## Integrate ZITADEL into your React App +## Integrate ZITADEL into your App ### How the Authentication Flow Works @@ -104,61 +156,266 @@ ZITADEL handles the complexity of the OIDC handshake so your app stays secure wi ### 1. Prerequisites -- [Node.js](https://nodejs.org/): v16 or later. -- Code Editor: [VS Code](https://code.visualstudio.com/) or similar -- [Yarn](https://yarnpkg.com/): This project uses Yarn for dependency management. + + + - [Node.js](https://nodejs.org/) + - Code Editor: [VS Code](https://code.visualstudio.com/) or similar + + + - [Flutter](https://docs.flutter.dev/install) + - Code Editor: [VS Code](https://code.visualstudio.com/) or similar + + + - [Go](https://go.dev/) + - Code Editor: [VS Code](https://code.visualstudio.com/) or similar + + + - [Node.js](https://nodejs.org/) + - Code Editor: [VS Code](https://code.visualstudio.com/) or similar + + + - [Node.js](https://nodejs.org/) + - Code Editor: [VS Code](https://code.visualstudio.com/) or similar + + + - [PHP](https://www.php.net/) + - [Composer](https://getcomposer.org/) + - Code Editor: [VS Code](https://code.visualstudio.com/) or similar + + + - [Node.js](https://nodejs.org/) + - Code Editor: [VS Code](https://code.visualstudio.com/) or similar + + ### 2. Get the Example Project -Clone the repository and move into the project directory: -```bash -git clone https://github.com/zitadel/zitadel-react.git -cd zitadel-react -``` + + + ```bash + git clone https://github.com/zitadel/example-auth-angular.git + cd example-auth-angular + ``` + + + ```bash + git clone https://github.com/zitadel/zitadel_flutter.git + cd zitadel_flutter + ``` + + + ```bash + git clone https://github.com/zitadel/zitadel-go.git + cd zitadel_go + ``` + + + ```bash + git clone git@github.com:zitadel/example-auth-nextjs.git + cd example-auth-nextjs + ``` + + + ```bash + git clone https://github.com/zitadel/example-auth-react.git + cd example-auth-react + ``` + + + ```bash + git clone https://github.com/zitadel/example-auth-symfony.git + cd example-auth-symfony + ``` + + + ```bash + git clone git@github.com:zitadel/example-auth-vuejs.git + cd example-auth-vuejs + ``` + + -### 3. Build and Install +### 3. Configure your Credentials -Since this repo contains the SDK source, you need to build the library before running the example: -```bash -# Build the SDK library -cd lib && yarn install && yarn build + + -# Install example app dependencies -cd .. && yarn install -``` + 1. Copy+paste the .env.example to .env.local + 2. Update the ZITADEL_CLIENT_ID and ZITADEL_DOMAIN with the client id and issuer you collected in Step 5. -### 4. Configure your Credentials + ```bash + PORT=3000 + NG_APP_ZITADEL_DOMAIN="https://your-zitadel-domain" + NG_APP_ZITADEL_CLIENT_ID="your-client-id" + NG_APP_ZITADEL_CALLBACK_URL="http://localhost:3000/auth/callback" + NG_APP_ZITADEL_POST_LOGOUT_URL="http://localhost:3000/auth/logout/callback" + NG_APP_ZITADEL_POST_LOGIN_URL="/profile" + ``` + + + No action required for this step. + The issuer and client Id will be passed directly when running the app (next step) + + + No action required for this step. + The issuer and client Id will be passed directly when running the app (next step) + + + 1. Copy+past the .env.example to .env.local + 2. Update the ZITADEL_CLIENT_ID, ZITADEL_CLIENT_SECRET and ZITADEL_DOMAIN with the client id and issuer you collected in Step 5. -Open src/App.tsx and update the config object with the **Issuer** and **Client ID** you collected in Step 5. + ```bash + NODE_ENV=development + PORT=3000 + SESSION_SECRET="your-very-secret-and-strong-session-key" + SESSION_DURATION=3600 + ZITADEL_DOMAIN="[https://your-instance.zitadel.cloud/](https://your-instance.zitadel.cloud/)" + ZITADEL_CLIENT_ID="zitadel-client-id" + ZITADEL_CLIENT_SECRET="zitadel-client-secret" + ZITADEL_CALLBACK_URL="http://localhost:3000/api/auth/callback/zitadel" + ZITADEL_POST_LOGIN_URL="/profile" + ZITADEL_POST_LOGOUT_URL="http://localhost:3000/api/auth/logout/callback" + NEXTAUTH_URL="http://localhost:3000" -```typescript -const config: ZitadelConfig = { - authority: "https://your-instance.zitadel.cloud", // Your Issuer URL - client_id: "YOUR_CLIENT_ID", // Your Client ID - redirect_uri: "http://localhost:3000/callback", - post_logout_redirect_uri: "http://localhost:3000", - response_type: 'code', - scope: 'openid profile email' -}; -``` + ``` + + + 1. Copy+paste the .env.example to .env + 2. Update the ZITADEL_CLIENT_ID and ZITADEL_DOMAIN with the client id and issuer you collected in Step 5. -### 5. Run the Application + ```bash + NODE_ENV=development + PORT=3000 + VITE_ZITADEL_DOMAIN="https://your-zitadel-domain" + VITE_ZITADEL_CLIENT_ID="your-client-id" + VITE_ZITADEL_CALLBACK_URL="http://localhost:3000/auth/callback" + VITE_ZITADEL_POST_LOGIN_URL="/profile" + VITE_ZITADEL_POST_LOGOUT_URL="http://localhost:3000" + ``` + + -Start your development server: -```bash -yarn start -``` + 1. Copy+paste the .env.example to .env + 2. Update the ZITADEL_CLIENT_ID and ZITADEL_DOMAIN with the client id and issuer you collected in Step 5. -Your app will be live at `http://localhost:3000`. Click Login to test the full PKCE flow! + ```bash + PORT=3000 + NG_APP_ZITADEL_DOMAIN="https://your-zitadel-domain" + NG_APP_ZITADEL_CLIENT_ID="your-client-id" + NG_APP_ZITADEL_CALLBACK_URL="http://localhost:3000/auth/callback" + NG_APP_ZITADEL_POST_LOGOUT_URL="http://localhost:3000/auth/logout/callback" + NG_APP_ZITADEL_POST_LOGIN_URL="/profile" + ``` + + + 1. Copy+paste the .env.example to .env + 2. Update the ZITADEL_CLIENT_ID and ZITADEL_DOMAIN with the client id and issuer you collected in Step 5. -![React Example App](../../../public/img/guides/quickstart/react_example_app.png) + ```bash + NODE_ENV=development + PORT=3000 + VITE_ZITADEL_DOMAIN="https://your-zitadel-domain" + VITE_ZITADEL_CLIENT_ID="your-client-id" + VITE_ZITADEL_CALLBACK_URL="http://localhost:3000/auth/callback" + VITE_ZITADEL_POST_LOGIN_URL="/profile" + VITE_ZITADEL_POST_LOGOUT_URL="http://localhost:3000" + ``` + + + + +### 4. Build and Run + + + + ```bash + npm install + npm run dev + ``` + + Your app will be live at `http://localhost:4200`. + + ![Angular Example App](../../../public/img/guides/quickstart/angular_example_app.png) + + + Make sure to replace the [zitadel_issuer] and [zitadel_client_id] with your own value before running the command + ```bash + flutter run -d chrome --web-port=4444 --dart-define zitadel_url=[zitadel_issuer] --dart-define zitadel_client_id=[zitadel_client_id] + ``` + + Your app will be live at `http://localhost:4444`. + + ![Flutter Example App](../../../public/img/guides/quickstart/flutter_example_app.png) + + + Make sure to replace the [zitadel_domain] (use the domain from the issuer without the https://) and [zitadel_client_id] with your own value before running the command + ```bash + go run example/app/app.go --domain [zitadel_domain] --key XKv2Lqd7YAq13NUZVUWZEWZeruqyzViM --clientID [zitadel_client_id] --redirectURI http://localhost:8089/auth/callback + ``` + + Your app will be live at `http://localhost:8089`. + + ![Go Example App](../../../public/img/guides/quickstart/go_example_app.png) + + + ```bash + npm install + + npm run dev + ``` + + Your app will be live at `http://localhost:3000`. + + ![Next.js Example App](../../../public/img/guides/quickstart/next_example_app.png) + + + + ```bash + npm install + npm run dev + ``` + + Your app will be live at `http://localhost:3000`. + + ![React Example App](../../../public/img/guides/quickstart/react_example_app.png) + + + ```bash + composer install + composer run dev + ``` + + Your app will be live at `http://localhost:3000`. + + ![Angular Example App](../../../public/img/guides/quickstart/symfony_example_app.png) + + + ```bash + npm install + npm run dev + ``` + + Your app will be live at `http://localhost:3000`. + + ![Vue Example App](../../../public/img/guides/quickstart/vue_example_app.png) + + ## Success! 🚀 -You’ve successfully integrated ZITADEL into a React application. +You’ve successfully integrated ZITADEL into an application. + + + Login policy misconfigurations that occur during the testing phase can easily lead to a [lockout](/legal/policies/account-lockout-policy). To ensure you don't lose access to your instance: + + 1. **Generate a backup PAT:** Create a [Service User Personal Access Token](/guides/integrate/service-users/personal-access-token) with the [`IAM_OWNER`](/guides/manage/console/managers) role to revert any login UI misconfigurations using the API. + 2. **Add a second Instance Manager:** Always designate at least one [**second instance manager**](/guides/manage/console/managers). + + ### What’s next? +- [**Example Applications**](/examples/introduction): Find more comprehensive guides and examples for the different frameworks - [**SSO**](/guides/integrate/services): Learn how to add SSO to your services - [**Customize the UI**](/guides/manage/customize/branding): Make the login page your own with Branding. - [**Explore the API**](/apis/introduction): Check out the ZITADEL API Reference for advanced integrations. -Need help? Join our [Discord community](https://zitadel.com/chat) or explore the full Documentation. Happy coding! +Need help? Join our [Discord community](https://zitadel.com/chat) or explore the full Documentation. Happy coding! \ No newline at end of file diff --git a/apps/docs/frameworks.json b/apps/docs/frameworks.json index b1e622db7..7f7d39af1 100644 --- a/apps/docs/frameworks.json +++ b/apps/docs/frameworks.json @@ -17,7 +17,7 @@ "id": "client-go", "title": "Go", "imgSrcDark": "/docs/img/tech/golang.svg", - "docsLink": "/docs/sdk-examples/go", + "docsLink": "/docs/guides/start/quickstart?framework=go", "client": true, "sdk": true }, @@ -48,18 +48,18 @@ "description": "This preset sets up an OIDC configuration with Authentication Code Flow, secured by PKCE", "imgSrcLight": "/docs/img/tech/angular.svg", "imgSrcDark": "/docs/img/tech/angular.svg", - "docsLink": "/docs/sdk-examples/angular" + "docsLink": "/docs/guides/start/quickstart?framework=angular" }, { "id": "flutter", "title": "Flutter", "imgSrcDark": "/docs/img/tech/flutter.svg", - "docsLink": "/docs/sdk-examples/flutter" + "docsLink": "/docs/guides/start/quickstart?framework=flutter" }, { "title": "Go", "imgSrcDark": "/docs/img/tech/golang.svg", - "docsLink": "/docs/sdk-examples/go" + "docsLink": "/docs/guides/start/quickstart?framework=go" }, { "id": "spring", @@ -77,7 +77,7 @@ "title": "Next.js", "imgSrcDark": "/docs/img/tech/nextjs.svg", "imgSrcLight": "/docs/img/tech/nextjslight.svg", - "docsLink": "/docs/sdk-examples/nextjs" + "docsLink": "/docs/guides/start/quickstart?framework=nextjs" }, { "id": "django", @@ -103,20 +103,20 @@ "title": "React", "description": "This preset sets up an OIDC configuration with Authentication Code Flow, secured by PKCE", "imgSrcDark": "/docs/img/tech/react.svg", - "docsLink": "/docs/sdk-examples/react" + "docsLink": "/docs/guides/start/quickstart?framework=react" }, { "id": "symfony", "title": "Symfony", "imgSrcDark": "/docs/img/tech/symfony.svg", - "docsLink": "/docs/sdk-examples/symfony" + "docsLink": "/docs/guides/start/quickstart?framework=symfony" }, { "id": "vue", "title": "Vue.js", "description": "This preset sets up an OIDC configuration with Authentication Code Flow, secured by PKCE", "imgSrcDark": "/docs/img/tech/vue.svg", - "docsLink": "/docs/sdk-examples/vue" + "docsLink": "/docs/guides/start/quickstart?framework=vue" }, { "title": "Dart", diff --git a/apps/docs/public/img/guides/quickstart/22.png b/apps/docs/public/img/guides/quickstart/22.png deleted file mode 100644 index 6780fd898..000000000 Binary files a/apps/docs/public/img/guides/quickstart/22.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/23.png b/apps/docs/public/img/guides/quickstart/23.png deleted file mode 100644 index 904b0c618..000000000 Binary files a/apps/docs/public/img/guides/quickstart/23.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/24.png b/apps/docs/public/img/guides/quickstart/24.png deleted file mode 100644 index 38eb37fe7..000000000 Binary files a/apps/docs/public/img/guides/quickstart/24.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/25.png b/apps/docs/public/img/guides/quickstart/25.png deleted file mode 100644 index 6cef0bfe3..000000000 Binary files a/apps/docs/public/img/guides/quickstart/25.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/26.png b/apps/docs/public/img/guides/quickstart/26.png deleted file mode 100644 index b3d8f70f9..000000000 Binary files a/apps/docs/public/img/guides/quickstart/26.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/27.png b/apps/docs/public/img/guides/quickstart/27.png deleted file mode 100644 index 89ca30c5a..000000000 Binary files a/apps/docs/public/img/guides/quickstart/27.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/28.png b/apps/docs/public/img/guides/quickstart/28.png deleted file mode 100644 index 186bf139c..000000000 Binary files a/apps/docs/public/img/guides/quickstart/28.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/29.png b/apps/docs/public/img/guides/quickstart/29.png deleted file mode 100644 index 0c24026aa..000000000 Binary files a/apps/docs/public/img/guides/quickstart/29.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/30.png b/apps/docs/public/img/guides/quickstart/30.png deleted file mode 100644 index a7c32404d..000000000 Binary files a/apps/docs/public/img/guides/quickstart/30.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/31.png b/apps/docs/public/img/guides/quickstart/31.png deleted file mode 100644 index 9b3d4d56d..000000000 Binary files a/apps/docs/public/img/guides/quickstart/31.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/32.png b/apps/docs/public/img/guides/quickstart/32.png deleted file mode 100644 index 4c963a2aa..000000000 Binary files a/apps/docs/public/img/guides/quickstart/32.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/33.png b/apps/docs/public/img/guides/quickstart/33.png deleted file mode 100644 index b6ba34104..000000000 Binary files a/apps/docs/public/img/guides/quickstart/33.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/34.png b/apps/docs/public/img/guides/quickstart/34.png deleted file mode 100644 index 84c990a4d..000000000 Binary files a/apps/docs/public/img/guides/quickstart/34.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/35.png b/apps/docs/public/img/guides/quickstart/35.png deleted file mode 100644 index 7520cf4d3..000000000 Binary files a/apps/docs/public/img/guides/quickstart/35.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/36.png b/apps/docs/public/img/guides/quickstart/36.png deleted file mode 100644 index e1c27b0c2..000000000 Binary files a/apps/docs/public/img/guides/quickstart/36.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/37.png b/apps/docs/public/img/guides/quickstart/37.png deleted file mode 100644 index 7dc9aff3d..000000000 Binary files a/apps/docs/public/img/guides/quickstart/37.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/51.png b/apps/docs/public/img/guides/quickstart/51.png deleted file mode 100644 index 77513ee67..000000000 Binary files a/apps/docs/public/img/guides/quickstart/51.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/52.png b/apps/docs/public/img/guides/quickstart/52.png deleted file mode 100644 index ab927764d..000000000 Binary files a/apps/docs/public/img/guides/quickstart/52.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/angular_example_app.png b/apps/docs/public/img/guides/quickstart/angular_example_app.png new file mode 100644 index 000000000..9dbaea848 Binary files /dev/null and b/apps/docs/public/img/guides/quickstart/angular_example_app.png differ diff --git a/apps/docs/public/img/guides/quickstart/create_instance.png b/apps/docs/public/img/guides/quickstart/create_instance.png deleted file mode 100644 index 7f7d1847e..000000000 Binary files a/apps/docs/public/img/guides/quickstart/create_instance.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/create_instance_admin.png b/apps/docs/public/img/guides/quickstart/create_instance_admin.png deleted file mode 100644 index 320228299..000000000 Binary files a/apps/docs/public/img/guides/quickstart/create_instance_admin.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/create_instance_name.png b/apps/docs/public/img/guides/quickstart/create_instance_name.png deleted file mode 100644 index b9a6c9418..000000000 Binary files a/apps/docs/public/img/guides/quickstart/create_instance_name.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/flutter_example_app.png b/apps/docs/public/img/guides/quickstart/flutter_example_app.png new file mode 100644 index 000000000..588b30896 Binary files /dev/null and b/apps/docs/public/img/guides/quickstart/flutter_example_app.png differ diff --git a/apps/docs/public/img/guides/quickstart/go_example_app.png b/apps/docs/public/img/guides/quickstart/go_example_app.png new file mode 100644 index 000000000..047f953a6 Binary files /dev/null and b/apps/docs/public/img/guides/quickstart/go_example_app.png differ diff --git a/apps/docs/public/img/guides/quickstart/next_example_app.png b/apps/docs/public/img/guides/quickstart/next_example_app.png new file mode 100644 index 000000000..005d4f5f2 Binary files /dev/null and b/apps/docs/public/img/guides/quickstart/next_example_app.png differ diff --git a/apps/docs/public/img/guides/quickstart/project_client_id_secret.png b/apps/docs/public/img/guides/quickstart/project_client_id_secret.png new file mode 100644 index 000000000..c16071a00 Binary files /dev/null and b/apps/docs/public/img/guides/quickstart/project_client_id_secret.png differ diff --git a/apps/docs/public/img/guides/quickstart/project_project_id.png b/apps/docs/public/img/guides/quickstart/project_project_id.png new file mode 100644 index 000000000..927ff47c3 Binary files /dev/null and b/apps/docs/public/img/guides/quickstart/project_project_id.png differ diff --git a/apps/docs/public/img/guides/quickstart/react_example_app.png b/apps/docs/public/img/guides/quickstart/react_example_app.png index 944dd96c9..d0ab7d658 100644 Binary files a/apps/docs/public/img/guides/quickstart/react_example_app.png and b/apps/docs/public/img/guides/quickstart/react_example_app.png differ diff --git a/apps/docs/public/img/guides/quickstart/symfony_example_app.png b/apps/docs/public/img/guides/quickstart/symfony_example_app.png new file mode 100644 index 000000000..00a494ed9 Binary files /dev/null and b/apps/docs/public/img/guides/quickstart/symfony_example_app.png differ diff --git a/apps/docs/public/img/guides/quickstart/v2_1.png b/apps/docs/public/img/guides/quickstart/v2_1.png deleted file mode 100644 index f53969ba8..000000000 Binary files a/apps/docs/public/img/guides/quickstart/v2_1.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/v2_2.png b/apps/docs/public/img/guides/quickstart/v2_2.png deleted file mode 100644 index a3b0b8477..000000000 Binary files a/apps/docs/public/img/guides/quickstart/v2_2.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/v2_3.png b/apps/docs/public/img/guides/quickstart/v2_3.png deleted file mode 100644 index c79b8b91a..000000000 Binary files a/apps/docs/public/img/guides/quickstart/v2_3.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/v2_4.png b/apps/docs/public/img/guides/quickstart/v2_4.png deleted file mode 100644 index 6d4a676c8..000000000 Binary files a/apps/docs/public/img/guides/quickstart/v2_4.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/v2_5.png b/apps/docs/public/img/guides/quickstart/v2_5.png deleted file mode 100644 index 8d3194d09..000000000 Binary files a/apps/docs/public/img/guides/quickstart/v2_5.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/v2_6.png b/apps/docs/public/img/guides/quickstart/v2_6.png deleted file mode 100644 index ca8108842..000000000 Binary files a/apps/docs/public/img/guides/quickstart/v2_6.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/v2_7.png b/apps/docs/public/img/guides/quickstart/v2_7.png deleted file mode 100644 index ba22bf623..000000000 Binary files a/apps/docs/public/img/guides/quickstart/v2_7.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/v3_1.png b/apps/docs/public/img/guides/quickstart/v3_1.png deleted file mode 100644 index 58b85bd32..000000000 Binary files a/apps/docs/public/img/guides/quickstart/v3_1.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/v3_2.png b/apps/docs/public/img/guides/quickstart/v3_2.png deleted file mode 100644 index 172446329..000000000 Binary files a/apps/docs/public/img/guides/quickstart/v3_2.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/v3_3.png b/apps/docs/public/img/guides/quickstart/v3_3.png deleted file mode 100644 index 39624a118..000000000 Binary files a/apps/docs/public/img/guides/quickstart/v3_3.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/v3_4.png b/apps/docs/public/img/guides/quickstart/v3_4.png deleted file mode 100644 index 6218ca9ab..000000000 Binary files a/apps/docs/public/img/guides/quickstart/v3_4.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/v3_5.png b/apps/docs/public/img/guides/quickstart/v3_5.png deleted file mode 100644 index 785798866..000000000 Binary files a/apps/docs/public/img/guides/quickstart/v3_5.png and /dev/null differ diff --git a/apps/docs/public/img/guides/quickstart/vue_example_app.png b/apps/docs/public/img/guides/quickstart/vue_example_app.png new file mode 100644 index 000000000..9e64d97e3 Binary files /dev/null and b/apps/docs/public/img/guides/quickstart/vue_example_app.png differ diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json index 3838223ce..ccc4819d4 100644 --- a/apps/docs/tsconfig.json +++ b/apps/docs/tsconfig.json @@ -17,6 +17,7 @@ "incremental": true, "paths": { "@/*": ["./*"], + "@pub/*": ["./public/*"], "fumadocs-mdx:collections/*": [".source/*"] }, "plugins": [ diff --git a/console/src/app/utils/framework.ts b/console/src/app/utils/framework.ts index 3813422c2..2f1f1b408 100644 --- a/console/src/app/utils/framework.ts +++ b/console/src/app/utils/framework.ts @@ -12,22 +12,22 @@ export const OIDC_CONFIGURATIONS: OidcAppConfigurations = { .setAuthMethodType(OIDCAuthMethodType.OIDC_AUTH_METHOD_TYPE_NONE) .setResponseTypesList([OIDCResponseType.OIDC_RESPONSE_TYPE_CODE]) .setGrantTypesList([OIDCGrantType.OIDC_GRANT_TYPE_AUTHORIZATION_CODE]) - .setRedirectUrisList(['http://localhost:4200/callback']) - .setPostLogoutRedirectUrisList(['http://localhost:4200']), + .setRedirectUrisList(['http://localhost:3000/auth/callback']) + .setPostLogoutRedirectUrisList(['http://localhost:3000/signedout']), ['react']: new AddOIDCAppRequest() .setAppType(OIDCAppType.OIDC_APP_TYPE_USER_AGENT) .setAuthMethodType(OIDCAuthMethodType.OIDC_AUTH_METHOD_TYPE_NONE) .setResponseTypesList([OIDCResponseType.OIDC_RESPONSE_TYPE_CODE]) .setGrantTypesList([OIDCGrantType.OIDC_GRANT_TYPE_AUTHORIZATION_CODE]) - .setRedirectUrisList(['http://localhost:3000/callback']) + .setRedirectUrisList(['http://localhost:3000/auth/callback']) .setPostLogoutRedirectUrisList(['http://localhost:3000']), ['vue']: new AddOIDCAppRequest() .setAppType(OIDCAppType.OIDC_APP_TYPE_USER_AGENT) .setAuthMethodType(OIDCAuthMethodType.OIDC_AUTH_METHOD_TYPE_NONE) .setResponseTypesList([OIDCResponseType.OIDC_RESPONSE_TYPE_CODE]) .setGrantTypesList([OIDCGrantType.OIDC_GRANT_TYPE_AUTHORIZATION_CODE]) - .setRedirectUrisList(['http://localhost:5173/auth/signinwin/zitadel']) - .setPostLogoutRedirectUrisList(['http://localhost:5173/']), + .setRedirectUrisList(['http://localhost:3000/auth/callback']) + .setPostLogoutRedirectUrisList(['http://localhost:3000/']), // web applications ['next']: new AddOIDCAppRequest() .setAppType(OIDCAppType.OIDC_APP_TYPE_WEB) @@ -80,11 +80,11 @@ export const OIDC_CONFIGURATIONS: OidcAppConfigurations = { .setPostLogoutRedirectUrisList(['http://localhost:3000']), ['client-go']: new AddOIDCAppRequest() .setAppType(OIDCAppType.OIDC_APP_TYPE_WEB) - .setAuthMethodType(OIDCAuthMethodType.OIDC_AUTH_METHOD_TYPE_BASIC) + .setAuthMethodType(OIDCAuthMethodType.OIDC_AUTH_METHOD_TYPE_NONE) .setResponseTypesList([OIDCResponseType.OIDC_RESPONSE_TYPE_CODE]) .setGrantTypesList([OIDCGrantType.OIDC_GRANT_TYPE_AUTHORIZATION_CODE]) - .setRedirectUrisList(['http://localhost:8080/auth/callback']) - .setPostLogoutRedirectUrisList(['http://localhost:8080']), + .setRedirectUrisList(['http://localhost:8089/auth/callback']) + .setPostLogoutRedirectUrisList(['http://localhost:8089']), ['client-ruby']: new AddOIDCAppRequest() .setAppType(OIDCAppType.OIDC_APP_TYPE_WEB) .setAuthMethodType(OIDCAuthMethodType.OIDC_AUTH_METHOD_TYPE_BASIC) @@ -97,8 +97,8 @@ export const OIDC_CONFIGURATIONS: OidcAppConfigurations = { .setAuthMethodType(OIDCAuthMethodType.OIDC_AUTH_METHOD_TYPE_BASIC) .setResponseTypesList([OIDCResponseType.OIDC_RESPONSE_TYPE_CODE]) .setGrantTypesList([OIDCGrantType.OIDC_GRANT_TYPE_AUTHORIZATION_CODE]) - .setRedirectUrisList(['http://localhost:8000/login_check']) - .setPostLogoutRedirectUrisList(['http://localhost:8000/logout']), + .setRedirectUrisList(['http://localhost:3000/auth/callback']) + .setPostLogoutRedirectUrisList(['http://localhost:3000/auth/logout/callback']), ['django']: new AddOIDCAppRequest() .setAppType(OIDCAppType.OIDC_APP_TYPE_WEB) .setAuthMethodType(OIDCAuthMethodType.OIDC_AUTH_METHOD_TYPE_NONE)