Ich entwickle eine einfache Web-Anwendung, die in Flask geschrieben wurde, um die Browser-Authentifizierung von Grund auf zu verstehen. Als ersten Schritt habe ich die Standardauthentifizierung nur den anonymen Zugriff auf die Verwendung:Wie wird die dauerhafte Standardauthentifizierung mit reinem Javascript festgelegt?
from functools import wraps
from flask import request, Response
def check_auth(username, password):
"""This function is called to check if a username/
password combination is valid.
"""
return username == 'admin' and password == 'secret'
def authenticate():
"""Sends a 401 response that enables basic auth"""
return Response(
'Could not verify your access level for that URL.\n'
'You have to login with proper credentials', 401,
{'WWW-Authenticate': 'Basic realm="Login Required"'})
def requires_auth(f):
@wraps(f)
def decorated(*args, **kwargs):
auth = request.authorization
if not auth or not check_auth(auth.username, auth.password):
return authenticate()
return f(*args, **kwargs)
return decorated
Quelle: http://flask.pocoo.org/snippets/8/
Es funktioniert gut, so weit wie Sicherheit betrifft. Aber das Problem ist, dass es mich nach einem Benutzernamen und einem Passwort fragt. Sobald ich den Benutzernamen und das Passwort eingegeben habe, ist die Autorisierung persistent. Also meine Frage ist:
1) Wie ist das die Autorisierung persistent? Ist die Basisautorisierung während der gesamten Browsersitzung im Anforderungsheader gespeichert? Ich kann sehen, dass ich, wenn ich ein Inkognito-Fenster öffne, es erneut nur einmal eingeben muss.
2) Um es benutzerfreundlicher zu machen, kann ich eine Anmeldeseite haben, die den oben genannten Job ausführt, d. H. Eine dauerhafte Basisautorisierung durch die Browsersitzung unter Verwendung von reinem Javscript mit einem Browser-Popup einrichten?