O uso do plug -in JQuery Cookie é uma maneira válida de testar para ver se os cookies estão ativados?

StackOverflow https://stackoverflow.com/questions/2029725

  •  19-09-2019
  •  | 
  •  

Pergunta

Eu tenho um site que exigimos que o usuário tenha ativado JavaScript e cookies antes que eles possam fazer login no site. (A parte do JS é feita e funciona perfeitamente.) No momento, estamos definindo um cookie e depois redirecionamos o usuário para outra página (no PHP). Isso funcionou bem, mas agora temos um monte de pessoas que marcaram a página como os que estamos redirecionando, o que obviamente não tem o conjunto de cookies e, portanto, não permite que eles façam login.

Então, estou tentando encontrar outra solução para verificar o cookie e estou pensando em usar o JQuery Cookie Plugin. Gostaria de saber se é compatível em todos os navegadores (quando o JS está ativado, é claro)?

Foi útil?

Solução

Thxs shawn para sua Resposta, mas infelizmente porque os navegadores nem sempre enviam o referenciador, não é confiável o suficiente para poder usá -lo sempre. Porque se não estiver definido, você meio que acaba em um loop.

A outra solução que pensei foi redirecionar para uma página completamente separada, que por si só verifica se os cookies estão ativados (redirecionando para si mesmo). Se os cookies estiverem ativados, ele redirecionaria de volta para a página original. Se não forem, será redirecionado para uma página sobre o problema. Eu acho que isso deve funcionar, mas não tenho certeza.

No final, experimentei o plugin JQuery Cooke no IE 6, 7 e 8, Safari 4, Google Chrome 4, Firefox 3.5, Opera 10.2 e em algumas configurações diferentes e funcionou em todas elas. Aqui está o código que estou usando:

$.cookie('test_cookie', 'cookie_value', { path: '/' });
if ($.cookie('test_cookie') == 'cookie_value') {
    // cookie worked, set/enable appropriate things
}

Não é perfeito, mas estou pensando que funcionará em 95% dos casos. Caso contrário, ele falhará e simplesmente não permitirá que eles façam nada.

Outras dicas

Você pode verificar o referenciador da página e, se não for sua página inicial, poderá redirecioná -los para lá. Se o referenciador for sua página inicial e não houver conjunto de biscoitos, você saberá que eles não terão cookies ativados.

Eu gosto desta função de 1 revestimento:

function cookiesEnabled() {
    return $.cookie('check', 'valid', { expires: 1 }) && $.cookie('check') == 'valid';
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top