Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen flask-httpauth komutudur.
Program:
ADI
flask-httpauth - Flask-HTTPAuth Belgeleri
Flask-HTTPAuth Temel ve Özet HTTP kimlik doğrulaması sağlayan basit bir uzantıdır
Flask yolları için.
KLASİK KİMLİK DOĞRULAMA ÖRNEK
Aşağıdaki örnek uygulama, rotayı korumak için HTTP Temel kimlik doğrulamasını kullanır '/':
şişeden ithalat şişesi
flask.ext.httpauth'dan HTTPBasicAuth'u içe aktarın
app = Flask (__ name__)
yetki = HTTPBasicAuth()
kullanıcılar = {
"john": "merhaba",
"susan": "güle güle"
}
@auth.get_password
def get_pw(kullanıcı adı):
kullanıcılarda kullanıcı adı varsa:
user.get(kullanıcı adı) döndür
dönüş Yok
@app.route('/')
@auth.login_gerekli
tanım indeksi():
dön "Merhaba, %s!" % yetki.kullanıcıadı()
__name__ == '__main__' ise:
app.run ()
The get_password geri aramanın verilen kullanıcı adıyla ilişkili şifreyi döndürmesi gerekiyor
argüman olarak. Flask-HTTPAuth, yalnızca şu durumlarda erişime izin verir: get_password(kullanıcı adı) == şifre.
Parolalar, kullanıcı veritabanında karma olarak depolanıyorsa, ek bir geri arama yapılır.
gerekli:
@auth.hash_password
def hash_pw(şifre):
md5(parola).hexdigest() döndür
Zaman hash_password geri arama sağlanırsa erişim izni verilir
get_password(kullanıcı adı) == hash_password(parola).
Karma algoritma, kullanıcı adının bilinmesini gerektiriyorsa, geri arama iki
bir yerine argümanlar:
@auth.hash_password
def hash_pw(kullanıcı adı, şifre):
get_salt(kullanıcı adı)
dönüş hash(şifre, tuz)
En fazla esneklik derecesi için get_password ve hash_password geri aramalar olabilir
ile değiştirildi doğrulama_parolası:
@auth.verify_password
def doğrulama_pw(kullanıcı adı, şifre):
call_custom_verify_function (kullanıcı adı, parola) döndür
SİNDİRMEK KİMLİK DOĞRULAMA ÖRNEK
Aşağıdaki örnek öncekine benzer, ancak HTTP Özeti kimlik doğrulaması
kullandı:
şişeden ithalat şişesi
flask.ext.httpauth'dan HTTPDigestAuth'u içe aktarın
app = Flask (__ name__)
app.config['SECRET_KEY'] = 'buraya gizli anahtar'
yetki = HTTPDigestAuth()
kullanıcılar = {
"john": "merhaba",
"susan": "güle güle"
}
@auth.get_password
def get_pw(kullanıcı adı):
kullanıcılarda kullanıcı adı varsa:
user.get(kullanıcı adı) döndür
dönüş Yok
@app.route('/')
@auth.login_gerekli
tanım indeksi():
dön "Merhaba, %s!" % yetki.kullanıcıadı()
__name__ == '__main__' ise:
app.run ()
Özet kimlik doğrulamasının verileri Flask'ta sakladığını unutmayın. Oturum itiraz etmek
yapılandırmaya sahip olmalıdır GİZLİ ANAHTAR ayarlayın.
API DOKÜMANTASYON
sınıf flask_httpauth.HTTPBasicAuth
Flask yolları için HTTP Temel kimlik doğrulamasını işleyen bu sınıf.
get_password(password_callback)
Bu geri arama işlevi, çerçeve tarafından aşağıdakileri elde etmek için çağrılır:
belirli bir kullanıcı için şifre. Örnek:
@auth.get_password
def get_password(kullanıcı adı):
db.get_user_password(kullanıcı adı) döndür
hash_password(hash_password_callback)
Tanımlanmışsa, bu geri arama işlevi, uygulanacak çerçeve tarafından çağrılır.
istemci tarafından sağlanan parolaya özel bir karma algoritması. Eğer bu
geri arama sağlanmazsa şifre değiştirilmeden kontrol edilir. geri arama
bir veya iki argüman alabilir. Tek bağımsız değişken sürümü,
hash parolası, iki argüman versiyonu kullanıcı adını alırken ve
şifre bu sırayla. Örnek tek argüman geri çağrısı:
@auth.hash_password
def hash_password(parola):
md5(parola).hexdigest() döndür
Örnek iki argüman geri çağrısı:
@auth.hash_password
def hash_pw(kullanıcı adı, şifre):
get_salt(kullanıcı adı)
dönüş hash(şifre, tuz)
doğrulama_parola(verify_password_callback)
Tanımlanmışsa, bu geri çağırma işlevi, doğrulamak için çerçeve tarafından çağrılır.
müşteri tarafından sağlanan kullanıcı adı ve şifre kombinasyonunun geçerli olduğunu.
Geri arama işlevi, kullanıcı adı ve parola olmak üzere iki bağımsız değişken alır ve
Geri dönmelidir Gerçek or Yanlış. Örnek kullanım:
@auth.verify_password
def doğrulama_parola(kullanıcı adı, parola):
kullanıcı = User.query.filter_by(kullanıcı adı).first()
kullanıcı değilse:
False döndür
dönüş passlib.hash.sha256_crypt.verify(parola, user.password_hash)
Unutmayın ki bir doğrulama_parolası geri arama sağlanır get_password ve
hash_password geri aramalar kullanılmaz.
error_handler(error_callback)
Tanımlanmışsa, bu geri çağırma işlevi, çerçeve tarafından çağrıldığında
istemciye bir kimlik doğrulama hatası göndermek için gereklidir. Geri dönüş
Bu işlevden gelen değer, bir dize olarak yanıtın gövdesi olabilir veya
ile oluşturulan bir yanıt nesnesi de olabilir make_response. Bu geri arama ise
sağlanmaz, varsayılan bir hata yanıtı oluşturulur. Örnek:
@auth.error_handler
tanım auth_error():
"<h1>Erişim Engellendi</h1>" döndür
giriş_required(view_function_callback)
Kimlik doğrulama başarılı olduğunda bu geri arama işlevi çağrılır. Bu
tipik olarak bir Flask görünüm işlevi olacaktır. Örnek:
@app.route('/özel')
@auth.login_gerekli
def özel_sayfa():
return "Yalnızca yetkili kişiler için!"
Kullanıcı adı()
Bu sınıfla korunan bir görünüm işlevi, günlüğe kaydedilenlere erişebilir.
Bu yöntemle kullanıcı adı. Örnek:
@app.route('/')
@auth.login_gerekli
tanım indeksi():
dön "Merhaba, %s!" % yetki.kullanıcıadı()
sınıf flask.ext.httpauth.HTTPDigestAuth
Flask yolları için HTTP Özeti kimlik doğrulamasını işleyen bu sınıf. NS GİZLİ ANAHTAR
Oturumun çalışabilmesi için Flask uygulamasında yapılandırma ayarlanmalıdır.
Flask varsayılan olarak kullanıcı oturumlarını istemcide güvenli tanımlama bilgileri olarak saklar, bu nedenle
istemci çerezleri işleyebilmelidir. Web tarayıcısı olmayan istemcileri desteklemek için
veya çerezleri işleyemeyen bir Oturum arayüzey oturumları yazan
sunucu kullanılmalıdır.
get_password(password_callback)
Belgeler ve örnekler için temel kimlik doğrulamaya bakın.
error_handler(error_callback)
Belgeler ve örnekler için temel kimlik doğrulamaya bakın.
giriş_required(view_function_callback)
Belgeler ve örnekler için temel kimlik doğrulamaya bakın.
Kullanıcı adı()
Belgeler ve örnekler için temel kimlik doğrulamaya bakın.
onworks.net hizmetlerini kullanarak flask-httpauth'u çevrimiçi kullanın