Django сессий: правильный способ авторизации пользовательских данных с сервера? - PullRequest
0 голосов
/ 29 марта 2020

Мой API настроен с использованием SessionAuthentication. Когда пользователь входит в систему, я перенаправляю его на страницу своего профиля в React. Как только они будут перенаправлены на страницу своего профиля, я хочу сделать REST-вызов, чтобы получить данные своего профиля и вставить их в нужное место на странице. Я вижу несколько способов сделать это:

  1. Когда пользователь входит в систему, поместите его ID пользователя в объект Response (DRF), а затем сохраните его где-нибудь на клиенте (хранилище Redux, хранилище сеансов). или локальное хранилище). Затем, когда они будут перенаправлены на страницу входа в систему, выполните вызов REST для /users/users_id.
  2. С сеансами Django, в которых зарегистрированный пользователь автоматически привязывается к каждому запросу. Так мне даже нужно следить за отдыхом здесь? Я могу позвонить в / users и, если пользователь аутентифицирован, вернуть их данные.

Буду признателен за любую помощь в этом. Спасибо.

1 Ответ

1 голос
/ 30 марта 2020

С помощью SessionAuthentication после успешного входа в систему браузер автоматически сохраняет SessionId Cook ie для этого домена (или ip: port) автоматически. Отправив запрос, вы отправите этого повара ie из того же домена независимо от Django или React, и подтвердите подлинность пользователя, сделав ваш запрос.пользователем.

Вы можете проверить повара ie когда вы просматриваете страницу -> Приложение -> Файлы cookie -> Ваш домен -> sessionId

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

...