mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-24 16:22:16 +00:00
## Todos for release - [x] Configure Env in docs project on vercel - [x] Configure Root Path in the docs project on vercel - [ ] Remove old CSP https://github.com/zitadel/website/pull/1592 ## What we did This pull request migrates the project documentation from the old `docs/` directory to the new `apps/docs/` directory, introduces a new documentation system built with Next.js and Fumadocs, and updates all relevant references, configuration files, and documentation to reflect this change. It also adds new configuration and ignore files for the new documentation app, updates CI and linting to exclude the new docs from certain checks, and revises the contributing guidelines accordingly. **Documentation System Migration and New Docs App** * Migrated all documentation from `docs/` to `apps/docs/`, and updated all references in `README.md`, `CONTRIBUTING.md`, and other files to point to the new location. [[1]](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L585-L640) [[2]](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L660-R607) [[3]](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L740-R687) [[4]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L2-R3) [[5]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L30-R30) * Added a new Next.js/Fumadocs-based documentation app under `apps/docs/`, including core app files, layouts, routing, search API, and a comprehensive `README.md` with development and contribution instructions. [[1]](diffhunk://#diff-5a1b07344a2c1b4d3f37b23ff1388b62cd9f57dea3c1cd23d8a0412b7602b132R1-R74) [[2]](diffhunk://#diff-462b9ad1eabbb7d1c29bb9c36e4931eb180fd7190900e6d2babf8f4d66ad1c28R1-R39) [[3]](diffhunk://#diff-e16ae25660ded787b10ac35dea96d5ecaacf895dae0afc8a9bd4382dc79a8c87R1-R7) [apps/docs/app/[[...slug]]/layout.tsxR1-R81](diffhunk://#diff-59e08acde4e805b7aeccef1dcf98f1d71dfc550777e6b9402085cee0e9fa4e0aR1-R81), [apps/docs/app/[[...slug]]/page.tsxR1-R79](diffhunk://#diff-e5df3f80d0fa01e12d63d81f29c57a9d14e846c78fd3beabb2ef768e38fd9580R1-R79), [[4]](diffhunk://#diff-389b34918e040cacaa87cd7201ffa462cc2b0b716736f537e3d3c660ac69353bR1-R7) [[5]](diffhunk://#diff-d3b03416d1c457b19f1c27b26f2db741412df841b875c26ccadc36e4522247f4R1-R29) [[6]](diffhunk://#diff-c8fb8339570a5305809be7c618e14705fd86390dc278e6ce8ba224a7bc8b0c3cR1-R25) **Configuration and Tooling Updates** * Updated `.github/workflows/codeql.yml`, `.golangci.yaml`, and `.github/dependabot.yml` to properly handle the new docs app: excluded `apps/docs` from certain checks, added npm dependency updates for the docs app, and excluded generated content. [[1]](diffhunk://#diff-12783128521e452af0cfac94b99b8d250413c516ec71fe6d97dbea666ff7ba27L8-R14) [[2]](diffhunk://#diff-9917ddc9f1c3304218f7269265b746d997c5c0615478177b5fceecd33ef47cb5R5-R6) [[3]](diffhunk://#diff-9917ddc9f1c3304218f7269265b746d997c5c0615478177b5fceecd33ef47cb5R126-R129) [[4]](diffhunk://#diff-dd4fbda47e51f1e35defb9275a9cd9c212ecde0b870cba89ddaaae65c5f3cd28R89-R106) * Updated `.devcontainer/devcontainer.json` to use the latest Go 1.25.3 version for consistency. **Licensing and Miscellaneous** * Added `apps/docs/` to the list of licensed directories in `LICENSING.md`. These changes ensure the documentation is now maintained in a modern, scalable system and all project tooling is updated to support the new structure. --------- Co-authored-by: Federico Coppede <[email protected]>
121 lines
5.0 KiB
Plaintext
121 lines
5.0 KiB
Plaintext
---
|
|
title: ZITADEL with React
|
|
sidebar_label: React
|
|
---
|
|
|
|
This integration guide demonstrates the recommended way to incorporate ZITADEL into your React application.
|
|
It explains how to enable user login in your application and how to fetch data from the user info endpoint.
|
|
|
|
By the end of this guide, your application will have login functionality and will be able to access the current user's profile.
|
|
|
|
<Callout>
|
|
This documentation references our [example](https://github.com/zitadel/zitadel-react) on GitHub.
|
|
It also uses the @zitadel/react package with its default configuration.
|
|
</Callout>
|
|
|
|
## Set up application and obtain keys
|
|
|
|
Before we begin developing our application, we need to perform a few configuration steps in the ZITADEL Console.
|
|
You'll need to provide some information about your app.
|
|
We recommend creating a new app to start from scratch.
|
|
Navigate to your project, then add a new application at the top of the page.
|
|
Select the **User Agent** application type and continue.
|
|
We recommend that you use [Proof Key for Code Exchange (PKCE)](/apis/openidoauth/grant-types#proof-key-for-code-exchange) for all single page applications.
|
|
|
|

|
|
|
|
### Redirect URIs
|
|
|
|
The redirect URIs field tells ZITADEL where it's allowed to redirect users after authentication. For development, you can set dev mode to `true` to enable insecure HTTP and redirect to a `localhost` URI.
|
|
The post logout redirect sends your users back to a public route on your application after they have logged out.
|
|
|
|
<Callout>
|
|
If you are following along with the [example](https://github.com/zitadel/zitadel-react), set the dev mode switch to `true`.
|
|
Configure a redirect URIs to \http://localhost:3000/callback and a post redirect URI to \http://localhost:3000/.
|
|
</Callout>
|
|
|
|
Continue and create the application.
|
|
|
|
### Copy Client ID
|
|
|
|
After successful creation of the app, make sure copy the client ID, as you will need it to configure your React client.
|
|
|
|
## Create a project role "admin" and assign it to your user
|
|
|
|
Also note the projects resource ID, as you will need it to configure your React client.
|
|
|
|

|
|
|
|

|
|
|
|
If you want to read your users roles from user info endpoint, make sure to enable the checkbox in your project.
|
|
|
|
## React setup
|
|
|
|
Now that you have configured your web application on the ZITADEL side, you can proceed with the integration of your React client.
|
|
|
|
### Install React dependencies
|
|
|
|
To conveniently connect with ZITADEL, you can install the [@zitadel/react NPM package](https://www.npmjs.com/package/@zitadel/react). Run the following command:
|
|
|
|
```bash
|
|
yarn add @zitadel/react
|
|
```
|
|
|
|
### Create and configure the auth service
|
|
|
|
The @zitadel/react package provides a `createZitadelAuth()` function which sets some defaults and initializes the underlying [oidc-client-ts](https://github.com/authts/oidc-client-ts) `UserManager` class.
|
|
You can overwrite all the defaults with the arguments you pass to `createZitadelAuth()`.
|
|
|
|
Export the object returned from `createZitadelAuth()`
|
|
|
|
### Initialize user manager
|
|
|
|
```ts reference
|
|
https://github.com/zitadel/zitadel-react/blob/main/src/App.tsx
|
|
```
|
|
|
|
### Add two new components to your application
|
|
|
|
First, add the component which prompts the user to login.
|
|
|
|
```ts reference
|
|
https://github.com/zitadel/zitadel-react/blob/main/src/components/Login.tsx
|
|
```
|
|
|
|
Then create the component for the page where the users will be redirected.
|
|
It loads the user info endpoint once the code flow completes and prints all the information.
|
|
|
|
```ts reference
|
|
https://github.com/zitadel/zitadel-react/blob/main/src/components/Callback.tsx
|
|
```
|
|
|
|
You can now read a user's role to show protected areas of the application.
|
|
|
|
### Run
|
|
|
|
Finally, you can start your application by running the following:
|
|
|
|
```
|
|
yarn start
|
|
```
|
|
|
|
## Completion
|
|
|
|
Congratulations! You have successfully integrated your React application with ZITADEL!
|
|
|
|
If you get stuck, consider checking out the [ZITADEL React example application](https://github.com/zitadel/zitadel-react).
|
|
This application includes all the functionalities mentioned in this quickstart.
|
|
You can start by cloning the repository and changing the arguments to `createZitadelAuth` to fit your requirements.
|
|
If you face issues, contact us or [raise an issue on GitHub](https://github.com/zitadel/zitadel-react/issues).
|
|
|
|

|
|
|
|
### What's next?
|
|
|
|
Now that you have enabled authentication, you are ready to add authorization to your application by using ZITADEL APIs.
|
|
To do this, [refer to the API docs](/apis/introduction) or check out [the ZITADEL Management Console code on GitHub](https://github.com/zitadel/zitadel) which uses gRPC to access data.
|
|
|
|
For more information on how to create a React application, you can refer to [Create React App](https://github.com/facebook/create-react-app).
|
|
If you want to learn more about the libraries wrapped by [@zitadel/react](https://www.npmjs.com/package/@zitadel/react), read the docs for [oidc-client-ts](https://github.com/authts/oidc-client-ts).
|