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
}