Desenvolvedor de sinal do OneSpan: vencimento da sessão em um iFrame

Duo Liang, 3 de Outubro de 2018

Ao desenvolver seu aplicativo com a cerimônia de assinatura incorporada ao iFrame, convém considerar a Expiração da Sessão do Signatário. Esse recurso expira automaticamente o usuário do documento se houver um período de inatividade. Por exemplo, você pode redirecionar seu assinante para sua página de login ou ajudar seu assinante a estender sua sessão.

 

 

Neste blog, abordaremos as configurações relacionadas à sessão do assinante no OneSpan Sign e explicaremos como podemos criar um mecanismo de expiração da sessão de assinatura que forneça segurança aos seus usuários sem prejudicar a experiência do cliente.

 

 

Sessão do assinante no OneSpan Sign

 

Quando um usuário inicia uma cerimônia de assinatura, o OneSpan Sign atribui ao usuário uma sessão. Por padrão, esta sessão permanecerá válida, a menos que o usuário fique inativo por um período de 30 minutos. Depois que a sessão expirar, o usuário verá a mensagem de erro abaixo:

 

 

10-3-1

Quando o usuário retomar a atividade, o OneSpan Sign redirecionará a página para um URL predefinido, como sua página de login ou o que você definir no nível da sua conta.

 

 

Nota:

  • A sessão do assinante existe independentemente de você usar um iFrame. 
  • O tempo limite de expiração da sessão padrão de 30 minutos pode ser modificado entrando em contato com nosso equipe de suporte .

     

A expiração da sessão é um processo simples se o usuário estiver assinando um link de email em uma página designada. Mas ao entrar em um iFrame, torna-se mais complicado. Se o tempo limite do usuário expirar, não haverá para onde o OneSpan Sign redirecionará a página. O OneSpan Sign está confinado ao iFrame como uma janela filho, e a janela pai não será notificada para controlar o processo.

 

 

Práticas recomendadas: tempo limite da sessão em um iFrame

 

Para criar uma política de tempo limite efetivo quando o OneSpan Sign estiver em um iFrame, você deve aproveitar o URL de redirecionamento. Podemos usar esse URL como um link de gancho para notificar a janela pai. Depois que a janela pai receber o notificador, você poderá redirecionar o navegador do cliente para a página de login. Vou mostrar todos os detalhes nas etapas a seguir.

 

 

Passo 1:

 

Modifique a configuração "URL de redirecionamento de expiração da sessão do assinante" no nível da sua conta e vincule-a a um recurso no seu domínio. No exemplo abaixo, simplesmente usamos uma página HTML sem conteúdo (chamada child.html) e é usada apenas para notificar nossa janela principal.

 

 

Nota:

 

Passo 2:

 

Nesse recurso interno, chamamos diretamente uma função JavaScript IIFE para notificar nossa janela pai, como abaixo:

 

 

 (função(){
    window.parent.postMessage ('ESL: MESSAGE: ERRO: SESSION_EXPIRE', "*");
}) ();

Você deve usar uma fonte que compartilhe a mesma origem que a janela pai, porque essa fonte é usada para estabelecer a comunicação entre janelas entre o iFrame e a página pai. E, neste exemplo, usamos uma convenção de nomenclatura semelhante à nossa notificação de eventos para maior consistência.

 

 

Etapa 3:

 

Depois que o redirecionamento é acionado, a janela pai pode receber a mensagem de postagem enviada a partir do link do gancho, e essa mensagem pode ser tratada como qualquer outra notificação enviada pelo OneSpan Sign. Abaixo está um código de exemplo:

 

 

função receiveMessage (event) {
      var origin = event.origin || event.originalEvent.origin;
      var dados = event.data;
      console.log (dados, origem);

      switch (dados) {
        caso 'ESL: MESSAGE: ERRO: SESSION_EXPIRE':
          // chame sua função aqui
          quebrar;
        padrão:
          event.source.postMessage (dados, origem)
          quebrar;
      }
    }	

Você pode encontrar o código completo aqui .

 

 

Token de autenticação de uso único

 

Algumas organizações estão preocupadas com usuários ociosos, pois isso pode representar um risco de segurança para a cerimônia de assinatura. Para essas organizações, o URL de assinatura pode ser formado com um Token de autenticação de uso único. Assim, quando a sessão do assinante expirar e eles forem redirecionados, eles não poderão voltar à cerimônia de assinatura com o token de autenticação original. O assinante precisará iniciar a cerimônia desde o início e autenticar novamente.

 

 

A API REST para token de autenticação de uso único é:

Solicitação HTTP
POST / api / authenticationTokens / signer / singleUse

Cabeçalhos HTTP
Accept: application / json
Tipo de Conteúdo: application / json
Autorização: básica api_key

Solicitar carga útil
{
   "packageId": "s-wy6PFASBlAKfnLJjcbzoaMyTg =",
   "signerId": "cd9lbzvjgblygdncdz3x @esignlive .com "
}

Código Java SDK:

String singleUseToken = eslClient.getAuthenticationTokensService (). CreateSignerAuthenticationTokenForSingleUse (packageId, signerId, signerSessionFields);

Código do SDK .Net: 

string singleUseToken = eslClient.AuthenticationTokensService.CreateSignerAuthenticationTokenForSingleUse (packageId, signerId, signerSessionFields);

E recomendamos a criação do seguinte URL para obter seu URL de assinatura:

https://sandbox.esignlive.com/access?sessionToken={signerAuthToken}

Para mais informações, visite nosso Orientação sobre token de autenticação .

 

 

Ao aplicar essas práticas recomendadas, você pode melhorar sua experiência de assinatura em um iFrame, fornecendo um recurso de expiração de sessão e facilitando o controle do fluxo de trabalho do seu aplicativo.

 

 

Se você tiver alguma dúvida sobre este blog ou qualquer outra coisa relacionada à integração do OneSpan Sign ao seu aplicativo, visite o Fóruns da comunidade de desenvolvedores . Seu feedback é importante para nós!