设置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__':`,用于启动应用程序。

请注意,这只是一个简单的示例,实际项目中可能需要更复杂的逻辑来处理用户登录、注销和其他相关操作。为了安全起见,建议不要将会话密钥硬编码在代码中,而是将其存储在环境变量或配置文件中。