{"id":28125028,"url":"https://github.com/passport/todos-express-openidconnect","last_synced_at":"2025-05-14T09:19:55.174Z","repository":{"id":36254465,"uuid":"40558877","full_name":"passport/todos-express-openidconnect","owner":"passport","description":"Todo app using Express, Passport, and SQLite for sign in via OpenID Connect.","archived":false,"fork":false,"pushed_at":"2022-04-13T20:52:01.000Z","size":21,"stargazers_count":24,"open_issues_count":2,"forks_count":16,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-08T01:33:35.556Z","etag":null,"topics":["example","express","nodejs","openid-connect","passport","sqlite"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/passport.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"jaredhanson","patreon":"jaredhanson","ko_fi":"jaredhanson"}},"created_at":"2015-08-11T18:40:04.000Z","updated_at":"2025-02-14T01:50:35.000Z","dependencies_parsed_at":"2022-08-17T22:31:14.154Z","dependency_job_id":null,"html_url":"https://github.com/passport/todos-express-openidconnect","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passport%2Ftodos-express-openidconnect","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passport%2Ftodos-express-openidconnect/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passport%2Ftodos-express-openidconnect/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passport%2Ftodos-express-openidconnect/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/passport","download_url":"https://codeload.github.com/passport/todos-express-openidconnect/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253728443,"owners_count":21954418,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["example","express","nodejs","openid-connect","passport","sqlite"],"created_at":"2025-05-14T09:19:53.125Z","updated_at":"2025-05-14T09:19:55.164Z","avatar_url":"https://github.com/passport.png","language":"CSS","funding_links":["https://github.com/sponsors/jaredhanson","https://patreon.com/jaredhanson","https://ko-fi.com/jaredhanson"],"categories":[],"sub_categories":[],"readme":"# todos-express-openidconnect\n\nThis app illustrates how to use [Passport](https://www.passportjs.org/) with\n[Express](https://expressjs.com/) to sign users in via OpenID Connect.  Use this\nexample as a starting point for your own web applications.\n\n## Quick Start\n\nTo run this app, clone the repository and install dependencies:\n\n```bash\n$ git clone https://github.com/passport/todos-express-openidconnect.git\n$ cd todos-express-openidconnect\n$ npm install\n```\n\nThis app must be configured with an OpenID Provider (OP)'s endpoints, as well as\na client ID and secret that has been issued by the OP.\n\nThe endpoints should be set as options to `OpenIDConnectStrategy` in\n[routes/auth.js](https://github.com/passport/todos-express-openidconnect/blob/master/routes/auth.js#L7-L10).\n\nOnce the client ID and secret have been obtained, create a `.env` file and add\nthe following environment variables:\n\n```\nCLIENT_ID=__INSERT_CLIENT_ID_HERE__\nCLIENT_SECRET=__INSERT_CLIENT_SECRET_HERE__\n```\n\nStart the server.\n\n```bash\n$ npm start\n```\n\nNavigate to [`http://localhost:3000`](http://localhost:3000).\n\n## Overview\n\nThis example illustrates how to use Passport and the [`passport-openidconnect`](https://www.passportjs.org/packages/passport-openidconnect/)\nstrategy within an Express application to sign users in via OpenID Connect.\n\nThis app implements the features of a typical [TodoMVC](https://todomvc.com/)\napp, and adds sign in functionality.  This app is a traditional web application,\nin which all application logic and data persistence is handled on the server.\n\nUser interaction is performed via HTML pages and forms, which are rendered via\n[EJS](https://ejs.co/) templates and styled with vanilla CSS.  Data is stored in\nand queried from a [SQLite](https://www.sqlite.org/) database.\n\nAfter users sign in, a login session is established and maintained between the\nserver and the browser with a cookie.  As authenticated users interact with the\napp, creating and editing todo items, the login state is restored by\nauthenticating the session.\n\n## License\n\n[The Unlicense](https://opensource.org/licenses/unlicense)\n\n## Credit\n\nCreated by [Jared Hanson](https://www.jaredhanson.me/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpassport%2Ftodos-express-openidconnect","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpassport%2Ftodos-express-openidconnect","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpassport%2Ftodos-express-openidconnect/lists"}