Passer au contenu principal

Hasura

Avant l'intégration, nous devons déployer Casdoor localement.

Ensuite, nous pouvons rapidement mettre en place une page de connexion basée sur Casdoor dans notre propre application avec les étapes suivantes.

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

Maintenant que vous avez l'application, mais pas d'utilisateur. Cela signifie que vous devez créer un utilisateur et lui attribuer un rôle.

Allez à la page "Utilisateurs" et cliquez sur "Ajouter un utilisateur" dans le coin supérieur droit. Cela ouvre une nouvelle page où vous pouvez ajouter le nouvel utilisateur.

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).

Maintenant, vous devez définir un mot de passe pour votre utilisateur, ce que vous pouvez faire en cliquant sur "gérer votre mot de passe".

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

Maintenant, vous devez définir le JWT_SECRET dans Hasura.

Configurez Hasura avec Casdoor

Dans cette étape, vous devez ajouter le HASURA_GRAPHQL_JWT_SECRET à 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

Puisqu'il n'y a pas d'implémentation client, vous pouvez obtenir votre token d'accès en faisant une requête à l'URL ci-dessous :

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>>

Changez client ID par l'ID que vous avez copié auparavant et entrez le certificat public de Casdoor, que vous pouvez trouver sur la page Certs de Casdoor.

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

Maintenant, vous pouvez utiliser le token d'accès pour effectuer la requête authentifiée. Hasura a renvoyé l'utilisateur approprié au lieu de renvoyer tous les utilisateurs de la base de données.

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