Ubuntu Online, Fedora Online, Windows online emulator เด เดฒเตเดฒเตเดเตเดเดฟเตฝ MAC OS เดเตบเดฒเตเตป เดเดฎเตเดฒเตเดฑเตเดฑเตผ เดเดจเตเดจเดฟเดเตเดเดจเตเดฏเตเดณเตเดณ เดเดเตเดเดณเตเดเต เดเดจเตเดจเดฟเดฒเดงเดฟเดเด เดธเตเดเดจเตเดฏ เดเตบเดฒเตเตป เดตเตผเดเตเดเตโเดธเตเดฑเตเดฑเตเดทเดจเตเดเดณเดฟเดฒเตเดจเตเดจเต เดเดชเดฏเตเดเดฟเดเตเดเต OnWorks เดธเตเดเดจเตเดฏ เดนเตเดธเตเดฑเตเดฑเดฟเดเดเต เดฆเดพเดคเดพเดตเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจ เดเดฎเดพเตปเดกเต เดซเตเดฒเดพเดธเตเดเต-httpauth เดเดฃเดฟเดคเต.
เดชเดเตเดเดฟเด:
NAME
flask-httpauth - Flask-HTTPAuth เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเตป
เดซเตเดฒเดพเดธเตเดเต-HTTPAuth เด เดเดฟเดธเตเดฅเดพเดจ, เดกเตเดเดธเตเดฑเตเดฑเต HTTP เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃเด เดจเตฝเดเตเดจเตเดจ เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดตเดฟเดชเตเดฒเตเดเดฐเดฃเดฎเดพเดฃเต
เดซเตเดฒเดพเดธเตเดเต เดฑเตเดเตเดเตเดเตพเดเตเดเดพเดฏเดฟ.
เดฌเตเดธเดฟเดเต เด เดเดเตเดเดพเดฐเด เดเดฆเดพเดนเดฐเดฃเด
เดฑเตเดเตเดเต เดชเดฐเดฟเดฐเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดฆเดพเดนเดฐเดฃ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป HTTP เด เดเดฟเดธเตเดฅเดพเดจ เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต '/':
เดซเตเดฒเดพเดธเตเดเต เดเดฑเดเตเดเตเดฎเดคเดฟ เดซเตเดฒเดพเดธเตเดเต เดจเดฟเดจเตเดจเต
flask.ext.httpauth-เตฝ เดจเดฟเดจเตเดจเต HTTPBasicAuth เดเดฑเดเตเดเตเดฎเดคเดฟ เดเตเดฏเตเดฏเตเด
เดเดชเตเดชเต = เดซเตเดฒเดพเดธเตเดเต(__เดชเตเดฐเต__)
auth = HTTPBasicAuth()
เดเดชเดฏเตเดเตเดคเดพเดเตเดเตพ = {
"เดเตเตบ": "เดนเดฒเต",
"เดธเตเดธเตป": "เดฌเต"
}
@auth.get_password
def get_pw(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด):
เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเดฟเตฝ เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด เดเดฃเตเดเตเดเตเดเดฟเตฝ:
เดฑเดฟเดเตเดเตเตบ users.get(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด)
เดเดจเตเดจเตเดฎเดฟเดฒเตเดฒ เดคเดฟเดฐเดฟเดเต
@app.route('/')
@auth.login_required
เดกเตเดซเต เดธเตเดเดฟเด():
เดคเดฟเดฐเดฟเดเต "เดนเดฒเต, %s!" % auth.username()
__name__ == '__main__' เดเดเตเดเดฟเตฝ:
app.run ()
เดฆเดฟ เดจเตเดเตเด_เดชเดพเดธเตโเดตเตเดกเต เดเตเตพเดฌเดพเดเตเดเต เดจเตฝเดเดฟเดฏเดฟเดเตเดเตเดณเตเดณ เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเดตเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเด เดชเดพเดธเตโเดตเตเดกเต เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเดฃเตเดเดคเตเดฃเตเดเต
เดตเดพเดฆเด เดชเตเดฒเต. เดเดเตเดเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต Flask-HTTPAuth เดเดเตโเดธเดธเต เด เดจเตเดตเดฆเดฟเดเตเดเต get_password(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด) == เดชเดพเดธเตเดตเตเดกเต.
เดเดชเดฏเตเดเตเดคเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเตฝ เดชเดพเดธเตโเดตเตเดกเตเดเตพ เดนเดพเดทเต เดเตเดฏเตโเดคเต เดธเดเดญเดฐเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดเดฐเต เด เดงเดฟเด เดเตเตพเดฌเดพเดเตเดเต เดเดฃเต
เดเดตเดถเตเดฏเดฎเตเดฃเตเดเต:
@auth.hash_password
def hash_pw(เดชเดพเดธเตโเดตเตเดกเต):
md5(เดชเดพเดธเตโเดตเตเดกเต) เดฎเดเดเตเดเตเด.hexdigest()
เดเดชเตเดชเตเดพเดดเดพเดฃเต เดนเดพเดทเต_เดชเดพเดธเตโเดตเตเดกเต เดเตเตพเดฌเดพเดเตเดเต เดจเตฝเดเตเดฎเตเดชเตเตพ เดเดเตเดธเดธเต เด เดจเตเดตเดฆเดฟเดเตเดเตเด
get_password(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด) == hash_password(เดชเดพเดธเตโเดตเตเดกเต).
เดนเดพเดทเดฟเดเดเต เด เตฝเดเตเดฐเดฟเดคเดคเตเดคเดฟเดจเต เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด เด เดฑเดฟเดฏเดฃเดฎเตเดเตเดเดฟเตฝ, เดเตเตพเดฌเดพเดเตเดเดฟเดจเต เดฐเดฃเตเดเตเดฃเตเดฃเด เดเดเตเดเตเดเดพเด
เดเดจเตเดจเดฟเดจเต เดชเดเดฐเด เดตเดพเดฆเดเตเดเตพ:
@auth.hash_password
def hash_pw(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด, เดชเดพเดธเตโเดตเตเดกเต):
get_salt(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด)
เดฑเดฟเดเตเดเตเตบ เดนเดพเดทเต (เดชเดพเดธเตโเดตเตเดกเต, เดเดชเตเดชเต)
เดเดฑเตเดฑเดตเตเด เดซเตเดฒเตเดเตเดธเดฟเดฌเดฟเดฒเดฟเดฑเตเดฑเดฟเดเตเดเต เดจเตเดเตเด_เดชเดพเดธเตโเดตเตเดกเต เดเดชเตเดชเด เดนเดพเดทเต_เดชเดพเดธเตโเดตเตเดกเต เดเตเตพเดฌเดพเดเตเดเต เดเดเดพเด
เดเดชเดฏเตเดเดฟเดเตเดเต เดฎเดพเดฑเตเดฑเดฟ verify_password:
@auth.verify_password
def verify_pw(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด, เดชเดพเดธเตโเดตเตเดกเต):
เดคเดฟเดฐเดฟเดเต call_custom_verify_function(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด, เดชเดพเดธเตโเดตเตเดกเต)
เดกเตเดเดธเตเดฑเตเดฑเต เด เดเดเตเดเดพเดฐเด เดเดฆเดพเดนเดฐเดฃเด
เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดฆเดพเดนเดฐเดฃเด เดฎเตเดฎเตเดชเดคเตเดคเตเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต, เดเดจเตเดจเดพเตฝ HTTP เดกเตเดเดธเตเดฑเตเดฑเต เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃเด
เดเดชเดฏเตเดเดฟเดเตเดเดต:
เดซเตเดฒเดพเดธเตเดเต เดเดฑเดเตเดเตเดฎเดคเดฟ เดซเตเดฒเดพเดธเตเดเต เดจเดฟเดจเตเดจเต
flask.ext.httpauth-เตฝ เดจเดฟเดจเตเดจเต HTTPDigestAuth เดเดฑเดเตเดเตเดฎเดคเดฟ เดเตเดฏเตเดฏเตเด
เดเดชเตเดชเต = เดซเตเดฒเดพเดธเตเดเต(__เดชเตเดฐเต__)
app.config['SECRET_KEY'] = 'เดฐเดนเดธเตเดฏ เดเต เดเดตเดฟเดเต'
auth = HTTPDigestAuth()
เดเดชเดฏเตเดเตเดคเดพเดเตเดเตพ = {
"เดเตเตบ": "เดนเดฒเต",
"เดธเตเดธเตป": "เดฌเต"
}
@auth.get_password
def get_pw(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด):
เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเดฟเตฝ เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด เดเดฃเตเดเตเดเตเดเดฟเตฝ:
เดฑเดฟเดเตเดเตเตบ users.get(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด)
เดเดจเตเดจเตเดฎเดฟเดฒเตเดฒ เดคเดฟเดฐเดฟเดเต
@app.route('/')
@auth.login_required
เดกเตเดซเต เดธเตเดเดฟเด():
เดคเดฟเดฐเดฟเดเต "เดนเดฒเต, %s!" % auth.username()
__name__ == '__main__' เดเดเตเดเดฟเตฝ:
app.run ()
เดกเตเดเดธเตเดฑเตเดฑเต เดเดงเดฟเดเดพเดฐเดฟเดเดค เดซเตเดฒเดพเดธเตเดเดฟเตฝ เดกเดพเดฑเตเดฑ เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด เดธเดฎเตเดฎเตเดณเดจเด เดเดฌเตเดเดเตเดฑเตเดฑเต เดฆเดฟ
เดเตเตบเดซเดฟเดเดฑเตเดทเดจเดฟเตฝ a เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด SECRET_KEY เดธเดเตเดเดฎเดพเดเตเดเตเด.
เดเดชเดฟเด เดชเตเดฐเดฎเดพเดฃเตเดเดฐเดฃเด
เดเตเดฒเดพเดธเต flask_httpauth.HTTPBasicAuth
เดซเตเดฒเดพเดธเตเดเต เดฑเตเดเตเดเตเดเตพเดเตเดเดพเดฏเดฟ HTTP เด เดเดฟเดธเตเดฅเดพเดจ เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃเด เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจ เด เดเตเดฒเดพเดธเต.
get_password(password_callback)
เด เดเตเตพเดฌเดพเดเตเดเต เดซเดเดเตโเดทเตป เดฒเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดเตเดเดเตเดเตเดเต เดตเดฟเดณเดฟเดเตเดเตเด
เดจเตฝเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดณเตเดณ เดชเดพเดธเตโเดตเตเดกเต. เดเดฆเดพเดนเดฐเดฃเด:
@auth.get_password
def get_password(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด):
db.get_user_password(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด) เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเด
hash_password(hash_password_callback)
เดจเดฟเตผเดตเดเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, เด เดเตเตพเดฌเดพเดเตเดเต เดซเดเดเตโเดทเตป เดชเตเดฐเดฏเตเดเดฟเดเตเดเดพเตป เดเดเตเดเดเตเดเตเดเต เดตเดฟเดณเดฟเดเตเดเตเด
เดเตเดฒเดฏเดจเตเดฑเต เดจเตฝเดเตเดจเตเดจ เดชเดพเดธเตโเดตเตเดกเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดเดทเตโเดเดพเดจเตเดธเตเดค เดนเดพเดทเดฟเดเดเต เด เตฝเดเตเดฐเดฟเดคเด. เดเดคเต เดเดเตเดเดฟเตฝ
เดเตเตพเดฌเดพเดเตเดเต เดจเตฝเดเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ, เดชเดพเดธเตโเดตเตเดกเต เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเด. เดคเดฟเดฐเดฟเดเตเดเตเดตเดฟเดณเดฟเดเตเดเตฝ
เดเดจเตเดจเต เดฐเดฃเตเดเต เดตเดพเดฆเดเตเดเตพ เดเดเตเดเตเดเดพเด. เดเดฐเต เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเต เดชเดคเดฟเดชเตเดชเดฟเดจเต เดฒเดญเดฟเดเตเดเตเดจเตเดจเดคเต
เดนเดพเดทเดฟเดฒเตเดเตเดเตเดณเตเดณ เดชเดพเดธเตโเดตเตเดกเต, เดฐเดฃเตเดเต เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเต เดชเดคเดฟเดชเตเดชเดฟเดจเต เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด เดฒเดญเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเดชเตเดชเด
เด เดเตเดฐเดฎเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเดพเดธเตโเดตเตเดกเต. เดธเดฟเดเดเดฟเตพ เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเต เดเตเตพเดฌเดพเดเตเดเต เดเดฆเดพเดนเดฐเดฃเด:
@auth.hash_password
def hash_password(password):
md5(เดชเดพเดธเตโเดตเตเดกเต) เดฎเดเดเตเดเตเด.hexdigest()
เดเดฆเดพเดนเดฐเดฃเด เดฐเดฃเตเดเต เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเต เดเตเตพเดฌเดพเดเตเดเต:
@auth.hash_password
def hash_pw(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด, เดชเดพเดธเตโเดตเตเดกเต):
get_salt(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด)
เดฑเดฟเดเตเดเตเตบ เดนเดพเดทเต (เดชเดพเดธเตโเดตเตเดกเต, เดเดชเตเดชเต)
verify_password(verify_password_callback)
เดจเดฟเตผเดตเดเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, เด เดเตเตพเดฌเดพเดเตเดเต เดซเดเดเตโเดทเตป เดธเตเดฅเดฟเดฐเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดเตเดเดเตเดเตเดเต เดตเดฟเดณเดฟเดเตเดเตเด
เดเตเดฒเดฏเดจเตเดฑเต เดจเตฝเดเตเดจเตเดจ เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเดตเตเด เดชเดพเดธเตโเดตเตเดกเต เดเตเดฎเตเดชเดฟเดจเตเดทเดจเตเด เดธเดพเดงเตเดตเดพเดฃเตเดจเตเดจเต.
เดเตเตพเดฌเดพเดเตเดเต เดซเดเดเตโเดทเตป เดฐเดฃเตเดเต เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเตพ เดเดเตเดเตเดเตเดจเตเดจเต, เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเดตเตเด เดชเดพเดธเตโเดตเตเดกเตเด เดเดชเตเดชเด
เดคเดฟเดฐเดฟเดเตเดเตเดตเดฐเดฃเด เดเตเดฐเต or เดคเตเดฑเตเดฑเดพเดฏ. เดเดฆเดพเดนเดฐเดฃ เดเดชเดฏเตเดเด:
@auth.verify_password
def verify_password(เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด, เดชเดพเดธเตโเดตเตเดกเต):
เดเดชเดฏเตเดเตเดคเดพเดตเต = User.query.filter_by(username).first()
เดเดชเดฏเตเดเตเดคเดพเดตเดฒเตเดฒเตเดเตเดเดฟเตฝ:
เดคเตเดฑเตเดฑเดพเดฏเดฟ เดฎเดเดเตเดเตเด
passlib.hash.sha256_crypt.verify(password, user.password_hash) เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเด
เดเดชเตเดชเตเตพ เดเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด verify_password เดเตเตพเดฌเดพเดเตเดเต เดจเตฝเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต เดจเตเดเตเด_เดชเดพเดธเตโเดตเตเดกเต เดเดชเตเดชเด
เดนเดพเดทเต_เดชเดพเดธเตโเดตเตเดกเต เดเตเตพเดฌเดพเดเตเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ.
error_handler(error_callback)
เดจเดฟเตผเดตเดเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, เด เดเตเตพเดฌเดพเดเตเดเต เดซเดเดเตโเดทเตป เด เดคเต เดซเตเดฐเตเดฏเดฟเดเดตเตผเดเตเดเต เดตเดดเดฟ เดตเดฟเดณเดฟเดเตเดเตเด
เดเตเดฒเดฏเดจเตเดฑเดฟเดฒเตเดเตเดเต เดเดฐเต เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃ เดชเดฟเดถเดเต เดคเดฟเดฐเดฟเดเต เด เดฏเดฏเตเดเตเดเตเดฃเตเดเดคเต เดเดตเดถเตเดฏเดฎเดพเดฃเต. เดคเดฟเดฐเดฟเดเตเดเตเดตเดฐเดตเต
เด เดซเดเดเตโเดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฎเตเดฒเตเดฏเด เดเดฐเต เดธเตเดเตเดฐเดฟเดเดเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เด เดคเต เดชเตเดฐเดคเดฟเดเดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต เดฌเตเดกเดฟ เดเดเดพเด
เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเดทเตโเดเดฟเดเตเด เดเดฐเต เดชเตเดฐเดคเดฟเดเดฐเดฃ เดเดฌเตโเดเดเตโเดฑเตเดฑเตเด เดเดเดพเด เดเดฃเตเดเดพเดเตเดเตเด_เดชเตเดฐเดคเดฟเดเดฐเดฃเด. เด เดคเดฟเดฐเดฟเดเตเดเตเดตเดฟเดณเดฟเดเตเดเดพเตฝ
เดจเตฝเดเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ เดเดฐเต เดกเดฟเดซเตเตพเดเตเดเต เดชเดฟเดถเดเต เดชเตเดฐเดคเดฟเดเดฐเดฃเด เดธเตเดทเตเดเดฟเดเตเดเต. เดเดฆเดพเดนเดฐเดฃเด:
@auth.error_handler
def auth_error():
"<h1>เดเดเตโเดธเดธเต เดจเดฟเดฐเดธเดฟเดเตเดเต</h1>" เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเด
login_required(view_function_callback)
เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃเด เดตเดฟเดเดฏเดเดฐเดฎเดพเดเตเดฎเตเดชเตเตพ เด เดเตเตพเดฌเดพเดเตเดเต เดซเดเดเตโเดทเดจเต เดตเดฟเดณเดฟเดเตเดเตเด. เด
เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดเดฐเต เดซเตเดฒเดพเดธเตเดเต เดตเตเดฏเต เดซเดเดเตโเดทเตป เดเดฏเดฟเดฐเดฟเดเตเดเตเด. เดเดฆเดพเดนเดฐเดฃเด:
@app.route('/private')
@auth.login_required
def private_page():
"เด เดเดเตเดเตเดค เดเดณเตเดเตพเดเตเดเต เดฎเดพเดคเตเดฐเด!"
เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด()
เด เดเตเดฒเดพเดธเต เดเดชเดฏเตเดเดฟเดเตเดเต เดชเดฐเดฟเดฐเดเตเดทเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดตเตเดฏเต เดซเดเดเตโเดทเดจเต เดฒเตเดเต เดเตเดฏเตโเดคเดคเต เดเดเตโเดธเดธเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด
เด เดฐเตเดคเดฟเดฏเดฟเดฒเตเดเต เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด. เดเดฆเดพเดนเดฐเดฃเด:
@app.route('/')
@auth.login_required
เดกเตเดซเต เดธเตเดเดฟเด():
เดคเดฟเดฐเดฟเดเต "เดนเดฒเต, %s!" % auth.username()
เดเตเดฒเดพเดธเต flask.ext.httpauth.HTTPDigestAuth
เดซเตเดฒเดพเดธเตเดเต เดฑเตเดเตเดเตเดเตพเดเตเดเดพเดฏเดฟ HTTP เดกเตเดเดธเตเดฑเตเดฑเต เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃเด เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจ เด เดเตเดฒเดพเดธเต. เดฆเดฟ SECRET_KEY
เดธเตเดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเดพเตป เดซเตเดฒเดพเดธเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดฟเตฝ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดธเดเตเดเดฎเดพเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเดฃเด.
เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดซเตเดฒเดพเดธเตเดเต เดเตเดฒเดฏเดจเตเดฑเดฟเดฒเตเดณเตเดณ เดเดชเดฏเตเดเตเดคเต เดธเตเดทเดจเตเดเดณเต เดธเตเดฐเดเตเดทเดฟเดค เดเตเดเตเดเดฟเดเดณเดพเดฏเดฟ เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเต, เด เดคเดฟเดจเดพเตฝ
เดเตเดฒเดฏเดจเตเดฑเดฟเดจเต เดเตเดเตเดเดฟเดเตพ เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเดฃเด. เดตเตเดฌเต เดฌเตเดฐเตเดธเดฑเตเดเตพ เด เดฒเตเดฒเดพเดคเตเดค เดเตเดฒเดฏเดจเตเดฑเตเดเดณเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเตเดเตเดจเตเดจเดคเดฟเดจเต
เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เด เดคเดฟเดจเต เดเตเดเตเดเดฟเดเตพ เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ a เดธเดฎเตเดฎเตเดณเดจเด เดเดจเตเดฑเตผเดซเตเดธเต เดเดจเตเดจเดคเดฟเตฝ เดธเตเดทเดจเตเดเตพ เดเดดเตเดคเตเดจเตเดจเต
เดธเตเตผเดตเตผ เดเดชเดฏเตเดเดฟเดเตเดเดฃเด.
get_password(password_callback)
เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเดจเตเด เดเดฆเดพเดนเดฐเดฃเดเตเดเตพเดเตเดเตเด เด เดเดฟเดธเตเดฅเดพเดจ เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃเด เดเดพเดฃเตเด.
error_handler(error_callback)
เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเดจเตเด เดเดฆเดพเดนเดฐเดฃเดเตเดเตพเดเตเดเตเด เด เดเดฟเดธเตเดฅเดพเดจ เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃเด เดเดพเดฃเตเด.
login_required(view_function_callback)
เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเดจเตเด เดเดฆเดพเดนเดฐเดฃเดเตเดเตพเดเตเดเตเด เด เดเดฟเดธเตเดฅเดพเดจ เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃเด เดเดพเดฃเตเด.
เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด()
เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเดจเตเด เดเดฆเดพเดนเดฐเดฃเดเตเดเตพเดเตเดเตเด เด เดเดฟเดธเตเดฅเดพเดจ เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃเด เดเดพเดฃเตเด.
onworks.net เดธเตเดตเดจเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดซเตเดฒเดพเดธเตเดเต-httpauth เดเตบเดฒเตเดจเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเด