Я использую DRF, и я включил Session Authentication, чтобы я мог просматривать API-интерфейс, просматриваемый в моем браузере. В моем мобильном приложении я использую токен-аутентификацию. Мне просто интересно, как аутентификация сеанса отличается от аутентификации токена в этом контексте? Мне кажется, что они более или менее одинаковы, потому что с авторизацией на основе сеанса идентификатор сеанса вместо идентификатора токена хранится в файле cookie и используется таким же образом. Может ли кто-нибудь объяснить это лучше?
Завершение сеанса Django Rest vs Token Authentication
Ответ 1
Сессии и файлы cookie в основном предназначены для браузеров, где браузер позаботится о отправке файла cookie с каждым запросом на сервер. Это означает, что защита CSRF включена только для аутентификации сеанса. С другой стороны, аутентификация маркера, скорее всего, будет использоваться с не-браузерами, где он хранит токен аутентификации и отправляет его с каждым запросом в заголовке. Этот токен не обязательно получается путем обмена учетными данными для токена, аналогичного тому, что происходит при аутентификации сеанса. Может существовать прецедент, когда администратор генерирует эти токены и передает его другому системному клиенту, который будет вызывать ваш API, и, очевидно, у этого клиента нет необходимости вводить имя пользователя и пароль, чтобы обменять его на токен.