Как я могу аутентифицировать пользователя, принадлежащего к другой базе данных, в моем другом сервисе в django rest framework?

Я новичок в django и мне необходимо создать два микросервиса с отдельными базами данных;

Одна для хранения информации о пользователе, а другая для хранения информации о тодо/задачах. На данный момент я создал два отдельных проекта с двумя отдельными базами данных,

  1. Для аутентификации пользователя с помощью аутентификации simplejwt. (проект todo_auth с базой данных todo_auth)
  2. .
  3. Показать информацию о тодо/задаче, специфичную для данного пользователя. (проект 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 в вашем первом сервисе, чтобы идентифицировать токен соответствующим образом.

Вернуться на верх