Django 微服务身份验证

eph*_*ral 4 django django-database microservices

我正在阅读有关 django 中的微服务的内容,并了解到在微服务中我们单独保留小型服务,并且它们可以单独运行。如果我对这个概念没有错误,我将如何使用来自一个数据库的用户的 JWT 令牌进行验证以在第二个微服务中使用该令牌??

tok*_*uch 7

在典型的 JWT 概念中,您有身份验证服务器(AC)和多个资源服务器(您的域 \xc2\xb5services ),流程如下所示:

\n
    \n
  • 客户端(又名clientA,例如前端)向 AC 发送 jwt 令牌请求(例如POST/authenticate
  • \n
  • clientA被认证为AC时返回 jwt 令牌
  • \n
  • clientA向 \xc2\xb5service (又名\xc2\xb5serviceA )上的某些资源发送请求,标头中带有 jwt 令牌(“ Authorization: Bearer ... ”)
  • \n
  • \xc2\xb5serviceA向AC发送请求发送请求以确认 token 有效,如果有效,\n\xc2\xb5serviceA 可以接受来自客户端的请求并处理它
  • \n
\n

您的客户A也可能是另一个 \xc2\xb5service。您的 \xc2\xb5serviceA 从 jwt 令牌(解码后)知道用户的角色,并且可以在角色不合适时阻止请求。

\n