Here are some of the text resources to help follow along in the video.
The docker-compose.yaml
to spin up Hasura. Just make sure you are replacing the [YOUR_DOMAIN]
with the domain from Auth0.
version: "3.6"
services:
postgres:
image: postgres:12
restart: always
volumes:
- db_data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: postgrespassword
graphql-engine:
image: hasura/graphql-engine:v2.0.1
ports:
- "8080:8080"
depends_on:
- "postgres"
restart: always
environment:
HASURA_GRAPHQL_METADATA_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres
DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres
HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console
HASURA_GRAPHQL_DEV_MODE: "true"
HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log
HASURA_GRAPHQL_ADMIN_SECRET: admin_secret
HASURA_GRAPHQL_JWT_SECRET: '{"type":"RS256","jwk_url": "https://[YOUR_DOMAIN].us.auth0.com/.well-known/jwks.json"}'
volumes:
db_data:
The action flow code.
exports.onExecutePostLogin = async (event, api) => {
const allowedRoles = (event.authorization && event.authorization.roles) || [];
if (allowedRoles.length && event.user.email_verified) {
api.idToken.setCustomClaim("https://hasura.io/jwt/claims", {
"x-hasura-default-role": allowedRoles[0],
"x-hasura-allowed-roles": allowedRoles,
"x-hasura-user-id": event.user.user_id,
});
} else {
api.access.deny("Email not verified");
}
};
Finally the URL to test your Auth0 login to generate a token.
https://[YOUR_DOMAIN].us.auth0.com/authorize?response_type=id_token&redirect_uri=http://localhost:3000&client_id=[CLIENT_ID]&nonce=123
Join our community and get help with React, React Native, and all web technologies. Even recommend tutorials, and content you want to see.