Saltar al contenido principal

Hasura

Deploy Casdoor first (see Server installation). Then configure the application and Hasura as below.

Configurar la aplicación Casdoor

  1. Crear o usar una aplicación Casdoor existente.
  2. Añade una URL de redirección: http://CASDOOR_HOSTNAME/login Configuración de la Aplicación Casdoor
  3. Copia el ID del cliente; lo necesitaremos en los siguientes pasos.

Añade un usuario en Casdoor

Create a user and assign a role to the application.

Go to UsersAdd user to open the new-user page.

Imagen mostrando la página de usuarios

Guarda el usuario después de añadir un nombre de usuario y añadir la organización Hasura (otros detalles son opcionales).

Set a password via "Manage your password".

Elige una contraseña para tu usuario y confírmala.

Construir la Aplicación Hasura

Inicia Hasura por Docker o Hasura Cloud.

Ahora crea una tabla users con las siguientes columnas:

  • id de tipo Texto (Clave Primaria)
  • username de tipo Texto

Refiérete a la imagen a continuación para referencia.

Imagen mostrando cómo crear una tabla en Hasura

El siguiente paso es crear un rol user para la aplicación. Los usuarios deberían poder ver solo sus registros pero no los registros de otras personas.

Configura el rol user como se muestra en la imagen a continuación. For more information, read about configuring permission rules in Hasura.

Imagen mostrando cómo configurar permisos en Hasura

De esta manera, los usuarios no pueden leer los registros de otras personas. Solo pueden acceder a los suyos.

Para propósitos de prueba, añade un usuario ficticio. Esto es para asegurar que cuando uses el token JWT, solo veas los detalles de tu usuario y no los detalles de otros usuarios.

Imagen mostrando cómo añadir un registro de tabla en Hasura

Set JWT_SECRET in Hasura.

Configura Hasura con Casdoor

Add HASURA_GRAPHQL_JWT_SECRET to Hasura.

Para hacerlo, ve al docker-compose.yaml de Hasura y luego añade el nuevo HASURA_GRAPHQL_JWT_SECRET como se muestra a continuación.

El HASURA_GRAPHQL_JWT_SECRET debe estar en el siguiente formato. Recuerda cambiar <Casdoor endpoint> por la URL de tu propio Casdoor (como https://door.casdoor.com)

HASURA_GRAPHQL_JWT_SECRET: '{"claims_map": {
"x-hasura-allowed-roles": {"path": "$.roles"},
"x-hasura-default-role": {"path": "$.roles[0]"},
"x-hasura-user-id": {"path": "$.id"}
},"jwk_url":"<Casdoor endpoint>/.well-known/jwks"}'

Guarda el cambio y recarga el docker.

Añade la URL del JWT de Clerk a Hasura

Recupera el Token JWT

With no client implementation, obtain an access token by calling:

http://localhost:8000/login/oauth/authorize?client_id=<client ID>&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Flogin&scope=read&state=app-built-in<public certificate>>

Change client ID to the ID you copied before and input the public certificate of Casdoor, from the Casdoor Certs page.

Luego ingresa el nombre de usuario y la contraseña que creaste para Hasura antes.

Haz clic en "Iniciar sesión"

Recupera el Token JWT

Vuelve a la página Casdoor/Token.

Página de Token

Encuentra el Nombre de Usuario que ingresaste antes, luego haz clic en "editar"

Copia el Token de Acceso

Token de Acceso

Use the access token for authenticated requests; Hasura returns the matching user instead of all users.

Imagen mostrando el token de acceso de Casdoor siendo usado en Hasura