我想验证OKTA访问令牌。 我在nodejs中创建了一个简单的用例,但是我得到了权限错误,我没有找到解决此问题的任何解决方案。 这是我的代码:
const OktaJwtVerifier = require('@okta/jwt-verifier');
const issuer = '{{url}}';
const cid = '{{clientid}}'
const oktaJwtVerifier = new OktaJwtVerifier({
issuer: `http://${issuer}.com/oauth2/default`,
assertClaims: {
cid
}
})
oktaJwtVerifier.verifyAccessToken("accesstoken")
.then(jwt => {
// the token is valid
console.log(jwt.claims);
})
.catch(err => {
console.log(JSON.stingify(err))
});
我收到了这个错误:
名称:'JwksError', 信息: {errorCode:'E0000006', errorSummary:'您无权执行请求的操作', errorLink:'E0000006', errorId:'oaezeHaXzOCS9m4D5C5P9WnZA', errorCauses:[]}}}
我查看了jwt-verifier github页面,我认为它应该有效。
答案 0 :(得分:0)
"默认"授权服务器还需要启用API访问管理功能标志。你有API访问管理吗?
检查: 转到Okta仪表板>安全> API>检查您是否有名为"授权服务器"旁边的"令牌"标签。
如果你没有:
http://${issuer}.com
"不是"发行人:http://${issuer}.com/oauth2/default
" 如果是最后一个: 您无法在本地验证令牌。 但是,您可以将令牌发送到/ introspect端点进行验证,或者使用/ userinfo中的令牌请求更多信息
您可以获得更多信息。以上来自developers.okta.com