Я использую flask-login для обработки аутентификации для своего приложения, которое представляет собой API, который ожидает заголовки базовой авторизации HTTP как часть каждого запроса (чтобы пользователь мог войти в систему и сделать запрос, не беспокоясь о сеансах, файлах cookie или необходимости делать вход и запрос отдельными шагами).
Мои запросы работают следующим образом:
POST /api/group/48
GET /login?next=%2Fapi%2Fgroup%2F48
GET /api/group/48
То есть запрос POST к /api/group/48
перехватывается и перенаправляется на конечную точку /login (как и ожидалось). То, что происходит в /login, не является интерактивным — оно берет заголовок Basic Authorization и регистрирует пользователя.
После завершения входа клиент перенаправляется обратно на /api/group/48
, но на этот раз в виде запроса GET, а не POST. И в этом приложении конечная точка /api/group/48
ожидает только данные POST, поэтому она умирает с ошибкой 405 (метод не разрешен).
Это ожидаемое поведение flask-login? Как я могу передать его через запрос POST в том виде, в котором он был отправлен изначально? (или, в качестве альтернативы, я должен использовать какую-то другую архитектуру, чтобы перенаправление на /login
, а затем обратно на /api/group/48
не происходило и данные POST не терялись?)
Я не включал код, так как не думаю, что это проблема, связанная с кодом. Но если выяснится, что я делаю что-то не так, я могу опубликовать пример кода.
Спасибо всем, кто может помочь.
GET
. - person Wayne Werner   schedule 13.07.2016