Я хотел бы знать, какой метод http мне следует использовать при выполнении запроса на вход и почему? Поскольку этот запрос создает объект (сеанс пользователя) на сервере, я думаю, что это должен быть POST, как вы думаете? Но поскольку запрос на вход в систему должен быть идемпотентным, он может быть PUT, не так ли?
Тот же вопрос для запроса на выход, следует ли использовать метод DELETE?
источник
Я считаю, что вы можете перевести методы LOGIN & LOGOUT в базовые операции CRUD CREATE & DELETE. Поскольку вы создаете новый ресурс с именем SESSION и уничтожаете его при выходе из системы:
Я бы никогда не стал выполнять LOGOUT как GET только потому, что кто-то может совершить атаку, просто отправив электронное письмо с тегом IMG или ссылку на веб-сайт, где существует такой тег IMG. (
<img src="youtsite.com/logout" />
)PS Долгое время мне было интересно, как бы вы создали RESTful вход / выход, и оказалось, что это действительно просто, вы делаете это так же, как я описал: используйте / session / endpoint с методами CREATE и DELETE, и все в порядке. Вы также можете использовать UPDATE, если хотите так или иначе обновить сеанс ...
источник
Вот мое решение, основанное на руководствах и рекомендациях REST:
ВХОД - создать ресурс
Запрос:
Отклик:
ВЫХОД - удалить ресурс
Запрос:
Отклик:
источник
Что касается метода выхода из системы:
В документации Spring (Java Framework) они заявляют, что запрос POST является предпочтительным, поскольку GET делает вас уязвимыми для CSRF (подделка межсайтовых запросов), и пользователь может выйти из системы.
См. Https://docs.spring.io/spring-security/site/docs/current/reference/html/web-app-security.html#csrf-logout
Для входа в систему также следует использовать POST (тело может быть зашифровано, см. Другие ответы).
источник
Для запроса входа мы должны использовать метод POST. Потому что наши данные для входа в систему защищены, что требует защиты. При использовании метода POST данные отправляются на сервер в пакете. Но в методе GET данные отправляются на сервер, за которым следует URL-адрес, например добавление с запросом URL-адреса, который будет виден всем.
Итак, для безопасной аутентификации и авторизации мы должны использовать метод POST.
Надеюсь, это решение вам поможет.
Благодарность
источник
Для входа я использую POST, ниже мой код для метода LOGIN, который я использовал Nodejs с Express и Mongoose.
источник