Hasura
Deploy Casdoor first (see Server installation). Then configure the application and Hasura as below.
Налаштування додатку Casdoor
- Створіть або використовуйте існуючий додаток Casdoor.
- Додайте URL перенаправлення:
http://CASDOOR_HOSTNAME/login
- Скопіюйте ідентифікатор клієнта; нам він знадобиться на наступних кроках.
Додайте користувача в Casdoor
Create a user and assign a role to the application.
Go to Users → Add 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
Дивіться зображення нижче для посилання.

Наступним кроком є створення ролі user для додатку. Користувачі повинні мати можливість бачити лише свої записи, а не записи інших людей.
Налаштуйте роль user, як показано на зображенні нижче. For more information, read about configuring permission rules in Hasura.

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

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.

Отримання 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 раніше.
Натисніть "Увійти"

Поверніться на сторінку Casdoor/Token.

Знайдіть ім'я користувача, яке ви ввели раніше, потім натисніть "редагувати"
Скопіюйте токен доступу

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