{"id":31608749,"url":"https://github.com/nickforall/exfirebaseauth","last_synced_at":"2025-10-06T08:24:11.802Z","repository":{"id":40521542,"uuid":"327965255","full_name":"Nickforall/ExFirebaseAuth","owner":"Nickforall","description":"🔥⚗️ Handling and testing Firebase Auth tokens in Elixir ","archived":false,"fork":false,"pushed_at":"2025-05-28T04:27:06.000Z","size":82,"stargazers_count":26,"open_issues_count":4,"forks_count":27,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-09-12T12:08:07.550Z","etag":null,"topics":["auth","elixir","firebase","google"],"latest_commit_sha":null,"homepage":"https://hexdocs.pm/ex_firebase_auth","language":"Elixir","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/Nickforall.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-08T17:10:26.000Z","updated_at":"2025-02-27T10:19:39.000Z","dependencies_parsed_at":"2023-02-09T21:16:01.741Z","dependency_job_id":null,"html_url":"https://github.com/Nickforall/ExFirebaseAuth","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/Nickforall/ExFirebaseAuth","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nickforall%2FExFirebaseAuth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nickforall%2FExFirebaseAuth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nickforall%2FExFirebaseAuth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nickforall%2FExFirebaseAuth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nickforall","download_url":"https://codeload.github.com/Nickforall/ExFirebaseAuth/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nickforall%2FExFirebaseAuth/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278578131,"owners_count":26009739,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["auth","elixir","firebase","google"],"created_at":"2025-10-06T08:24:04.653Z","updated_at":"2025-10-06T08:24:11.794Z","avatar_url":"https://github.com/Nickforall.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ExFirebaseAuth 🔥\n\nExFirebaseAuth is a library that handles ID tokens from Firebase, which is useful for using Firebase's auth solution because Firebase does not have an Elixir SDK for auth themselves. ExFirebaseAuth also comes with some testing utilities that mock and generate ID tokens for your integration tests.\n\n[More information on how ID tokens work in Firebase Auth](https://firebase.google.com/docs/auth/admin/verify-id-tokens)\n\nThis library\n\n- Keeps track of google's public keys used for signing ID tokens\n- Verifies ID tokens\n- Veries whether the issuer matches your firebase project\n\nThis library does **not**\n\n- Aim to implement Firebase user admin SDK endpoints\n\n## Installation\n\nIf [available in Hex](https://hex.pm/packages/ex_firebase_auth), the package can be installed\nby adding `ex_firebase_auth` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:ex_firebase_auth, \"~\u003e 0.5.1\"}\n  ]\nend\n```\n\n## Usage\n\nAdd the Firebase auth issuer name for your project to your `config.exs`. This is required to make sure only your project's firebase tokens are accepted.\n\n```elixir\nconfig :ex_firebase_auth, :issuer, \"https://securetoken.google.com/project-123abc\"\n```\nor if you'd like to define a different issuer per app\n```elixir\nconfig :your_app, :ex_firebase_auth, \n  issuer: \"https://securetoken.google.com/project-123abc\"\n```\n\nVerifying a token\n\n```elixir\nExFirebaseAuth.Token.verify_token(\"Some token string\")\niex\u003e {:ok, \"userid\", %{}}\n```\nor\n```elixir\nExFirebaseAuth.Token.verify_token(\"Some token string\", :your_app)\niex\u003e {:ok, \"userid\", %{}}\n```\n\nDocumentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)\nand published on [HexDocs](https://hexdocs.pm). Once published, the docs can\nbe found at [https://hexdocs.pm/ex_firebase_auth](https://hexdocs.pm/ex_firebase_auth).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickforall%2Fexfirebaseauth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnickforall%2Fexfirebaseauth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickforall%2Fexfirebaseauth/lists"}