一、認證擴展
1、Flask-Login:管理已登錄用戶的用戶會話
2、Werkzeug:計算幾碼散列值並進行核對
3、itsdangerous:生成並核對加密安全令牌
二、Werkzeug
generate_password_hash(password,method=pbkdg2:sha1,salt_legth=8):這個函數將原始密碼作為輸入,以字符串形式輸出密碼的散列值,輸出的值可保持在用戶數據庫中。method=pbkdg2:sha1,salt_legth=8的默認值九能滿足大多數要求
check_password_hash(hash,pawword):這個函數的參數是從數據庫中取回密碼散列值和用戶輸入密碼,返回值為True說明密碼正確
三、Flask-Login
1、實現的用戶方法
| 方法 | 說明 |
| is_authenticated() | 如果用戶已經登錄,必須返回True,否則返回False |
| is_active() | 如果允許用戶登錄,必須返回True |
| is_anonymous() | 對於普通用戶必須返回False |
| get_id() | 必須返回用戶的唯一表示,使用Unicode編碼字符串 |
2、模型類實現
3、在程序的工廠函數初始化
4、login_required修飾器的保護路由:未認證的用戶訪問這個路由,攔截請求.
from flask.ext.login import login_required @app.route('/secret') @login_required def secret(): return ('Only authenticated users are allowed!')
5、登錄用戶
6、渲染表單
7、登出用戶
from flask.ext.login import logout_user,login_required @app.route('/logout') @login_required def logout(): logout_user() flash('You hanve been logged out.') return redirect(url_for('main.index'))
8、用戶注冊
四、確認賬戶
