Как сохранить мой DJango REST API без состояния без файлов cookie и сессий при развертывании в лямбда-режиме с Cognito - PullRequest
0 голосов
/ 18 апреля 2019

Я развертываю API-интерфейсы REST django на AWS Lambda с помощью Zappa. для аутентификации я хотел бы использовать токены JWT между моим угловым веб-приложением, мобильным приложением и API-интерфейсами REST django. Как мне сохранить мои REST API django без состояния без каких-либо сеансов или файлов cookie?

1 Ответ

0 голосов
/ 17 июня 2019

Я не разработчик django, но аутентификация для приложения без сохранения состояния должна состоять из 2 частей.

  1. разработать новый API аутентификации, вернуть клиенту токен JWT при успешном входе в систему. Этот токен JWT может содержать профиль пользователя в своем теле (в кодировке base64) для показа вашего экрана. Этот токен генерируется с использованием секретного ключа, определенного в вашем бэкэнде Django (поэтому вам необходимо защитить этот секрет)

  2. каждый отдельный вызов из вашего приложения Angular требует передачи токена JWT в качестве заголовка авторизации. Бэкэнд Django должен проверить этот токен JWT, проверить заголовок и полезную нагрузку JWT, вернуть соответствующие данные для этого пользователя (путем извлечения профиля пользователя из тела JWT). Проверяя заголовок jwt, вы знаете, что токен генерируется вашим бэкэнд-приложением, а не другим. (используйте Spring Security Filter, если Java или NodeJS могут быть выполнены с помощью промежуточного программного обеспечения)

...