Hasura
Deploy Casdoor first (see Server installation). Then configure the application and Hasura as below.
Configurar aplicação Casdoor
- Crie ou use uma aplicação Casdoor existente.
- Adicione uma URL de redirecionamento:
http://CASDOOR_HOSTNAME/login
- Copie o ID do cliente; precisaremos dele nos passos seguintes.
Adicione um usuário no Casdoor
Create a user and assign a role to the application.
Go to Users → Add user to open the new-user page.

Salve o usuário após adicionar um nome de usuário e adicionar a organização Hasura (outros detalhes são opcionais).
Set a password via "Manage your password".
Escolha uma senha para o seu usuário e confirme-a.
Construa o Aplicativo Hasura
Inicie o Hasura pelo Docker ou Hasura Cloud.
Agora crie uma tabela users com as seguintes colunas:
iddo tipo Texto (Chave Primária)usernamedo tipo Texto
Consulte a imagem abaixo para referência.

O próximo passo é criar um papel user para o aplicativo. Os usuários devem poder ver apenas seus próprios registros, mas não os registros de outras pessoas.
Configure o papel user conforme mostrado na imagem abaixo. For more information, read about configuring permission rules in Hasura.

Dessa forma, os usuários não podem ler os registros de outras pessoas. Eles só podem acessar os próprios.
Para fins de teste, adicione um usuário fictício. Isso é para garantir que, quando você usa o token JWT, você só veja os detalhes do seu usuário e não os detalhes de outros usuários.

Set JWT_SECRET in Hasura.
Configure o Hasura com o Casdoor
Add HASURA_GRAPHQL_JWT_SECRET to Hasura.
Para fazer isso, vá para o docker-compose.yaml do Hasura e adicione o novo HASURA_GRAPHQL_JWT_SECRET como abaixo.
O HASURA_GRAPHQL_JWT_SECRET deve estar no seguinte formato. Lembre-se de mudar <endpoint do Casdoor> para a URL do seu próprio Casdoor (como 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"}'
Salve a alteração e recarregue o docker.

Recupere o Token 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.
Então insira o nome de usuário e senha que você criou para o Hasura antes.
Clique em "Entrar"

Volte para a página Casdoor/Token.

Encontre o Nome de Usuário que você inseriu antes, então clique em "editar"
Copie o Token de Acesso

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