Pular para o conteúdo principal

Hasura

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

Configurar aplicação Casdoor

  1. Crie ou use uma aplicação Casdoor existente.
  2. Adicione uma URL de redirecionamento: http://CASDOOR_HOSTNAME/login Configuração da Aplicação Casdoor
  3. 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 UsersAdd user to open the new-user page.

Imagem mostrando a página de usuários

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:

  • id do tipo Texto (Chave Primária)
  • username do tipo Texto

Consulte a imagem abaixo para referência.

Imagem mostrando como criar uma tabela no Hasura

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.

Imagem mostrando como configurar permissões no 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.

Imagem mostrando como adicionar um registro de tabela no Hasura

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.

Adicione a URL do JWT do Clerk ao Hasura

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"

Recupere o Token JWT

Volte para a página Casdoor/Token.

Página de Token

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

Copie o Token de Acesso

Token de Acesso

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

Imagem mostrando o token de acesso do Casdoor sendo usado no Hasura