gpt4 book ai didi

Django 如何防止多个用户使用相同的凭据登录

转载 作者:行者123 更新时间:2023-12-04 11:42:57 24 4
gpt4 key购买 nike

我正在使用 django auth 模块开发 Django 应用程序,并希望防止使用相同的用户名和密码进行多次登录。

它应该防止使用相同的用户名和密码在不同的机器上多次登录。我如何在 Django 中实现这一点?

我们必须牢记以下几点:

  • 如果用户关闭浏览器而不退出
  • 如果 session 超时
  • 最佳答案

    你可以试试这个,它会注销第一个用户并登录第二个用户。在您的应用程序目录中添加 middleware.py(与模型、 View 等相同的级别)并添加此代码。当同一个人使用多个设备时很有用。确保将其添加到中间件类中:'myapp.middleware.UserRestrict',

    class UserRestrict(object):
    def process_request(self, request):
    """
    Checks if different session exists for user and deletes it.
    """
    if request.user.is_authenticated():
    cache = get_cache('default')
    cache_timeout = 86400
    cache_key = "user_pk_%s_restrict" % request.user.pk
    cache_value = cache.get(cache_key)

    if cache_value is not None:
    if request.session.session_key != cache_value:
    engine = import_module(settings.SESSION_ENGINE)
    session = engine.SessionStore(session_key=cache_value)
    session.delete()
    cache.set(cache_key, request.session.session_key,
    cache_timeout)
    else:
    cache.set(cache_key, request.session.session_key, cache_timeout)

    关于Django 如何防止多个用户使用相同的凭据登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8408823/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com