メインコンテンツにスキップ

Hasura

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

Casdoorアプリケーションの設定

  1. 既存のCasdoorアプリケーションを作成するか使用します。
  2. リダイレクトURLを追加します:http://CASDOOR_HOSTNAME/login Casdoorアプリケーション設定
  3. クライアントIDをコピーします。次のステップで必要になります。

Casdoorにユーザーを追加する

Create a user and assign a role to the application.

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

ユーザーページを示す画像

ユーザー名を追加し、Hasura組織を追加してユーザーを保存します(他の詳細はオプションです)。

Set a password via "Manage your password".

ユーザーのパスワードを選択し、確認してください。

Hasuraアプリをビルドする

DockerまたはHasura CloudでHasuraを起動します。

次に、以下の列を持つusersテーブルを作成します:

  • テキスト型のid(プライマリーキー)
  • テキスト型のusername

参考のために下の画像を参照してください。

Hasuraでテーブルを作成する方法を示す画像

次のステップは、アプリのuserロールを作成することです。 ユーザーは自分のレコードのみを見ることができ、他人のレコードは見ることができません。

下の画像に示されているようにuserロールを設定します。 For more information, read about configuring permission rules in Hasura.

Hasuraで権限を設定する方法を示す画像

この方法では、ユーザーは他人のレコードを読むことができません。 彼らは自分のものにのみアクセスできます。

テスト目的で、ダミーユーザーを追加します。 これは、JWTトークンを使用するときに、他のユーザーの詳細ではなく、自分のユーザーの詳細のみが表示されるようにするためです。

Hasuraでテーブルレコードを追加する方法を示す画像

Set JWT_SECRET in Hasura.

CasdoorでHasuraを設定する

Add HASURA_GRAPHQL_JWT_SECRET to Hasura.

そのためには、Hasuraのdocker-compose.yamlに行き、以下のように新しいHASURA_GRAPHQL_JWT_SECRETを追加します。

HASURA_GRAPHQL_JWT_SECRETは以下の形式であるべきです。 <Casdoor endpoint>を自分のCasdoorのURL(例: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"}'

変更を保存し、dockerをリロードします。

HasuraにClerk JWT URLを追加する

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.

その後、Hasura用に作成したユーザー名とパスワードを入力します。

「サインイン」をクリックする

JWTトークンを取得する

Casdoor/Tokenページに戻ります。

トークンページ

以前に入力したユーザー名を見つけてから、「編集」をクリックする

アクセストークンをコピーする

アクセストークン

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

CasdoorからのアクセストークンがHasuraで使用されていることを示す画像