Перейти до основного вмісту

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. Скопіюйте ідентифікатор клієнта; нам він знадобиться на наступних кроках.

Додайте користувача в 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

Запустіть Hasura за допомогою Docker або Hasura Cloud.

Тепер створіть таблицю users з наступними стовпцями:

  • id типу Text (Primary Key)
  • username типу Text

Дивіться зображення нижче для посилання.

Зображення, що показує, як створити таблицю в Hasura

Наступним кроком є створення ролі user для додатку. Користувачі повинні мати можливість бачити лише свої записи, а не записи інших людей.

Налаштуйте роль user, як показано на зображенні нижче. For more information, read about configuring permission rules in Hasura.

Зображення, що показує, як встановити дозволи в Hasura

Таким чином, користувачі не можуть читати записи інших людей. Вони можуть отримати доступ лише до своїх.

Для тестування додайте фіктивного користувача. Це забезпечує, що коли ви використовуєте JWT токен, ви бачите лише деталі свого користувача, а не деталі інших користувачів.

Зображення, що показує, як додати запис таблиці в Hasura

Set JWT_SECRET in Hasura.

Налаштування Hasura з Casdoor

Add HASURA_GRAPHQL_JWT_SECRET to Hasura.

Для цього перейдіть до файлу Hasura docker-compose.yaml і додайте новий HASURA_GRAPHQL_JWT_SECRET, як показано нижче.

HASURA_GRAPHQL_JWT_SECRET повинен бути у наступному форматі. Не забудьте змінити <Casdoor endpoint> на URL вашого Casdoor (наприклад, 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.

Додайте URL JWT Clerk до Hasura

Отримання 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