Zum Hauptinhalt springen

Hasura

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

Casdoor-Anwendung konfigurieren

  1. Erstellen oder verwenden Sie eine bestehende Casdoor-Anwendung.
  2. Fügen Sie eine Weiterleitungs-URL hinzu: http://CASDOOR_HOSTNAME/login Casdoor-Anwendungseinstellung
  3. Kopieren Sie die Client-ID; wir werden sie in den folgenden Schritten benötigen.

Einen Benutzer in Casdoor hinzufügen

Create a user and assign a role to the application.

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

Bild zeigt die Benutzerseite

Speichern Sie den Benutzer, nachdem Sie einen Benutzernamen hinzugefügt und die Organisation Hasura hinzugefügt haben (andere Details sind optional).

Set a password via "Manage your password".

Wählen Sie ein Passwort für Ihren Benutzer und bestätigen Sie es.

Die Hasura-App erstellen

Starten Sie Hasura mit Docker oder Hasura Cloud.

Erstellen Sie jetzt eine users-Tabelle mit den folgenden Spalten:

  • id vom Typ Text (Primärschlüssel)
  • username vom Typ Text

Beziehen Sie sich für Referenzen auf das Bild unten.

Bild zeigt, wie man eine Tabelle in Hasura erstellt

Der nächste Schritt ist die Erstellung einer user-Rolle für die App. Benutzer sollten nur ihre eigenen Datensätze sehen können, aber nicht die von anderen Personen.

Konfigurieren Sie die user-Rolle wie im Bild unten gezeigt. For more information, read about configuring permission rules in Hasura.

Bild zeigt, wie man Berechtigungen in Hasura einstellt

Auf diese Weise können Benutzer die Datensätze anderer Personen nicht lesen. Sie können nur auf ihre eigenen zugreifen.

Für Testzwecke fügen Sie einen Dummy-Benutzer hinzu. Dies soll sicherstellen, dass Sie, wenn Sie das JWT-Token verwenden, nur die Details Ihres Benutzers sehen und nicht die Details anderer Benutzer.

Bild zeigt, wie man einen Tabelleneintrag in Hasura hinzufügt

Set JWT_SECRET in Hasura.

Hasura mit Casdoor konfigurieren

Add HASURA_GRAPHQL_JWT_SECRET to Hasura.

Dazu gehen Sie zur Hasura docker-compose.yaml und fügen dann das neue HASURA_GRAPHQL_JWT_SECRET wie unten beschrieben hinzu.

Das HASURA_GRAPHQL_JWT_SECRET sollte im folgenden Format sein. Denken Sie daran, <Casdoor-Endpunkt> durch Ihre eigene Casdoor-URL zu ändern (wie 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"}'

Speichern Sie die Änderung und laden Sie den Docker neu.

Fügen Sie die Clerk JWT URL zu Hasura hinzu

Das JWT-Token abrufen

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.

Geben Sie dann den Benutzernamen und das Passwort ein, das Sie zuvor für Hasura erstellt haben.

"Anmelden" klicken

Das JWT-Token abrufen

Gehen Sie zurück zur Casdoor/Token-Seite.

Token-Seite

Finden Sie den Benutzernamen, den Sie zuvor eingegeben haben, und klicken Sie dann auf "bearbeiten"

Das Zugriffstoken kopieren

Zugriffstoken

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

Bild zeigt das Zugriffstoken von Casdoor, das in Hasura verwendet wird