{"id":41670371,"url":"https://github.com/ehwplus/zitadel-nodejs-nestjs","last_synced_at":"2026-01-24T17:37:35.358Z","repository":{"id":259013784,"uuid":"707372412","full_name":"ehwplus/zitadel-nodejs-nestjs","owner":"ehwplus","description":"An example repository on how to implement Zitadel token introspection in a NestJs backend.","archived":false,"fork":false,"pushed_at":"2025-12-02T21:20:22.000Z","size":1573,"stargazers_count":13,"open_issues_count":7,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-12-21T22:13:39.179Z","etag":null,"topics":["nestjs","oidc","passport","zitadel"],"latest_commit_sha":null,"homepage":"https://zitadel.com/docs/sdk-examples/nestjs","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ehwplus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-10-19T18:58:29.000Z","updated_at":"2025-12-08T01:31:59.000Z","dependencies_parsed_at":"2025-02-27T18:47:18.324Z","dependency_job_id":"1ff304af-8a88-4d0e-b680-9426d2f7cc50","html_url":"https://github.com/ehwplus/zitadel-nodejs-nestjs","commit_stats":null,"previous_names":["ehwplus/zitadel-nodejs-nestjs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ehwplus/zitadel-nodejs-nestjs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehwplus%2Fzitadel-nodejs-nestjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehwplus%2Fzitadel-nodejs-nestjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehwplus%2Fzitadel-nodejs-nestjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehwplus%2Fzitadel-nodejs-nestjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ehwplus","download_url":"https://codeload.github.com/ehwplus/zitadel-nodejs-nestjs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehwplus%2Fzitadel-nodejs-nestjs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28732768,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nestjs","oidc","passport","zitadel"],"created_at":"2026-01-24T17:37:34.731Z","updated_at":"2026-01-24T17:37:35.350Z","avatar_url":"https://github.com/ehwplus.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# zitadel-nodejs-nestjs\n\nWelcome to the `zitadel-nodejs-nestjs` repository! This example NestJs application demonstrates how to implement authentication using the Zitadel OIDC (OpenID Connect) flow with the help of Passport. Please note that this example exclusively focuses on authentication and does not include authorization.\n\n## Table of Contents\n\n- [Introduction](#introduction)\n- [Getting Started](#getting-started)\n  - [Prerequisites](#prerequisites)\n  - [Installation](#installation)\n- [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Introduction\n\n[Zitadel](https://zitadel.ch/) is a comprehensive Identity and Access Management (IAM) solution that offers robust authentication and authorization capabilities. This example application showcases how to leverage Zitadel for authentication within a NestJs application.\n\n:warning: Please be aware that this example only deals with authentication and does not cover the authorization aspect of your application.\n\n## Getting Started\n\nFollow these steps to set up and run the `zitadel-nodejs-nestjs` application on your local machine.\n\n### Prerequisites\n\nBefore you begin, ensure you have the following prerequisites in place:\n\n- Node.js and npm installed on your system\n- Yarn package manager installed (you can install it with `npm install -g yarn`)\n- Basic knowledge of NestJs, Passport, and OIDC authentication\n- A Zitadel account and OIDC client credentials (client ID and client secret)\n\nYour Zitadel should be configured to look like this:\n\n```mermaid\ngraph TB\n\nsubgraph cluster_zitadel\n    Zitadel((Zitadel Instance))\n    Organization((Your Organization))\n    Project((Development Project))\n    APIApp((API Type Application))\n    WebApp((Web Type Application))\nend\n\n%%subgraph cluster_app\n%%    NestJs((NestJs Backend))\n%%    NestJs ---\u003e OpenAPI((NestJs Swagger))\n%%end\n\nZitadel --\u003e Organization\nOrganization --\u003e Project\nProject --\u003e APIApp\nProject --\u003e WebApp\n%% NestJs -.- APIApp\n%% OpenAPI -.- WebApp\n```\n\n### Installation\n\n1. Clone the repository:\n\n   ```shell\n   git clone https://github.com/ehwplus/zitadel-nodejs-nestjs.git\n   cd zitadel-nodejs-nestjs\n   ```\n\n   Install the project dependencies using Yarn:\n\n   ```shell\n   yarn install\n   ```\n\n2. Create a .env file in the project root. You can use the provided .env.example file as a template and set the following environment variables:\n\n   ```\n   APP_PORT=8080\n   NODE_ENV=\"development\"\n\n   OPENAPI_CLIENT_ID=\n   OPENAPI_CLIENT_SECRET=\n\n   IDP_AUTHORITY=\n   IDP_AUTHORIZATION_TYPE=\n   IDP_AUTHORIZATION_PROFILE_TYPE=\n   IDP_AUTHORIZATION_PROFILE_KEY_ID=\n   IDP_AUTHORIZATION_PROFILE_KEY=\n   IDP_AUTHORIZATION_PROFILE_APP_ID=\n   IDP_AUTHORIZATION_PROFILE_CLIENT_ID=\n   ```\n\n3. Replace the values as needed, especially the Zitadel OIDC client credentials and issuer URL.\n\n4. Start the application:\n   ```shell\n   yarn start\n   ```\n\nYour zitadel-nodejs-nestjs application should now be up and running, configured to use Zitadel OIDC authentication.\n\n## Usage\n\nThis example demonstrates the basic setup for integrating Zitadel OIDC authentication into a NestJs application. It showcases the login flow and user authentication. However, remember that this project doesn't cover authorization, and you should implement your own authorization logic according to your application's needs.\n\nFeel free to explore, modify, and extend the code to meet your specific requirements.\n\n## Contributing\n\nWe welcome contributions from the community. If you find issues or have ideas for improvements, please open an issue or submit a pull request. Your input is highly valued.\n\nWe unfortunately neither have a CONTRIBUTING.md nor have the resources to provide a helpful CONTRIBUTING.md.\n\n\u003c!-- For more information on contributing, please check the CONTRIBUTING.md file. --\u003e\n\n## License\n\nThis project is licensed under the MIT License. You are free to use, modify, and distribute the code as per the terms specified in the license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fehwplus%2Fzitadel-nodejs-nestjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fehwplus%2Fzitadel-nodejs-nestjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fehwplus%2Fzitadel-nodejs-nestjs/lists"}