设置session过期时间超简单,轻松搞定网站用户登录状态
python
from flask import Flask, session, g
from datetime import timedelta
app = Flask(__name__)
设置session过期时间为30分钟
app.secret_key = 'your_secret_key'
g.permanent_session_lifetime = timedelta(minutes=30)
@app.route('/login')
def login():
这里可以添加登录逻辑,例如验证用户名和密码
if not is_logged_in():
return redirect(url_for('login'))
return render_template('index.html')
@app.route('/logout')
@app.route('/logout/', methods=['GET'])
def logout(reason):
清除session中的用户信息
session.pop('user_id', None)
清除session中的其他信息(如果有的话)
session.pop('other_info', None)
重定向到登录页面
return redirect(url_for('login'))
@app.route('/')
def index():
检查是否有用户登录
if not is_logged_in():
return redirect(url_for('login'))
return render_template('index.html')
if __name__ == '__main__':
app.run()
在这个示例中,我们使用了Flask框架来创建一个简单的Web应用程序。我们设置了全局变量`g.permanent_session_lifetime`,它表示会话的过期时间。在这个例子中,会话的过期时间设置为30分钟。
我们还定义了两个路由函数`login`和`logout`,分别用于处理登录和注销操作。在`login`函数中,我们检查用户是否已经登录,如果没有,则重定向到登录页面。在`logout`函数中,我们清除会话中的用户信息,并重定向到登录页面。
我们定义了一个主函数`if __name__ == '__main__':`,用于启动应用程序。
请注意,这只是一个简单的示例,实际项目中可能需要更复杂的逻辑来处理用户登录、注销和其他相关操作。为了安全起见,建议不要将会话密钥硬编码在代码中,而是将其存储在环境变量或配置文件中。