我是 NestJS 的新手,我正在尝试创建一个基于 JWT 的身份验证系统。我想生成一个 JWT 令牌并在服务器端管理它。我在前端使用 Next.js,所以我想知道我是否可以使用 Next.js API 路由来保护我的 NestJS API 端点,同时处理 NestJS API 生成的 JWT 令牌。这种方法会不会过度设计?我的主要目的是从客户端隐藏 JWT/用户令牌。感谢任何帮助!🙏
我是 NestJS 的新手,我正在尝试创建一个基于 JWT 的身份验证系统。我想生成一个 JWT 令牌并在服务器端管理它。我在前端使用 Next.js,所以我想知道我是否可以使用 Next.js API 路由来保护我的 NestJS API 端点,同时处理 NestJS API 生成的 JWT 令牌。这种方法会不会过度设计?我的主要目的是从客户端隐藏 JWT/用户令牌。感谢任何帮助!🙏
我对 Next.js API 路由一无所知,但如果您只是追求一种高效/安全/最佳实践的方法,那么我猜您不需要担心将其隐藏在前端或类似的东西。
NestJS 后端具有大量内置支持,可用于保护您的端点。您可以定义不同类型的 AuthGuard,并将它们单独使用/应用于需要它们的任何端点(只需在每个控制器路由上方插入适当的装饰器),也可以将其设置为全局应用保护(以保护所有端点,在这种情况下,您无需每次都指定保护装饰器)。
我记得前段时间看过这个关于该主题的优秀教程视频(Vlad 有几个与 NestJS 中的 JWT 主题相关的视频): https://www.youtube.com/watch ?v=uAKzFhE3rxU&t=5086s
另外提醒一下:JWT 有效负载应该尽量少,并且绝不应该在其中保存真正敏感的信息。您还可以在前端使用 HttpOnly cookies,以更安全的方式存储令牌(JavaScript 无法访问它们)