{"id":13471546,"url":"https://github.com/nhost/hasura-auth","last_synced_at":"2025-05-15T15:03:35.563Z","repository":{"id":37085737,"uuid":"375330004","full_name":"nhost/hasura-auth","owner":"nhost","description":"Authentication for Hasura.","archived":false,"fork":false,"pushed_at":"2025-04-04T13:49:36.000Z","size":17693,"stargazers_count":398,"open_issues_count":24,"forks_count":114,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-04-05T21:16:50.806Z","etag":null,"topics":["authentication","backend","email-password-login","emails","graphql","hacktoberfest","hacktoberfest2022","hasura","jwt","magic-link","nodejs","oauth-login","roles","sms","typescript"],"latest_commit_sha":null,"homepage":"https://nhost.io","language":"Go","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/nhost.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":"audit-ci.jsonc","citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-09T11:24:21.000Z","updated_at":"2025-04-03T17:42:21.000Z","dependencies_parsed_at":"2024-01-11T12:36:08.857Z","dependency_job_id":"4203bc76-dd12-4466-bec4-a1d340e424c9","html_url":"https://github.com/nhost/hasura-auth","commit_stats":{"total_commits":883,"total_committers":35,"mean_commits":"25.228571428571428","dds":0.5141562853907135,"last_synced_commit":"3e2ffd373eb32403f66d66bbde5c2d54a778616d"},"previous_names":[],"tags_count":130,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhost%2Fhasura-auth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhost%2Fhasura-auth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhost%2Fhasura-auth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhost%2Fhasura-auth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nhost","download_url":"https://codeload.github.com/nhost/hasura-auth/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247721898,"owners_count":20985084,"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":["authentication","backend","email-password-login","emails","graphql","hacktoberfest","hacktoberfest2022","hasura","jwt","magic-link","nodejs","oauth-login","roles","sms","typescript"],"created_at":"2024-07-31T16:00:46.478Z","updated_at":"2025-04-07T20:10:08.837Z","avatar_url":"https://github.com/nhost.png","language":"Go","funding_links":[],"categories":["Go","Tools and Extensions"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eHasura Auth\u003c/h1\u003e\n\u003ch2 align=\"center\"\u003eAuthentication for Hasura\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/version-2.2.1-blue.svg?cacheSeconds=2592000\" /\u003e\n  \u003ca href=\"LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-MIT-yellow.svg\" alt=\"license: MIT\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://commitizen.github.io/cz-cli\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/commitizen-friendly-brightgreen.svg\" alt=\"commitizen: friendly\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://prettier.io\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/code_style-prettier-ff69b4.svg\" alt=\"code style: prettier\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/nhost/hasura-auth/actions?query=workflow%Build+branch%3Amain+event%3Apush\"\u003e\n    \u003cimg src=\"https://github.com/nhost/hasura-auth/workflows/Build/badge.svg?branch=main\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/nhost/hasura-auth/branch/main\"\u003e\n    \u003cimg src=\"https://codecov.io/gh/nhost/hasura-auth/branch/main/graph/badge.svg\"\n    /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Core Features\n\n- 🧑‍🤝‍🧑 Users are stored in Postgres and accessed via GraphQL\n- 🔑 Multiple sign-in methods.\n- ✨ Integrates with GraphQL and Hasura Permissions\n- 🔐 JWT tokens and Refresh Tokens.\n- ✉️ Emails sent on various operations\n- ✅ Optional checking for Pwned Passwords.\n\n## Sign in methods\n\n- [**Email and Password**](./docs/workflows/email-password.md) - simple email and password method.\n- [**Email**](./docs/workflows/passwordless-email.md) - also called **passwordless email** or **magic link**.\n- [**SMS**](./docs/workflows/passwordless-sms.md) - also called **passwordless sms**.\n- [**Anonymous**](./docs/workflows/anonymous-users.md) - sign in users without any method. Anonymous users can be\n  converted to _regular_ users.\n- [**OAuth providers**](./docs/workflows/oauth-providers.md): Facebook, Google, GitHub, Twitter, Apple, Azure AD, LinkedIn, Windows Live, Spotify, Strava, GitLab, BitBucket, Discord, WorkOS.\n- [**Security keys with WebAuthn**](./docs/workflows/webauthn.md)\n\n## Deploy Hasura Auth in Seconds\n\nUse [Nhost](https://nhost.io) to start using Hasura Auth in seconds.\n\n### Using Docker-compose\n\n```sh\ngit clone https://github.com/nhost/hasura-auth.git\ncd hasura-auth\ncp .env.example .env\ndocker-compose -f docker-compose-example.yaml up\n```\n\n## Configuration\n\nRead our [configuration guide](./docs/configuration.md) to customise the Hasura Auth settings.\n\n## Workflows\n\n- [Email and password](./docs/workflows/email-password.md)\n- [Oauth social providers](./docs/workflows/oauth-providers.md)\n- [Passwordless with emails (magic links)](./docs/workflows/passwordless-email.md)\n- [Passwordless with SMS](./docs/workflows/passwordless-sms.md)\n- [Anonymous users](./docs/workflows/anonymous-users.md)\n- [Change email](./docs/workflows/change-email.md)\n- [Change password](./docs/workflows/change-password.md)\n- [Reset password](./docs/workflows/reset-password.md)\n- [Refresh tokens](./docs/workflows/refresh-token.md)\n- [Security keys with WebAuthn](./docs/workflows/webauthn.md)\n\n## JWT Signing\n\nThe JWT tokens can be signed with either a symmetric key based on `HMAC-SHA` or with asymmetric keys based on `RSA`. To configure the JWT signing method, set the environment variable `HASURA_GRAPHQL_JWT_SECRET` which should follow the same format as [Hasura](https://hasura.io/docs/latest/graphql/core/auth/authentication/jwt.html#running-with-jwt) with a few considerations:\n\n1. Only `HS` and `RS` algorithms are supported.\n2. If using `RS` algorithm, the public key should be in PEM format.\n3. If using `RS` algorithm, the private key should be in PKCS#8 format inside an extra field `signing_key`.\n4. If using `RS` algorithm, an additional field `kid` can be added to specify the key id in the JWK Set.\n\nWhen using asymmetric keys, you can get the JWK Set from the endpoing `.well-known/jwks.json`.\n\n## Recipes\n\n- Extending Hasura's permissions with [Custom JWT claims](./docs/recipes/custom-hasura-claims.md)\n- [Extending the user schema](./docs/recipes/extending-user-schema.md)\n\n## Reference\n\n- List of the available [environment variables](./docs/environment-variables.md).\n- The service comes with an [OpenAPI definition](./docs/openapi.json) which you can also see [online](https://editor.swagger.io/?url=https://raw.githubusercontent.com/nhost/hasura-auth/main/docs/openapi.json).\n- [Database Schema](./docs/schema.md)\n\n## 🤝 Contributing\n\nContributions and issues are welcome. Please have a look at the [developer's guide](./DEVELOPERS.md) if you want to prepare a pull request.\n\nFeel free to check the issues page.\n\n## Show your support\n\nGive a ⭐️ if this project helped you!\n\n## 📝 License\n\nThis project is MIT licensed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhost%2Fhasura-auth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnhost%2Fhasura-auth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhost%2Fhasura-auth/lists"}