一、认证扩展
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 importlogin_required
@app.route('/secret')
@login_requireddefsecret():return ('Only authenticated users are allowed!')
5、登录用户
6、渲染表单
7、登出用户
from flask.ext.login importlogout_user,login_required
@app.route('/logout')
@login_requireddeflogout():
logout_user()
flash('You hanve been logged out.')return redirect(url_for('main.index'))
8、用户注册
四、确认账户