Olá!
Segue minha proposta. A única coisa que me intrigou foram os valores que tive que atribuir ao contador tanto na declaração inicial quanto na condição do while. Só assim o programa funcionou efetivamente com até três tentativas. Mas logicamente não faz sentido. Isto porque, no terceiro giro, o contador é igual e não menor que 3. Spooky...
<meta charset="UTF-8">
<script>
var loginCadastrado = "alura";
var senhaCadastrada = "alura321";
var loginInformado = prompt("Informe seu login:");
var senhaInformada = prompt("Informe sua senha:");
var validade = (loginCadastrado == loginInformado && senhaCadastrada == senhaInformada);
var contador = 1;
if (validade) {
alert("Bem-vindo ao sistema " + loginInformado);
} else {
while(contador < 3) {
if (validade == false){
alert("Login inválido. Tente novamente");
contador++;
}
loginInformado = prompt("Informe seu login:");
senhaInformada = prompt("Informe sua senha:");
}
alert("Tentativas esgotadas. Sua conta foi bloqueada por segurança. Contate o administrador.")
}
</script>