Single Sign-On na Layers
Entregamos uma experiência de Login Unificado (Single Sign-On ou SSO) baseado no protocolo OAuth2 para otimizar o tempo gasto com gestão de contas e acessos aos recursos digitais.
Faça login com a Layers
Plataformas parceiras possuem o botão "Logar com Layers", facilitando o acesso com apenas um login.
O botão é um link com parâmetros adicionados que definem para qual aplicativo a Layers deve enviar o usuário e algumas configurações necessárias para o fluxo do protocolo OAuth2.
Com a intenção de facilitar a vida do desenvolvedor, a Layers desenvolveu uma lib que abstrai grande parte da lógica necessária para a implementação do botão - para utilizá-lo, é necessário utilizar a
Escopos OAuth2
| Escopo | Acesso |
|---|---|
| openid | account.id |
| profile | account.createdAt account.updatedAt account.language account.timezone account.firstName |
| fullname | account.name |
| account.email | |
| related.communities | community.community
community.name community.icon community.logo community.language community.timezone community.geolocation community.color community.createdAt community.updatedAt user.lastSeenAt user.id user.createdAt user.updatedAt user.alias user.roles user.permissions |
| related.groups | group.id group.name group.alias group.createdAt group.updatedAt group.enrollment.id group.enrollment.kind group.enrollment.entity group.enrollment.group group.enrollment.createdAt group.enrollment.updatedAt |
| related.members | member.id member.name member.createdAt member.updatedAt |
| related.members.groups | groups.id group.name group.alias group.createdAt group.updatedAt group.enrollment.id group.enrollment.kind group.enrollment.entity group.enrollment.group group.enrollment.createdAt group.enrollment.updatedAt |
Layers OAuth2
Caso não queira utilizar a
Client-side
O cliente deverá abrir a seguinte url
https://id.layers.digital, passando os seguintes pârametros:
| Parâmetro | Valor |
|---|---|
| client_id | Identificador do app |
| response_type | code (Atualmente o único aceitado) |
| redirect_uri | URL de redirecionamento configurada anteriormente |
| scope | Escopos configurados anteriormente (deve ser indentado com espaços) |
| state | Mensagem adicional que pode ser utilizada para ser retornado na rota de token de acesso (OPCIONAL) |
Exemplo de url:
https://id.layers.digital/?client_id=myApp&redirect_uri=https://myApp.com&response_type=code&scope=openid profile fullname
Autenticação
Todas as chamadas devems ser feitas na url da API da layers:
https://api.layers.digital
Após o usuário fazer o fluxo de login e aceitar os escopos, será redirecionado para
https://{{redirect_uri}}?code={{code}}. Com este código de acesso
{{code}}, será necessário fazer a seguinte requisição:
POST https://api.layers.digital/oauth/token
Requisição do tipo FORM URL Encoded:
{
"grant_type": "authorization_code",
"client_id": "{{client_id}}",
"code": "{{code}}",
"redirect_uri": "{{redirect_uri}}"
} A API retornará um JSON com o seguinte formato:
Resposta:
{
"access_token": "{{jwtToken}}",
"token_type": "Bearer",
"expires_in": Number // Em quanto tempo irá expirar este token,
"state": String // Irá retornar o mesmo valor caso tenha sido utilizado na primeira chamada
}