session是一个概念,一套方案,用于解决用户名和密码存储区你cookie中不安全的问题。
为什么不安全?因为如果有人拿到浏览器中的cookie,那么就可以伪造转账的请求。
Session的工作机制:浏览器传用户名和密码之后,session会将username加密生成一个,session_id,然后再返回到浏览器中。黑客不知道加密方式,所以授权信息更加安全。
加密的方式,可以用MD5
session,既可以存储到 MongoDB、Riedis、mysql、memcached,甚至 浏览器中cookie、iOS、Android中。
示例代码:
from flask import Flask,session,Session
import os
from datetime import timedelta
app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24)
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(hours=2)
@app.route('/')
def index():
session['username'] = 'zhiliao'
session['user_id'] = '123'
# permanent:持久化
session.permanent = True
print(type(session))
return 'Hello World!'
@app.route('/get_session/')
def get_session():
username = session.get('username')
user_id = session.get('user_id')
print(user_id)
return username or '没有session'
@app.route('/delete_session/')
def delete_session():
# session.pop('username')
session.clear()
return '删除成功'
if __name__ == '__main__':
app.run(debug=True)