Функциональность выхода из системы в Django - PullRequest
0 голосов
/ 26 февраля 2010

Все

В проекте django, если открыты 2 окна шаблона и если выход из системы запущен в 1 окне, файлы cookie других окон не очищаются.

def logout(request):
    //request = redirect('webbie.home.views.loginpage')
    //request.delete_cookie('user_location')
    return auth_logout(request)

Спасибо ..

Ответы [ 2 ]

1 голос
/ 26 февраля 2010

В куки вы должны хранить только ключ сессии. Затем сервер должен отслеживать все ключи сеанса и связывать дату / время истечения срока действия и учетную запись пользователя с ними. Для каждого пользователя, который входит в систему, ему следует дать новый ключ сеанса, хотя вы можете разрешить несколько входов в систему / учетную запись пользователя. Поэтому, когда вы проверяете, является ли файл cookie действительным, вам нужно проконсультироваться с сервером базы данных и проверить, есть ли у вас этот ключ сеанса и является ли он действительным. Если теперь вы хотите «убить» все активные сеансы для учетной записи пользователя, когда один из них выходит из системы, вам просто нужно удалить все сеансовые ключи из списка сеансовых ключей вашего сервера.
Вы должны попытаться не хранить конфиденциальные данные в файлах cookie, достаточно ключа сеанса, а затем попросите сервер связать данные с этим ключом. Теперь у вас есть контроль над вошедшими пользователями.
Больше информации о сессиях Django в документации: http://docs.djangoproject.com/en/dev/topics/http/sessions/

0 голосов
/ 26 февраля 2010

Что именно вы имеете в виду? Вы имеете в виду, если у вас есть окна, открытые с того же веб-сайта, и вы выходите из системы в одном окне, вы не выходите из системы в другом окне? Я сомневаюсь в этом.

Конечно, вы не перенаправлены в другом окне на определенную страницу, потому что вы ничего не сделали в этом конкретном окне. Но если вы нажмете на ссылку, которая доступна только зарегистрированным пользователям, вы будете перенаправлены на страницу входа.

И нет, вы не можете обнаружить на стороне клиента, вышел ли пользователь с другого сайта, по крайней мере, без Ajax и некоторых пользовательских проверок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...