Anmeldeformular für Http Basic Auth

8

Ich benutze eine Perl Anwendung namens bitlfu.Für die Anmeldung verwendet sie etwas wie Apache HTTP Basic Auth , aber kein Formular. Ich möchte ein Formular für die Anmeldung erstellen mit Benutzername und Passwortfeld. Ich habe JavaScript und PHP bisher ohne Resultate versucht.

Also brauche ich Hilfe!

PS: Diese Art von URL funktioniert

%Vor%     
Pouyan 20.06.2010, 11:19
quelle

4 Antworten

6

Ich denke ein einfaches JavaScript wie:

%Vor%

sollte die Arbeit machen.

Sie müssen also im Grunde ein Formular mit einem Benutzer- und einem Passfeld erstellen und dann den hier angegebenen Teil von JavaScript verwenden:

%Vor%

wobei $ () eine document.getElementById oder jquery oder so ist. Ich benutzte die $ () -Funktion, um den Code kürzer zu machen. Hier ist eine Implementierung, die nicht bei jedem Browser funktioniert. Suchen Sie erneut throw jQuery für die Cross-Browser-Lösung.

%Vor%

Andernfalls können Sie PHP verwenden und den Benutzer mit einem Header-Speicherort umleiten.

php Weg:

%Vor%     
Aif 20.06.2010, 11:36
quelle
4

Sie können den Benutzer mit Perl oder mit JavaScript in http://user:[email protected] umleiten. Ich kenne Perl nicht, also zeige ich dir das JS:

%Vor%

Das sollte funktionieren. Das einzige Problem ist, dass das Passwort in der URL angezeigt wird.

Der geniale AJAX-Weg mit jQuery:

%Vor%

Der ultimative Perl-Weg (glaube ich)

%Vor%     
user142019 20.06.2010 11:30
quelle
1

Die Methode, document.location mit dem Benutzernamen @ password in URL explizit umzuleiten, hat mir Probleme bereitet, dass Safari eine Phishing-Warnung gibt.

Wenn ich stattdessen zuerst eine AJAX-Anfrage an eine URL mit einfachen Auth-Kopfzeilen anlege und dann document.location ohne den Benutzernamen / die URL weiterleite, funktioniert es besser für mich

Beispiel

%Vor%

Leider nur mit Safari, wenn Sie Ihren Benutzernamen und Ihr Passwort falsch eingeben, dann wird ein weiteres Standard-HTTP-Basis-Auth-Popup erstellt, aber das ist besser als eine große rote "Phishing-Warnung", die auftritt, wenn Sie die Datei document.location angeben Benutzername / Passwort

In Chrome gibt es kein doppeltes Popup, wenn die Anmeldeinformationen nicht korrekt sind

    
Colin D 17.07.2017 14:36
quelle
0

Dies ist eine einfache Plug & Amp; Play-Lösung ;-). Funktioniert für jede Domäne (und auch für HTTPS):

%Vor%

Sie können dies in Ihr 401-Fehlerdokument einfügen.

Beachten Sie, dass return false erforderlich ist, damit die Seite nicht zweimal neu geladen wird.

    
Nux 05.05.2017 09:30
quelle