Django ОТДЫХ: зачем использовать ЛОГИН, если вы можете АУТЕНТИФИЦИРОВАТЬ? - PullRequest
1 голос
/ 24 апреля 2020

Мне интересно, зачем использовать Логин, если у вас есть токен аутентификации?

Я имею в виду, что я использую Почтальон для проверки моих urls, serializers и views. Я могу войти в систему, и я должен использовать другой urls, чтобы получить мой access token и мой refresh token.

Login: POSThttp://localhost: 8000 / login /

{
    "username":"Max",
    "password":"Yolo1234"
}
-----
{
    "id": 2,
    "username": "Max",
    "is_a": true,
    "is_e": false
}

Token: POSThttp://localhost: 8000 / API / токен /

{
    "username":"Max",
    "password":"Yolo1234"
}
-----
{
    "refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTU4Nzc1OTQ5NCwianRpIjoiOWUzNjg1OTZhZWViNDRiNWE2Nzg3Y2E0ZDhkODQ5OWQiLCJ1c2VyX2lkIjoyfQ.W9a2fCxUF9Hrf51l-Ecx7nt2tmt2QvLhr4pp2DBUuvE",
    "access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNTg3NjgwMjk0LCJqdGkiOiIwNDI3MmJhMjljNmM0ODk3ODg4YTI5YTBkZjViZDljZCIsInVzZXJfaWQiOjJ9.0sid4rSbDUX3LHX7X74Cw1H9_lSlwD5ppfC3ctLGFSo"
}

И когда я пытаюсь для POST статьи, мне нужно пройти аутентификацию с помощью access token. Но когда я выхожу из системы, я все еще могу POST статью, используя мой access token, не входя в систему.

Так что мне трудно понять необходимость наличия двух в проекте.

Спасибо за ваши ответы!

1 Ответ

1 голос
/ 24 апреля 2020

Токены обычно являются предпочтительным способом аутентификации API, поскольку он описан в RF C, например, RF C 7235 .

Однако браузеры не могут работать с токены - они не очень ... удобны для людей.

Вместо этого сайты используют файлы cookie для хранения идентификаторов сеансов, и веб-сайты могут отмечать сеанс как аутентифицированный или нет. Аутентификация возможна через страницы входа / выхода, где веб-сайт может убедиться, что имя пользователя и пароль совпадают, а затем пометить сеанс этой информацией. Надеюсь, он не будет храниться на стороне клиента по очевидным причинам безопасности. Для этого DRF использует SessionAuthentication.

Это очень удобно, когда пользователь входит на веб-сайт и может использовать этот сеанс в API, не требуя дополнительных действий от пользователя.

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

...