проблема аутентификации пользователя в django - PullRequest
0 голосов
/ 02 сентября 2011

Я новичок в python и django. Я пытаюсь выполнить безопасную аутентификацию пользователя с использованием фреймворка django. Я создаю страницу login.html в [templates / user]. И если успешный вход пользователя приводит к user / ContactSuccess.html.

ContactSuccess.html:

<html>

---------{{request.user.username }}------------

{% if request.user.is_authenticated %}
  <p>Welcome, {{ user.username}}. Thanks for logging in.</p>
{% else %}
  <p>Welcome, new user. Please log in.</p>

{% endif %}
<body>success</body>
</html>

views.py

............

def testlogsuccess(request):<br/>
    if  not request.user.is_authenticated():
        return HttpResponseRedirect("/accounts/login/")        
    else:
        user = request.user.is_authenticated()
        return  render_to_response('user/ContactSuccess.html',locals()) 

..............

urls.py:

urlpatterns = patterns('',
    (r'^admin/', include(admin.site.urls)),
    (r'^accounts/login/$',login),
    (r'^accounts/logout/$', logout),
    (r'^accounts/profile/$', views.testlogsuccess),

хорошо работает нормально.

вывод:

---------Ji------------

Welcome, . Thanks for logging in.
success .

но моя проблема заключается в том, что когда я останавливаю свой сервер devlopment и затем запускаю его снова, а затем пытаюсь ввести URL 'http://127.0.0.1:8000/accounts/profile/' без входа в систему, он все равно показывает приведенный выше вывод.Как мне этого избежать.

Я использую django 1.3, python 2.7.2 и windows7.

1 Ответ

2 голосов
/ 02 сентября 2011

Проблема в том, что значения, которые определяют, был ли пользователь аутентифицирован, определяются браузером - HTTP-аутентификация сохраняет имя пользователя и пароль в памяти, а затем более или менее добавляет их к каждому запросу.Чтобы прекратить работу входа в систему, необходимо указать браузеру прекратить работу.

По этой теме имеется много соответствующей информации здесь .

Посколькуоднако это среда тестирования, и поскольку заголовки аутентификации более или менее сбрасываются при каждой перезагрузке браузера, я рекомендую просто закрыть браузер и снова открыть его ... это будет проще всего.

...