- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些 key ID 可用于验证 token ,但它是硬编码的,我不希望它是这样。我正在使用 jwks-rsa 库从 API 端点获取 key 并打开 token 以进行验证,但是获取是在 jwks-rsa 客户端对象的选项属性中完成的,因此我不确定如何去关于将获取的“ child ”值存储在变量中。这很难解释,所以我将展示一些代码。
'use strict'
require('dotenv').config()
const jwt = require('jsonwebtoken')
const jwks = require('jwks-rsa')
const TOKEN_SECRET = 'someweirdtokenstring'
function (request, response, next) {
const client = jwks({
jwksUri: process.env.TOKEN_KEY_PUBLIC //this is the API endpoint; responds with a json key
})
const kid = 'something' //I don't want to hardcode this
client.getSigningKey(kid, (error, key) => {
if (error) throw error
const signingKey = key.publicKey || key.rsaPublicKey
const token = TOKEN_SECRET
if (!token) return response.status(401).send('Access denied')
try {
const verified = jwt.verify(token, signingKey, { algorithms: ['RS256'] })
request.user = verified
next()
} catch (error) {
response.status(400).send({ message: error.message, stack: error.stack })
}
})
}
编辑:这不是 super 干净的代码,但这不是重点。
最佳答案
IMO,您应该在其 header 中创建带有 kid 的 JWT。并仅解码以读取 header 。
这是一个小片段,
'use strict'
require('dotenv').config()
const jwt = require('jsonwebtoken')
const jwks = require('jwks-rsa')
const TOKEN_SECRET = 'someweirdtokenstring'
function (request, response, next) {
const client = jwks({
jwksUri: process.env.TOKEN_KEY_PUBLIC //this is the API endpoint; responds with a json key
})
var decoded = jwt.decode(token, {complete: true});
const kid = decoded.kid
client.getSigningKey(kid, (error, key) => {
if (error) throw error
const signingKey = key.publicKey || key.rsaPublicKey
const token = TOKEN_SECRET
if (!token) return response.status(401).send('Access denied')
try {
const verified = jwt.verify(token, signingKey, { algorithms: ['RS256'] })
request.user = verified
next()
} catch (error) {
response.status(400).send({ message: error.message, stack: error.stack })
}
})
}
关于node.js - 如何使用 jwks-rsa 库获取 token 的 key child ( key ID),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56958374/
首先,我使用'DefaultResourceRetriever',没有任何这样的配置: new DefaultResourceRetriever(1000, 1000); 然后我得到了以下异常 jav
我正在阅读 JWKS 并找到有关 key 轮换概念的信息 - https://developer.okta.com/docs/concepts/key-rotation/ 假设我在我的应用程序中使用
我正在尝试配置 Istio 身份验证策略来验证我们的 JWT。 我设置了策略并可以看到它生效了。但是它不允许任何东西连接。应用该策略时,如果我检查 istio-pilot 日志,我会发现它无法检索签名
我收到两个 JWT:一个 OpenID Connect ID token (id_token) 和一个访问 token (access_token)。 OpenID 的情况或多或少很清楚 - 我可以使
我正在 AWS Cognito 上验证访问 token 。我必须做的一件事是将 key 从 jwks.json(用户池的)转换为 rsa 公钥结构(取决于使用的 JWT API)。 所以 'n' 和
我正在使用 Firebase 对我的应用中的用户进行身份验证。 Firebase 生成一个 JWT token ,我需要在我的服务器上进行身份验证。我使用 tyk.io 来做这件事。 Tyk 支持这些
我使用 Azure AD 控制台配置 JWT token 。一切看起来都很好并且能够检索 token ,但我发现 JWKS_url ( https://login.microsoftonline.co
我使用 Azure AD 控制台配置 JWT token 。一切看起来都很好并且能够检索 token ,但我发现 JWKS_url ( https://login.microsoftonline.co
我正在使用 dgrijalva/jwt-go 和 lestrrat-go/jwx。 我试图实现的是使用 jwks 验证 wso2 jwt。 token (过期 token ): const token
我正在设计使用 IdentityServer4 来保护多个服务的原型(prototype),但需要注意的是,这些服务可能不会被迁移(在可预见的将来)以使用 ASP.NET Core 的 OWIN 中间
我正在我的 Keycloak 实例中配置一个外部身份提供者,并尝试让它使用外部 JWKS URL 验证 token 。使用从 JWKS 转换后的 PEM 工作正常,使用 URL 无效。 登录时 tok
按照文档 here和 there ,我设法设置了一个授权服务器,它发出用非对称 key 签名的 JWT 访问 token ,资源服务器使用公钥的本地副本在本地验证这些 token 。到目前为止一切顺利
我对使用 OIDC 的后端 api 授权流程有点困惑。 我已将 SPA 应用程序与其余后端 api react 。 我想允许应用程序客户端注册他们自己的 OIDC 提供商以进行登录/注册。 OpenI
我有一些 key ID 可用于验证 token ,但它是硬编码的,我不希望它是这样。我正在使用 jwks-rsa 库从 API 端点获取 key 并打开 token 以进行验证,但是获取是在 jwks
假设您使用 AWS,并且想使用 Cognito 使用基于 ID 的身份验证。 然后 aws 为您提供一个公钥,您可以使用它来验证 cognito 负载。 我们还假设您不想或不能使用任何像 jose 这
我通过包装并通过 Azure API 管理对其进行缓存来为下面的发现端点设置缓存。 https://openid-connect-eu.onelogin.com/oidc/.well-known/op
当使用 Amazon AWS Cognito Federated Identities 并在以下位置解析数据时: https://cognito-identity.amazonaws.com/.wel
我正在尝试实现一项服务 (API),以履行资源服务器的 OAuth 角色。我们有一个实现隐式流程的 Angular 客户端应用程序。我们使用 GLUU 作为我们的 OpenID 提供者。客户端应用程序
我有: 身份服务器 4, 具有 OpenId Connect 和混合流的 Mvc 应用 WebApi 应用 假设用户已经获得带有 id_token 和访问 token 的 cookie。然后他从 mv
我有: 身份服务器 4, 具有 OpenId Connect 和混合流的 Mvc 应用 WebApi 应用 假设用户已经获得带有 id_token 和访问 token 的 cookie。然后他从 mv
我是一名优秀的程序员,十分优秀!