EngelsFransSpaans

Ad


OnWorks-favicon

flask-httpauth - Online in de cloud

Voer flask-httpauth uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdrachtflask-httpauth die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


flask-httpauth - Flask-HTTPAuth-documentatie

Kolf-HTTPAuth is een eenvoudige extensie die Basic- en Digest HTTP-authenticatie biedt
voor Flask-routes.

BASIC AUTHENTIFICATIE VOORBEELD


De volgende voorbeeldtoepassing gebruikt HTTP Basic-verificatie om de route te beveiligen '/':

uit kolf import Flask
van flask.ext.httpauth importeer HTTPBasicAuth

app = Kolf(__naam__)
auth = HTTPBasicAuth()

gebruikers = {
"Jan": "Hallo",
"susan": "doei"
}

@auth.get_wachtwoord
def get_pw(gebruikersnaam):
als gebruikersnaam in gebruikers:
return gebruikers.get(gebruikersnaam)
terug Geen

@app.route('/')
@auth.login_required
def-index():
retourneer "Hallo, %s!" % auth.gebruikersnaam()

als __name__ == '__main__':
app.run ()

De haal wachtwoord op callback moet het wachtwoord retourneren dat is gekoppeld aan de opgegeven gebruikersnaam
als betoog. Flask-HTTPAuth zal alleen toegang toestaan ​​als get_password(gebruikersnaam) == wachtwoord.

Als de wachtwoorden gehasht in de gebruikersdatabase worden opgeslagen, vindt er een extra callback plaats
nodig zijn:

@auth.hash_wachtwoord
def hash_pw(wachtwoord):
return md5(wachtwoord).hexdigest()

Wanneer de hash_wachtwoord terugbellen is toegestaan, toegang wordt verleend wanneer
get_password(gebruikersnaam) == hash_password(wachtwoord).

Als het hash-algoritme vereist dat de gebruikersnaam bekend is, kan het terugbellen twee keer duren
argumenten in plaats van één:

@auth.hash_wachtwoord
def hash_pw(gebruikersnaam, wachtwoord):
get_salt(gebruikersnaam)
return hash(wachtwoord, zout)

Voor de meeste mate van flexibiliteit is de haal wachtwoord op en hash_wachtwoord terugbellen kan
vervangen door verifieer_wachtwoord:

@auth.verify_password
def verificatie_pw(gebruikersnaam, wachtwoord):
return call_custom_verify_function (gebruikersnaam, wachtwoord)

VERTEREN AUTHENTIFICATIE VOORBEELD


Het volgende voorbeeld is vergelijkbaar met het vorige, maar HTTP Digest-authenticatie is dat wel
gebruikt:

uit kolf import Flask
van flask.ext.httpauth importeer HTTPDigestAuth

app = Kolf(__naam__)
app.config['SECRET_KEY'] = 'geheime sleutel hier'
auth = HTTPDigestAuth()

gebruikers = {
"Jan": "Hallo",
"susan": "doei"
}

@auth.get_wachtwoord
def get_pw(gebruikersnaam):
als gebruikersnaam in gebruikers:
return gebruikers.get(gebruikersnaam)
terug Geen

@app.route('/')
@auth.login_required
def-index():
retourneer "Hallo, %s!" % auth.gebruikersnaam()

als __name__ == '__main__':
app.run ()

Merk op dat omdat digest-authenticatie gegevens opslaat in Flask's Sessie bezwaar maken tegen
configuratie moet een GEHEIME SLEUTEL in te stellen.

API DOCUMENTATIE


klasse flask_httpauth.HTTPBasicAuth
Deze klasse die HTTP Basic-authenticatie voor Flask-routes afhandelt.

get_password(wachtwoord_terugbellen)
Deze callback-functie wordt door het raamwerk aangeroepen om de
wachtwoord voor een bepaalde gebruiker. Voorbeeld:

@auth.get_wachtwoord
def get_password(gebruikersnaam):
return db.get_user_password(gebruikersnaam)

hash_password(hash_password_callback)
Indien gedefinieerd, wordt deze callback-functie door het raamwerk aangeroepen om toe te passen
een aangepast hash-algoritme voor het door de klant opgegeven wachtwoord. Als dit
terugbellen is niet mogelijk, het wachtwoord wordt ongewijzigd gecontroleerd. Het terugbellen
kan een of twee argumenten aannemen. De versie met één argument ontvangt de
wachtwoord naar hash, terwijl de versie met twee argumenten de gebruikersnaam en
het wachtwoord in die volgorde. Voorbeeld van een callback met één argument:

@auth.hash_wachtwoord
def hash_password(wachtwoord):
return md5(wachtwoord).hexdigest()

Voorbeeld twee argument callback:

@auth.hash_wachtwoord
def hash_pw(gebruikersnaam, wachtwoord):
get_salt(gebruikersnaam)
return hash(wachtwoord, zout)

verifieer_wachtwoord(verifieer_wachtwoord_terugbel)
Indien gedefinieerd, wordt deze callback-functie door het raamwerk aangeroepen om te verifiëren
dat de door de klant opgegeven combinatie van gebruikersnaam en wachtwoord geldig is.
De callback-functie heeft twee argumenten nodig: de gebruikersnaam en het wachtwoord en
moet terugkeren Waar or Niet waar. Voorbeeld gebruik:

@auth.verify_password
def verificatie_wachtwoord(gebruikersnaam, wachtwoord):
gebruiker = Gebruiker.query.filter_by(gebruikersnaam).first()
indien geen gebruiker:
retourneer False
return passlib.hash.sha256_crypt.verify(wachtwoord, gebruiker.wachtwoord_hash)

Houd er rekening mee dat wanneer een verifieer_wachtwoord terugbellen is voorzien van de haal wachtwoord op en
hash_wachtwoord Terugbellen wordt niet gebruikt.

error_handler(error_callback)
Indien gedefinieerd, wordt deze callback-functie door het raamwerk aangeroepen wanneer deze wordt gebruikt
is nodig om een ​​authenticatiefout terug te sturen naar de client. De terugkeer
waarde van deze functie kan de hoofdtekst van het antwoord zijn als een tekenreeks of als zodanig
kan ook een antwoordobject zijn waarmee is gemaakt maak_antwoord. Als dit terugbellen
niet is opgegeven, wordt er een standaardfoutreactie gegenereerd. Voorbeeld:

@auth.error_handler
def auth_error():
return "<h1>Toegang geweigerd</h1>"

login_required(bekijk_functie_callback)
Deze callback-functie wordt aangeroepen wanneer de authenticatie succesvol is. Dit
zal doorgaans een Flask-weergavefunctie zijn. Voorbeeld:

@app.route('/privé')
@auth.login_required
def privé_pagina():
return "Alleen voor geautoriseerde personen!"

gebruikersnaam()
Een weergavefunctie die met deze klasse is beveiligd, heeft toegang tot de gelogde bestanden
gebruikersnaam via deze methode. Voorbeeld:

@app.route('/')
@auth.login_required
def-index():
retourneer "Hallo, %s!" % auth.gebruikersnaam()

klasse kolf.ext.httpauth.HTTPDigestAuth
Deze klasse die HTTP Digest-authenticatie voor Flask-routes afhandelt. De GEHEIME SLEUTEL
configuratie moet worden ingesteld in de Flask-applicatie om de sessie te laten werken.
Flask slaat standaard gebruikerssessies in de client op als beveiligde cookies, zodat de
Klant moet met cookies kunnen omgaan. Ter ondersteuning van clients die geen webbrowser zijn
of die niet overweg kan met cookies Sessie interface dat sessies schrijft in de
server moet worden gebruikt.

get_password(wachtwoord_terugbellen)
Zie basisauthenticatie voor documentatie en voorbeelden.

error_handler(error_callback)
Zie basisauthenticatie voor documentatie en voorbeelden.

login_required(bekijk_functie_callback)
Zie basisauthenticatie voor documentatie en voorbeelden.

gebruikersnaam()
Zie basisauthenticatie voor documentatie en voorbeelden.

Gebruik flask-httpauth online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

Linux-commando's

Ad