坦笑&&life 2023-05-08 17:14 采纳率: 18.2%
浏览 14

用户登陆以后,点其他的还要重新登录

django框架版本:2

问题:django 用户登陆以后,点其他的还要重新登录

用户模型:自己写的

  • 写回答

1条回答 默认 最新

  • 0xjade-Follow 2023-05-08 17:39
    关注

    这个问题可能有很多原因,以下是一些常见的原因和解决方法:

    1. 未正确设置SESSION_COOKIE_AGE

    如果SESSION_COOKIE_AGE未设置,那么会话 cookie 的默认生存期为2周,这意味着用户在2周内只要不清除浏览器缓存就可以一直保持登录状态,而超过2周后会话 cookie 就会过期,导致需要重新登录。你可以尝试在settings.py中设置SESSION_COOKIE_AGE,例如:

    SESSION_COOKIE_AGE = 60 * 60 * 24 * 7  # 7
    1. 未正确配置SESSION_ENGINE

    如果你使用了自定义的用户模型,那么可能需要配置SESSION_ENGINE以确保正确的会话管理。你可以在settings.py中设置SESSION_ENGINE,例如:

    SESSION_ENGINE = 'django.contrib.sessions.backends.db'
    

    这将把会话数据存储到数据库中,以便用户可以跨会话保持登录状态。

    1. 未正确使用@login_required装饰器

    @login_required是一个装饰器,用于保护视图函数只允许已认证用户访问。如果你没有正确使用@login_required,那么用户在访问需要登录才能访问的页面时将被重定向到登录页面。你可以在视图函数中添加@login_required装饰器,例如:

    from django.contrib.auth.decorators import login_required
    
    @login_required
    def my_view(request):
        # 只有已登录用户可以访问这个视图
        ...
    

    如果以上方法都无法解决你的问题,你可以尝试在代码中加入一些调试信息,例如打印用户的会话数据,以便更好地了解问题所在。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月8日

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c