首页 > 解决方案 > Django 微服务认证

问题描述

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

标签: djangomicroservicesdjango-database

解决方案


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

  • 客户端(又名clientA,例如前端)向 AC 发送请求以获取 jwt 令牌(例如使用用户名和密码POST/authenticate )
  • clientA被认证时, AC返回 jwt 令牌
  • clientA使用标头中的 jwt 令牌向您的 µservice(又名µserviceA )上的某些资源发送请求(“授权:Bearer ... ”)
  • µserviceA向AC发送请求以确认令牌有效,如果有效,则 µserviceA 可以接受来自您的客户端的请求并处理它

您的clientA也可能是另一个 µservice。您的 µserviceA 从 jwt 令牌(解码后)知道用户的角色,并且可以在角色不合适时简单地阻止请求。


推荐阅读