Использование только SessionAuthentication с django-rest-auth

У меня есть небольшой вопрос.

Я делаю веб-сайт с помощью React, Redux и django rest framework. И я собираюсь реализовать аутентификацию с помощью django-rest-auth.

Когда пользователь входит в систему, django-rest-auth возвращает токен и идентификатор сеанса с заголовками. Я просто хочу использовать только идентификатор сеанса.

Пробовал с Postman, работает или нет. Во-первых, войдите в систему rest-auth/login с именем пользователя и паролем. У меня есть токен, я вижу sessionid и csrftoken внутри вкладок cookie. Затем, когда я попытался выйти из системы с заголовками, включающими значение X-CSRFToken: csrftoken, я смог успешно выйти из системы. Также я увидел, что значения «django_session» и «authtoken_token» исчезли в mysql.

Подходит ли этот рабочий процесс для аутентификации? Я имею в виду не использовать данный токен.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
880
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это зависит от того, что для вас в порядке. Вы можете использовать сеансовую аутентификацию, но имейте в виду, что аутентификация по токену включена (вы можете отключить ее в настройках).

Как я могу отключить токен авторизации и использовать только аутентификацию сеанса? Потому что django-rest-auth зависит от rest_framework.authtoken, верно? Нужно ли мне создавать собственный LoginView, который не возвращает токен?

user6277772 20.02.2019 09:35

@Mickey в настройках settings.py у вас должно быть что-то вроде этого REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( ) }. Вам нужно удалить TokenAuthentication. Также из INSTALLED_APPS удалить 'rest_framework.authtoken'

Headmaster 20.02.2019 09:42

@Mickey - И просто совет, основанный на моем опыте. Токены очень удобно использовать с React+DRF. Я не знаю, над каким проектом вы работаете, но я бы рекомендовал дважды подумать, прежде чем отключать токены

Headmaster 20.02.2019 09:45

Спасибо, я попробую это. По вашему мнению, если я использую токен для аутентификации, мне нужно хранить его в локальном хранилище, верно? Я хочу использовать cookie, потому что я хочу получить доступ к идентификатору сеанса до того, как реакция отобразит начальную страницу.

user6277772 20.02.2019 09:50

@Mickey - вы может сохраняете его в localStorage, это обычная практика. Вы также можете использовать файлы cookie, верно, но есть некоторые проблемы с безопасностью (я не очень знаком с этим). Также есть sessionStorage, но это почти то же самое, что и localStorage.

Headmaster 20.02.2019 09:58

В Где хранить токены - Auth0 рекомендуют не хранить токен в localStorage. Мы здесь говорим только о JWT, а не о токене? Известные веб-сайты, такие как Airbnb, Twitter или Kijiji, хранят токены в файлах cookie. Вот почему я решил использовать сеанс и файлы cookie. Но я начинающий, не могли бы вы сказать мне, какой выбор хорош для меня. Я делаю рубричные объявления, такие как гумтри, крейгслист. На моих веб-сайтах аутентифицированный пользователь будет использовать PayPal или Stripe для оплаты.

user6277772 20.02.2019 10:12

@Mickey — даже в этой статье говорят о проблемах как с localStorage (Локальное хранилище браузера (или хранилище сеансов) не является безопасным. Любые хранящиеся там данные могут быть уязвимы для межсайтовых сценариев.), так и с куками (Файлы cookie могут быть уязвимы для атак с подделкой межсайтовых запросов (CSRF или XSRF).). И я не совсем понимаю, как они предлагают хранить токены (Если у вас есть одностраничное приложение (SPA) без соответствующего внутреннего сервера, ваш SPA должен запрашивать новые токены при загрузке страницы) - каждый раз авторизовать пользователя?

Headmaster 20.02.2019 10:33

@Mickey - в любом случае, безопасность - очень большая тема для обсуждения здесь.

Headmaster 20.02.2019 10:34

Другие вопросы по теме