Вход в Django с использованием пользовательского бэкэнда - PullRequest
0 голосов
/ 09 ноября 2011

Я работаю в системе аутентификации на основе магазина, используя Django, я пытаюсь сделать так, чтобы URL-адрес определял, в какое хранилище пытается войти пользователь. Например

login/store-name

затем войдите в систему в запрошенном магазине.Мой вопрос заключается в том, есть ли способ сделать это, используя встроенную в django форму / механизм входа в систему, или мне нужно было бы создать свою собственную форму входа и представление.

Ответы [ 3 ]

1 голос
/ 09 ноября 2011

Если вам нужны отдельные входы в систему для каждого магазина, вам необходимо настроить форму входа в систему, поскольку пакет аутентификации django создаст пользователей, универсальных для всех ваших магазинов.

1 голос
/ 09 ноября 2011

На мой взгляд, вы должны создать свою собственную форму и вид входа :

from django.contrib.auth import authenticate, login

def my_view(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)
    if user is not None:
        if user.is_active  *** and user can login in this store ***:
            login(request, user)
            # Redirect to a success page.
        else:
            # Return a 'disabled account' error message
    else:
        # Return an 'invalid login' error message.

"и пользователь может войти в этот магазин": получить путь из запроса и проверить его.

1 голос
/ 09 ноября 2011

Я думаю, вы могли бы сделать это только в urls.py

urlpatterns = patterns('',
    url(r'^login/store-name-1/$', login, name="login"),
    url(r'^login/store-name-2/$', login, name="login"),
    url(r'^accounts/logout/$', logout, {'next_page': '/',}, name='logout')
)

Мне не совсем понятно, чем ты хочешь заняться?

...