gpt4 book ai didi

python - 我应该在 Django Rest Framework 中使用 JWT 还是 Basic Token 身份验证?

转载 作者:IT老高 更新时间:2023-10-28 20:54:30 27 4
gpt4 key购买 nike

我即将使用 Django Rest Framework 在我的 API 中实现 token 身份验证。但我不确定是否应该使用基本 token 内置 DRF 或使用 JSON Web token (JWT) 标准(使用此包 djangorestframework-jwt)我发现的唯一引用资料是在 DRF 文档中:

Unlike the built-in TokenAuthentication scheme, JWT Authentication doesn't need to use a database to validate a token.

还有其他区别、优点或缺点需要考虑吗?

注意:该 API 将通过网站(使用 angularjs)和移动应用程序访问

最佳答案

无论平台如何,使用 JWT token 都有很多好处。 JWT token base64 将所有用户声明编码在其正文中,并且可以在客户端安全地解码为有状态对象。与为客户端应用程序提供零使用的替代不透明 token 相比,这是非常有益的。登录后,您会立即在客户端中获得原子数据,而无需额外往返 API 来轮询用户信息。

JWT token 是无状态的:无需在服务器端存储或跟踪它们,这在许多服务器上具有更高的水平可扩展性。它们是安全的,因为用于授予它们的私有(private)签名 key 存储在服务器端,任何带有它们的入站 API 调用都只需使用私有(private) key 进行验证,保证它们是由您的 Authorization API 颁发的。

JWT token 在 Angular、React 和任何其他客户端框架中都能很好地工作。因为它们是 JSON,您可以在客户端中对它们进行 base64 解码并将客户端 UI 元素直接绑定(bind)到您的声明 - 拥有管理员声明的人可以看到管理菜单,而没有该声明的用户永远不会知道如果正确实现,菜单存在。

除此之外,JWT token 的行为方式仍与任何不记名 token 相同:

  • 由授权 API 颁发
  • 由客户端存储在 cookie 或本地存储中
  • Authorization header 中传递给资源 API

总之,如果您实现 JWT token ,您将在客户端和服务器之间来回的 N+1 次往返次数减少,扩展工作量也将减少。

关于python - 我应该在 Django Rest Framework 中使用 JWT 还是 Basic Token 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29440014/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com