Sergiy_Hanzhela
@Sergiy_Hanzhela
Начинающий разработчик!

Как бороться с шарингом аккаунта?

Добрый день!
Суть вопроса вот в чем каким образом в django можно бороться с с групповым аккаунтом, то-бишь не позволять находится в системе больше чем одному аккаунту(одиноковому), можеть есть какие приблуды?
  • Вопрос задан
  • 384 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Четвёртая ссылка в гугле:
from django.conf import settings
from django.core.cache import cache, get_cache
from django.utils.importlib import import_module

class UserRestrictMiddleware(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)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы