Вы можете использовать пакет ska
, в котором реализован вход в Django без пароля. ska
работает с токенами аутентификации, и его безопасность основана на SHARED_KEY, который должен быть одинаковым для всех участвующих сторон (серверов).
На стороне клиента (сторона, которая запрашивает логин без пароля), вы генерируете URL и подписываете его, используя ska
. Пример:
from ska import sign_url
from ska.contrib.django.ska.settings import SECRET_KEY
server_ska_login_url = 'https://server-url.com/ska/login/'
signed_url = sign_url(
auth_user='test_ska_user_0',
secret_key=SECRET_KEY,
url=server_ska_login_url
extra={
'email': 'john.doe@mail.example.com',
'first_name': 'John',
'last_name': 'Doe',
}
)
Срок действия токена по умолчанию составляет 600 секунд. Вы можете настроить это, доказав аргумент lifetime
.
На стороне сервера (сайт, на который входят пользователи), имея в виду, что вы правильно установили ska
, пользователь
регистрируется при посещении URL-адреса, если он существует (совпадение имени пользователя) или иным образом - создан. Есть 3 обратных вызова, которые вы можете настроить в настройках Django вашего проекта.
USER_GET_CALLBACK
(строка): срабатывает, если пользователь был успешно извлечен из базы данных (существующий пользователь).
USER_CREATE_CALLBACK
(строка): срабатывает сразу после создания пользователя (пользователь не существует).
USER_INFO_CALLBACK
(строка): срабатывает при успешной аутентификации.
См. Документацию (http://pythonhosted.org/ska/) для более.