{"id":21157979,"url":"https://github.com/axotion/firebase-keys-updater","last_synced_at":"2026-05-15T22:02:24.445Z","repository":{"id":93032024,"uuid":"220563938","full_name":"axotion/firebase-keys-updater","owner":"axotion","description":"Package for dealing with new JWT public tokens every N minutes","archived":false,"fork":false,"pushed_at":"2019-11-08T23:31:52.000Z","size":1,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-21T09:08:52.417Z","etag":null,"topics":["firebase","firebase-auth","jwt-authentication","jwt-token"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/axotion.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":"2019-11-08T23:31:32.000Z","updated_at":"2019-11-09T23:39:06.000Z","dependencies_parsed_at":"2023-07-03T03:33:54.363Z","dependency_job_id":null,"html_url":"https://github.com/axotion/firebase-keys-updater","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/axotion%2Ffirebase-keys-updater","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axotion%2Ffirebase-keys-updater/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axotion%2Ffirebase-keys-updater/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axotion%2Ffirebase-keys-updater/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/axotion","download_url":"https://codeload.github.com/axotion/firebase-keys-updater/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243599705,"owners_count":20317143,"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":["firebase","firebase-auth","jwt-authentication","jwt-token"],"created_at":"2024-11-20T12:14:18.489Z","updated_at":"2025-10-15T01:25:33.760Z","avatar_url":"https://github.com/axotion.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Firebase JWT public tokens updater\n\nPackage for dealing with new JWT public tokens every N minutes\n\n## Why?\n\nFirebase uses multiple private keys to generate the idToken, therefore the token we receive from Firebase is decodable with one of the Firebase public keys.\n\nThe header part of every the Firebase JWT token is:\n\n```json\n{\n  \"alg\": \"RS256\",\n  \"kid\": \"19f07ad8152b2fc4e427cb25e9306edaca41a635\"\n}\n```\n\n\nWhere the key kid corresponds to the id of the public key that we must use to verify JWT token\n\n\n```json\n{\n  \"5dce7e41add121b86ed404b84da75739467ed2bc\": \"-----BEGIN CERTIFICATE--- ...\",\n  \"250811cdc609d90f98151191b2bc9bd0ceb9c004\": \"-----BEGIN CERTIFICATE--- ...\"\n}\n```\n\n## Ok, but why we must update keys every few hours?\n\nThe public keys are subject to change/rotation and the whole idea of publishing them on a URL is the probability of \"rotation\". Google, periodically rotates its keys to conform their security standards.\n\n## Usage\n\n```bash\ngo build main.go ; ./main -every 50\n```\n\n50 means minutes\n\n## Contributing\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\n## License\n[MIT](https://choosealicense.com/licenses/mit/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxotion%2Ffirebase-keys-updater","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxotion%2Ffirebase-keys-updater","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxotion%2Ffirebase-keys-updater/lists"}