Passer au contenu principal

Hasura

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

Configurer l'application Casdoor

  1. Créez ou utilisez une application Casdoor existante.
  2. Ajoutez une URL de redirection : http://CASDOOR_HOSTNAME/login Paramètre de l'application Casdoor
  3. Copiez l'ID client ; nous en aurons besoin dans les étapes suivantes.

Ajoutez un utilisateur dans Casdoor

Create a user and assign a role to the application.

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

Image montrant la page des utilisateurs

Sauvegardez l'utilisateur après avoir ajouté un nom d'utilisateur et ajouté l'organisation Hasura (les autres détails sont optionnels).

Set a password via "Manage your password".

Choisissez un mot de passe pour votre utilisateur et confirmez-le.

Construisez l'application Hasura

Démarrez Hasura par Docker ou Hasura Cloud.

Maintenant créez une table users avec les colonnes suivantes :

  • id de type Texte (Clé Primaire)
  • username de type Texte

Référez-vous à l'image ci-dessous pour référence.

Image montrant comment créer une table dans Hasura

L'étape suivante consiste à créer un rôle user pour l'application. Les utilisateurs devraient être capables de voir seulement leurs enregistrements mais pas ceux des autres.

Configurez le rôle user comme montré dans l'image ci-dessous. For more information, read about configuring permission rules in Hasura.

Image montrant comment définir les permissions dans Hasura

De cette manière, les utilisateurs ne peuvent pas lire les enregistrements des autres. Ils ne peuvent accéder qu'à leurs propres informations.

Pour des fins de test, ajoutez un utilisateur fictif. Ceci est pour s'assurer que lorsque vous utilisez le token JWT, vous ne voyez que les détails de votre utilisateur et non ceux des autres utilisateurs.

Image montrant comment ajouter un enregistrement de table dans Hasura

Set JWT_SECRET in Hasura.

Configurez Hasura avec Casdoor

Add HASURA_GRAPHQL_JWT_SECRET to Hasura.

Pour ce faire, allez dans le fichier docker-compose.yaml de Hasura et ajoutez le nouveau HASURA_GRAPHQL_JWT_SECRET comme ci-dessous.

Le HASURA_GRAPHQL_JWT_SECRET doit être au format suivant. N'oubliez pas de changer <Casdoor endpoint> par l'URL de votre propre Casdoor (comme 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"}'

Sauvegardez le changement et rechargez le docker.

Ajoutez l&#39;URL JWT de Clerk à Hasura

Récupérez le 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.

Ensuite, entrez le nom d'utilisateur et le mot de passe que vous avez créés pour Hasura auparavant.

Cliquez sur "Se connecter"

Récupérez le Token JWT

Retournez à la page Casdoor/Token.

Page de Token

Trouvez le nom d'utilisateur que vous avez entré auparavant, puis cliquez sur "éditer"

Copiez le Token d'Accès

Token d&#39;Accès

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

Image montrant le token d&#39;accès de Casdoor utilisé dans Hasura