首页 > 解决方案 > JWT 优缺点

问题描述

在过去的几天里,我阅读了有关 JWT 的文章,我完全理解了它背后的概念和授权的力量,时间明智。我的问题是当 CRUD 端点到位时 JWT 授权机制会发生什么?假设我必须从向我发送请求的特定用户中删除某个“任务”,其中包含 JWT 令牌。我要做的就是去数据库,检查用户是否属于那个任务,然后从数据库中删除那个任务。这会导致 2 次数据库调用。我现在的问题是,当涉及到包含需要验证某些用户可以执行特定操作的 CRUD 操作的端点时,JWT 真的那么强大吗?此外,即使我们不必这样做,我们仍然有 1 个数据库调用,即 CRUD 操作。有人可以帮我解决这个问题吗?

标签: springdatabaserestwebjwt

解决方案


最常见的模型是让后端在用户进行身份验证时向前端发送 JWT 令牌。然后,此令牌包含在后续请求中,服务器可以使用它来验证请求是否确实来自登录用户。一旦验证了这一点,服务器就可以安全地调用数据库来执行更改或数据库操作。

您可能会考虑的一件事是使用 Zetabase ( https://zetabase.io ) 之类的解决方案。这会自动为您提供 JWT 令牌和所有身份验证机制,以及一个约束系统,允许您在不使用后端的情况下执行您在此处讨论的任务,您可以直接从前端。

换句话说,使用 Zetabase 甚至使用 Firebase,您可以完全跳过中间层。数据库本身管理用户名、密码和身份验证,然后您直接从前端调用数据库。这只适用,因为这两个数据库允许“约束”,确保只允许适当的用户执行某些操作。


推荐阅读