2016-07-03 1 views
0

Pour autant que je sache de mes recherches, vous ne pouvez pas avoir une boîte de dialogue d'invite à plusieurs champs avec une méthode intégrée que vous pouvez appeler à partir de JavaScript. Alors, comment les pages d'accueil de la plupart des routeurs (192.168.0.1) développent la boîte d'invite d'authentification, comme indiqué ci-dessous?Comment concevoir la boîte de dialogue javascript avec plusieurs champs

J'ai fait un peu plus de recherches et constaté que vous pouvez configurer une authentification HTTP de base en utilisant php

$user = 'user'; 
$password = 'pass'; 
if (!($_SERVER['PHP_AUTH_USER'] == $user && $_SERVER['PHP_AUTH_PW'] == $password)) { 
    header('WWW-Authenticate: Basic realm="Please enter username and password to access this website"'); 
    header('HTTP/1.0 401 Unauthorized'); 
    echo '<h1>Unauthorized Access</h1>'; 
    exit; 
} 
echo "normal website contents"; 

1

+6

Cette boîte provient du navigateur lui-même, pas de JavaScript. Cela fait partie de [HTTP basic authentication] (https://en.wikipedia.org/wiki/Basic_access_authentication). – Thomas

Répondre

4

Ceci est une fonctionnalité du navigateur lorsque le serveur requiert une authentification HTTP, mais aucun n'a été à condition de. C'est la seule exception à la règle "un champ", et vous n'avez pas d'API JS à appeler. (Sans oublier qu'il est moche et l'UX est aussi horrible que alert() ou prompt()).

+0

Ok. Donc, il n'y a pas de solutions de contournement pour implémenter cela sur une page Web? –

+1

@JayGhosh Non, et vous ne devriez pas. Les alertes et les invites sont des dialogues de niveau système qui ne doivent être utilisés que si vous avez besoin d'une décision. *** TOUT MAINTENANT OU LE MONDE VA BRÛLER ***, très peu de choses justifient le navigateur de l'utilisateur en otage, donnant un texte non sélectionnable et des fenêtres incontournables. –

+0

Ok. Je vous remercie. Non, je n'avais pas l'intention de l'utiliser pour une situation pratique. Juste curieux de savoir comment cela fonctionne –