Как я могу аутентифицировать пользователя, принадлежащего к другой базе данных, в моем другом сервисе в django rest framework?
Я новичок в django и мне необходимо создать два микросервиса с отдельными базами данных;
Одна для хранения информации о пользователе, а другая для хранения информации о тодо/задачах. На данный момент я создал два отдельных проекта с двумя отдельными базами данных,
- Для аутентификации пользователя с помощью аутентификации simplejwt. (проект todo_auth с базой данных todo_auth) .
- Показать информацию о тодо/задаче, специфичную для данного пользователя. (проект todo с базой данных todo)
Simple JWT предоставляет verify
маршрут , которому можно передать токен, что подтвердит, что он был отправлен сервером и его срок действия не истек.
Из документации:
Вы также можете включить маршрут для Simple JWT's TokenVerifyView, если хотите позволить пользователям API проверять токены, подписанные HMAC, не имея доступа к вашему ключу подписи:
from rest_framework_simplejwt.views import TokenVerifyView urlpatterns = [ ... path('api/token/verify/', TokenVerifyView.as_view(), name='token_verify'), ... ]
Если вы хотите сделать какую-то другую логику, вы должны просто написать обычное представление, использовать предоставленный JWT auth, а другой передавать токен в запросе
requests.get(
"http://service/api/do-thing/",
headers={
"Authorization": self.request.headers["authorization"]
}
)
https://stackoverflow.com/a/73813647/10590820 Это будет работать. Вам нужно только использовать промежуточное ПО для проверки и подтверждения токена в другом сервисе. Или вы можете сделать API в вашем первом сервисе, чтобы идентифицировать токен соответствующим образом.