问题标签 [passport-jwt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
passport.js - PassportJS、NestJS:AuthGuard('jwt') 的 canActivate 方法
有人知道我在哪里可以看到 AuthGuard('jwt') 中的 canActivate 方法的完整代码吗?我意识到 canActivate 方法通过使用 console.log() 调用 JwtStrategy validate 方法,如下所示:
如果我使用原始的 canActivate 方法,则会调用 console.log。我认为 JwtStrategy 是一个中间件,所以只要有请求就会调用 validate 方法。但是,当我尝试覆盖 canActivate 方法以添加授权时,不会调用 JwtStrategy validate 方法中的 console.log:
然后我试图找到 AuthGuard('jwt') 的原始代码以了解其逻辑,但我无法做到。任何帮助将不胜感激,谢谢!
javascript - 用护照注册后,我无法设置 Authorization Bearer 标头
我试图将不记名令牌保存在 req.header["Authorization"]
我将令牌添加到 req.header [“Authorization”],但是当 res 重定向到秘密获取路由时,它显示“未授权”,但是当我尝试使用邮递员通过授权承载标头手动发送令牌时,它可以工作
我使用了 passport-jwt 策略和提取方法。对于提取,我使用了 fromAuthHeaderAsBearerToken()。我的问题是我们是否可以在 req obj 上附加新的标题?
nestjs - 使用 nestJS 注销 JWT
我正在使用 JWT passaport 登录模块:
这部分正在运行。我的问题是:如何注销?我阅读了有关创建黑名单并将令牌添加到其中的信息,但是如何获取用户的访问令牌?
express - 在使用 passport-jwt 进行身份验证后对模型属性未定义的 Express.js 控制器进行续集
我正在使用passport-jwt来验证对express.js中给定路由的访问,然后将 Sequelize 模型返回给最终控制器。代码如下所示:
授权策略:
带有 auth 中间件的路由
控制器功能
如果我console.log(authenticatedUser)
在getPatientPsy()控制器中成功打印 Sequelize 模型及其dataValues等等,但是当我尝试访问任何属性时,无论是userType还是任何其他属性,它都会始终返回undefined。
在passport-jwt身份验证中,一旦找到与提取的JWT令牌匹配的用户,afaik就会同步返回并使其在req.user对象中可用,我可以使用console.log打印它,但为什么不能我访问模型的属性?
我试图让getPatientPsy()控制器成为同步功能,但它也不起作用。
谢谢你。
authentication - Passport 策略如何知道在 nestJS 中选择正确的 jwt 策略?
我正在关注此https://www.codemag.com/Article/2001081/Nest.js-Step-by-Step-Part-3-Users-and-Authentication在nestJS中使用护照实现jwt,一切都按预期工作,但是我对这种方法有一个澄清,如果我们使用 UseGuards(@AuthGurads()),应用程序知道使用 passportstrategy 来验证令牌并调用 validate 方法以进一步进行,但是为什么护照策略知道正确的 jwt 策略选择用于调用 validate 方法的类,没有明确提到我们要求护照策略使用 jwtStrategy 类并且它不是默认导出,但是在验证令牌后,passportstrategy 如何调用正确的 JwtStrategy 类进行验证方法?
node.js - NestJS JWT 策略认证。有效载荷对所有用户使用相同的安全密钥进行签名
作为 NestJS 使用 Passport JWT 进行身份验证的文档,流程如下:
- 客户端使用用户名/密码登录
- 如果用户名/密码有效,JWT 签署有效负载(使用预配置的安全密钥)以创建访问令牌并将此访问令牌返回给客户端
- 客户端使用访问令牌请求受保护的资源
因此,如果签署有效负载的安全密钥被黑客入侵,则可以为所有用户生成访问令牌,而无需使用密码。
我的上述理解是否正确?什么是更安全的建议?谢谢你。
node.js - 错误('需要数据和盐参数')
嗨所以我已经用邮递员测试了我的注册部分,一切都很好,我的密码被散列但是当我尝试前端(我使用 vuejs)时,它向我显示错误“需要数据和盐参数”。我不知道是什么错了我哪里错了?这是我的代码。
我的模型.js
你能帮我找出问题所在吗?它是 bcrypt 的,它与邮递员完美配合,但是一旦我尝试我的应用程序,这个错误就会显示
node.js - 我正在使用 node express 和 passport-jwt 创建一个简单的路由来使用 json web token 进行身份验证
我使用 json web 令牌获得了电子邮件和密码的令牌,但是当我输入这个 http://localhost:3001/users/profile url 作为发布请求并在邮递员工具中将令牌作为 Authorizaton 标头传递时,我总是未经授权。
我的 app.js 文件是,
我的 passport-jwt.js 文件是,
我的 routes.js 文件是,
我的 model.js 文件是,
我的 database.js 文件是,
**请帮我解决这个问题,