[英]Flask session log out and redirect to login page
我正在为我的 web 应用程序使用 Flask,Python。 用户将登录,如果 session 时间超过 5 分钟,则应用程序应该会出来,它应该登陆登录页面。
我尝试了一些方法,我可以看到 session 超时正在发生,但重定向到登录页面没有发生。
@app.before_request
def before_request():
"Session time out method"
flask.session.permanent = True
app.permanent_session_lifetime = datetime.timedelta(minutes=2)
flask.session.modified = True
flask.g.user = flask_login.current_user
#return redirect(url_for('login'))
我已经使用 before_request 来查看超时。 我已经推荐了这个链接Flask 如果会话过期,如果没有活动并重定向登录页面,则注销,但我没有看到我之前尝试过的内容和这段代码有任何变化。 我可以在那里看到很多关于这个主题的 stackoverflow 问题,但我找不到解决方案。
我已经尝试过这个链接 als Expire session in flask in ajax context
但我不确定我应该通过什么作为 session 以及我应该在这里返回什么限定符?
@mod.before_request
def make_session_permanent():
if session_is_invalid(session):
return redirect(url_for('logout'))
def session_is_invalid(ses):
# return your qualifier
如果前面的方法是正确的,有人可以告诉我 session 是什么,我应该在这里返回什么限定符?
我需要的是在 session 注销之后页面应该自动登陆登录屏幕发生的事情是 session 正在注销,但它没有重定向到登录页面
有人可以帮我吗?
当我阅读Flask-Login
package 的文档时,我看到了一些东西。 创建Flask
应用程序时,您还需要创建登录管理器。
login_manager = LoginManager()
LoginManager
class 中的login_view
变量引起了我的注意。 详细信息包括以下说明:
用户需要登录时重定向到的视图名称。(如果您的身份验证机制在您的应用程序外部,这也可以是绝对的 URL。)
实际上,在您创建LoginManager
object 之后,
login_manager.login_view = 'your login view'
您应该指定您的登录页面。 最后,创建实际应用程序 object 后,您可以将其配置为登录:
login_manager.init_app(app)
完成这些操作后,对您使用@login_required
注释的每个方法的任何unauthorized
的调用都将发送到您使用login_view
指出的页面。
我还开发了一个简单的应用程序。 您可以从此处查看此应用程序。 我对其进行了测试并且没有任何问题。
我希望它对你有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.