Skip to content

Autenticação via URL

A autenticação via URL é adequada para aplicações SSR porque o servidor tem acesso direto aos parâmetros da requisição antes de processar ou renderizar o conteúdo. Isso permite validar a sessão no servidor e garantir que apenas usuários autenticados tenham acesso às páginas protegidas.

Para portais externos, essa é a única forma de autenticação disponível, já que o SDK JavaScript LayersPortal.js funciona apenas quando o portal está embutido na Layers.

Requisito

Para usar esse tipo de autenticação, certifique-se que seu portal possui a feature "forward-session" habilitada.

Como funciona

Quando um usuário acessa um portal através da Layers, os parâmetros de autenticação são adicionados à URL como query parameters. O servidor da aplicação recebe esses parâmetros na requisição HTTP e pode validá-los antes de renderizar a página ou processar a requisição.

Os parâmetros fornecidos são (consulte a referência completa dos parâmetros de autenticação):

  • layers_session: identificador da sessão do usuário
  • layers_community_id: identificador da comunidade através da qual o usuário está acessando
  • layers_user_id: identificador único do usuário na Layers

Implementação

Extraindo parâmetros da URL

No servidor, extraia os parâmetros da query string da URL recebida. A implementação varia conforme a linguagem e framework utilizados.

Exemplo usando express:

javascript
app.get('/portal', async (req, res) => {
  const { layers_session, layers_community_id, layers_user_id } = req.query;
  
  // Validar sessão antes de renderizar
  try {
    await validateSession(layers_session, layers_community_id, layers_user_id)

    // Sessão válida, pode continuar!
  } catch (e) {
    // Sessão inválida, apresentar erro
  }
});

Validando a sessão

Antes de processar a requisição ou renderizar a página, valide a sessão usando o endpoint de validação da Layers. A validação deve ser feita no servidor usando o token de aplicação fornecido pela Layers durante o processo de integração.

bash
curl -X GET "https://api.layers.digital/v1/sso/session/validate?session=SESSION&community=COMMUNITY&userId=USER_ID" \
  -H "Authorization: Bearer [TOKEN_DE_APLICACAO]"

Segurança

É fundamental validar a sessão através do endpoint da API antes de confiar nos parâmetros recebidos na URL. Um agente malicioso pode tentar alterar os parâmetros layers_session, layers_community_id ou layers_user_id na query string para tentar acessar dados de outros usuários ou comunidades. Sempre valide a sessão no servidor antes de processar qualquer requisição autenticada.

A API retorna status 200 quando a sessão é válida. Qualquer outro status indica que a sessão não é válida e o usuário deve ser redirecionado para o login.