django - Django 微服务认证
问题描述
我在 django 中阅读了有关微服务的信息,并在微服务中了解到我们将小型服务分开保存,它们可以单独运行。如果我对这个概念没有错,我将如何验证使用来自一个数据库的用户的 JWT 令牌以在第二个微服务中使用它??
解决方案
在典型的 JWT 概念中,您有身份验证服务器(AC)和多个资源服务器(您的域 µservices),流程如下所示:
- 客户端(又名clientA,例如前端)向 AC 发送请求以获取 jwt 令牌(例如使用用户名和密码POST到/authenticate )
- 当clientA被认证时, AC返回 jwt 令牌
- clientA使用标头中的 jwt 令牌向您的 µservice(又名µserviceA )上的某些资源发送请求(“授权:Bearer ... ”)
- µserviceA向AC发送请求以确认令牌有效,如果有效,则 µserviceA 可以接受来自您的客户端的请求并处理它
您的clientA也可能是另一个 µservice。您的 µserviceA 从 jwt 令牌(解码后)知道用户的角色,并且可以在角色不合适时简单地阻止请求。
推荐阅读
- xslt-2.0 - XSLT“匹配”功能:我可以将正则表达式与变量结合起来吗?
- qt - 网格中的图像不保留 QQuick3d qml 中的纵横比
- python - 使用权重手动计算的交叉熵损失
- c - linux c程序中发生Coredump(Redhat 8.3.1)
- c# - 调用任何异步 DbContext 操作后释放请求范围
- python - 在文本文件中查找每个关键字并用文件名记录
- google-sheets - Plx 错误:#INVALID_ARGUMENT BAD_QUERY:函数 EQUAL 中的参数类型不匹配:
- r - 删除特殊字符 R dplyr 之后的字符
- laravel - 从刀片中的数据库获取数据
- java - Flutter Doctor 发现两个我无法解决的错误