Python——Flash框架——用户认证
一、认证扩展
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、用户注册
四、确认账户