首页 > 解决方案 > 为什么使用护照本地策略加上jwt策略

问题描述

您好我正在尝试构建一个 NestJS API,并想学习最佳实践来做到这一点。

所以我想知道为什么 Nest JS 的文档

https://docs.nestjs.com/security/authentication

passport-local是否提供了具有耦合和passport-jwt策略的身份验证示例?

难道不能只使用passport-jwt?

如果答案是肯定的,但这不是一个好习惯,您能否提供解释。

如果答案是肯定的并且这是最佳实践,您是否知道他们为什么在身份验证等如此重要的主题上没有使用最佳实践的示例?

标签: node.jspassport.jsnestjspassport-localpassport-jwt

解决方案


如果我记得文档,从我自己使用 Nest 进行身份验证开始,jwt 和本地策略是验证用户访问权限的两种方法,但可以互补使用。

本地策略允许您的服务器使用用户名和密码验证用户。因此它适用于登录端点,用户填写应用程序的登录表单。

使用这第一步,您可以使用 jwt 令牌 api 创建将识别用户的令牌。例如,您可以在 cookie 中设置此令牌,以便在用户发出其他请求时能够在您的服务器上访问它。

现在,jwt 策略将完美地通过检查用户的数据及其在令牌中的签名来验证用户。

因此,要回答您的问题,您当然可以只使用这两种策略中的一种,但您需要自己实施它们的功能。例如,本地策略很容易被解析器或控制器中的简单端点模仿,这些端点检查数据库中的用户信息(用户名和密码),如果成功则设置 cookie,如果失败则响应未经授权的

希望我说的有道理!


推荐阅读