Renew Authentication Token with javascript

Asked

Viewed 297 times

1

I have the JWT class but I can’t renew it. How do I renew this token when the registration is done? I already own the token in sessionStorage called token with key.

Class:

function parseJwt (token)
{
  var base64Url = token.split('.')[1];
  var base64 = base64Url.replace('-', '+').replace('_', '/');
  var jwt = JSON.parse(window.atob(base64));

  Object.keys(jwt.data).forEach(function (key, value)
  {
    var value = jwt.data[key];
    sessionStorage.setItem(key, value);
  });
};

$('.btn-adicionar-endereco').click(function (e)
{
  e.preventDefault();
  var obj = new Object();
  var arrayObj = new Array();
  var mensagemsucesso = "Dados inseridos com sucesso";
  obj.idcliente = sessionStorage.getItem("cliente_id");
  obj.cependereco = $('.cependereco').val();
  obj.logradouroendereco = $('.logradouroendereco').val();
  obj.numeroendereco = $('.numeroendereco').val();
  obj.complementoendereco = $('.complementoendereco').val();
  obj.estadoendereco = $('.estadoendereco').val();
  obj.cidadeendereco = $('.cidadeendereco').val();
  obj.bairroendereco = $('.bairroendereco').val();

  if (obj.cependereco == '')
  {
    alert('O cep é obrigatório');
    return false;
  }
  else if (obj.logradouroendereco == '')
  {
    alert('O Logradouro é obrigatório');
    return false;
  }
  else if (obj.numeroendereco == '')
  {
    alert('O número é obrigatório');
    return false;
  }
  else if (obj.estadoendereco == '')
  {
    alert('Selecione um estado');
    return false;
  }
  else if (obj.cidadeendereco == '')
  {
    alert('Selecione uma cidade');
    return false;
  }
  else
  {
    arrayObj.push(obj);
    enderecoArray = JSON.stringify(arrayObj);

    $.ajax(
      {
        url: urlBase + "cliente/endereco",
        //  url: 'https://api.clouddelivery.com.br/store/cliente/endereco',
        method: 'POST',
        dataType: 'json',
        data: JSON.stringify(
          {
            cliente_id: obj.idcliente,
            bairro_id: obj.bairroendereco,
            logradouro: obj.logradouroendereco,
            numero: obj.numeroendereco,
            referencia: obj.complementoendereco,
            complemento: obj.complementoendereco,
            cep: obj.cependereco,
          }
        ),
        success: function(data)
        {
          // array objeto e session storage do site
          sessionStorage.setItem('dadosendereco', enderecoArray);
          $(".bg-success").html(mensagemsucesso);
          $(".bg-success").css('display', 'block');
          alert('Endereço salvo com sucesso');
          renovarToken();
          $(location).attr('href', 'perfil.php');
        },
        error: function(data)
        {
          console.log("Erro. Não foi possível realizar o cadastro por endereço");
        }
      });
    }
  });

//FUNÇÃO RENOVAR O TOKEN:
function renovarToken ()
{
    var id_token = sessionStorage.token;
    var verificatoken = "";
    $.ajax({
      url: urlBase + "autenticacao",
      method: 'GET',
      dataType: 'json',
      global: false,

      success: function(data)
      {
        console.log(data);
        /*  verificatoken = parseJwt(data);
        if (verificatoken)
        {
        alert('Token autenticado com sucesso');
      }
      else
      {
      alert('Token não autenticado');
    }*/
  },
  error: function(XMLHttpRequest, textStatus, errorThrown)
  {
    alert("Status do Servidor: " + textStatus);
    alert("Erro do Servidor: " + errorThrown);
  }
});
}

// RENOVAR TOKEN INIT
function renovarTokenInit()
{
  setTimeout(function ()
  {
    renovarToken();

    setInterval(function ()
    {
      renovarToken();
    }, 600000);
  }, 5000);
}
  • Why don’t you use http://jqueryvalidation.org/ to validate your form? Will save you a lot of code and make it clearer where the bug might be.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.