{"id":19237176,"url":"https://github.com/epicweb-dev/epic-oidc","last_synced_at":"2025-06-12T05:07:33.854Z","repository":{"id":188602195,"uuid":"679028599","full_name":"epicweb-dev/epic-oidc","owner":"epicweb-dev","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-14T18:25:24.000Z","size":11162,"stargazers_count":30,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-06T15:19:13.056Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epicweb-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-08-16T00:19:59.000Z","updated_at":"2024-11-27T17:08:52.000Z","dependencies_parsed_at":"2024-11-09T16:38:07.339Z","dependency_job_id":null,"html_url":"https://github.com/epicweb-dev/epic-oidc","commit_stats":null,"previous_names":["kentcdodds/epic-oidc","epicweb-dev/epic-oidc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/epicweb-dev/epic-oidc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicweb-dev%2Fepic-oidc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicweb-dev%2Fepic-oidc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicweb-dev%2Fepic-oidc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicweb-dev%2Fepic-oidc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epicweb-dev","download_url":"https://codeload.github.com/epicweb-dev/epic-oidc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicweb-dev%2Fepic-oidc/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259402066,"owners_count":22851872,"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":[],"created_at":"2024-11-09T16:25:10.672Z","updated_at":"2025-06-12T05:07:33.837Z","avatar_url":"https://github.com/epicweb-dev.png","language":"TypeScript","readme":"# Epic OIDC Example\n\n[Here's the commit that adds Google Auth](https://github.com/kentcdodds/epic-oidc/commit/517b7b97e37f39bc4b86b249519255e92bb37e72).\n\nThis is an updated and simplified version, but the demo for the original version\nis still instructive:\n\n[![A frame from a screen cast video of Kent demonstrating the connections page from this demo](https://github-production-user-asset-6210df.s3.amazonaws.com/1500684/260885255-938f0150-51a6-47ae-a9ae-daa09c0c6b9d.png)](https://www.epicweb.dev/tips/add-open-id-connect-auth-to-the-epic-stack)\n\nThis is an\n[Epic Stack example](https://github.com/epicweb-dev/epic-stack/blob/main/docs/examples.md)\nwhich demonstrates how to implement authentication using an OpenID Connect\nprovider.\n\nIn this example, we have three forms of authentication:\n\n1. Username/password (built-into the Epic Stack)\n2. GitHub OAuth2 (built-into the Epic Stack)\n3. Google OpenID Connect (implemented in this example)\n\nThere are no database schema changes necessary for adding an OIDC provider (like\nGoogle).\n\nThis example uses [web-oidc](https://npm.im/web-oidc) and\n[remix-auth](https://npm.im/remix-auth) to implement the OIDC authentication\nflow. This example doesn't deal with refresh tokens because we're only using the\nOIDC provider for authentication. If you need to use refresh tokens, then you'll\nneed to store them in a database and use them to get new access tokens when\nnecessary.\n\n## Mocks\n\nCheck out\n[this \"setup mocks\" commit](https://github.com/kentcdodds/epic-oidc/commit/1a8cead2d28c79ca1509d4d2f06004c1769f998b)\nfor how to set up mocks for your tests and local development.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepicweb-dev%2Fepic-oidc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepicweb-dev%2Fepic-oidc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepicweb-dev%2Fepic-oidc/lists"}