{"id":22933502,"url":"https://github.com/bluebrown/jwt-exchange-authentication","last_synced_at":"2026-04-29T18:31:45.745Z","repository":{"id":111481287,"uuid":"290636450","full_name":"bluebrown/jwt-exchange-authentication","owner":"bluebrown","description":"Demo of JWT authentication mechanism with separate identify provider, using Fastify.","archived":false,"fork":false,"pushed_at":"2020-08-27T20:51:13.000Z","size":38,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-01T18:37:40.994Z","etag":null,"topics":["fastify","jwt","jwt-authentication"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/bluebrown.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":"2020-08-27T00:41:35.000Z","updated_at":"2021-04-14T14:57:38.000Z","dependencies_parsed_at":"2023-04-29T09:02:23.974Z","dependency_job_id":null,"html_url":"https://github.com/bluebrown/jwt-exchange-authentication","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/bluebrown/jwt-exchange-authentication","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluebrown%2Fjwt-exchange-authentication","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluebrown%2Fjwt-exchange-authentication/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluebrown%2Fjwt-exchange-authentication/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluebrown%2Fjwt-exchange-authentication/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bluebrown","download_url":"https://codeload.github.com/bluebrown/jwt-exchange-authentication/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluebrown%2Fjwt-exchange-authentication/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32439144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T18:12:22.909Z","status":"ssl_error","status_checked_at":"2026-04-29T18:11:33.322Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["fastify","jwt","jwt-authentication"],"created_at":"2024-12-14T11:30:06.244Z","updated_at":"2026-04-29T18:31:45.731Z","avatar_url":"https://github.com/bluebrown.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JWT Exchange Authentication\n\nThis repository contains three separate applications. A rest API, an application server that hosts a static web page, and an authentication service.\n\nIn order to retrieve data from the API, a valid JWT has to be included as bearer authorization header. To get this token the requester must authenticate against the authentication service.\n\nWhen the login endpoint on the API is hit, the request is redirected to the authentication service including a JWT in the request query string to identify the redirecting API against the auth service. The auth service challenges the requester then with a 401 status code for basic auth. If the requester succeeds in authenticating, the auth service redirects the request back to the API with a JWT in the request query string. This token contains the users' identity.\n\nBoth token participating in the *token exchange* are short living, meaning they will expire within a few seconds. After the exchange was successfully performed, the API generates a token, containing the users identity and roles, and sends it back to the requester. This toke has longer life span and can be used to retrieve the actual data.\n\nThe application server serves a example html file from which a token can be issued and API data retrieved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluebrown%2Fjwt-exchange-authentication","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbluebrown%2Fjwt-exchange-authentication","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluebrown%2Fjwt-exchange-authentication/lists"}