Okta JWT Verifier无法正常工作

时间:2018-05-28 08:50:03

标签: javascript node.js jwt okta

我想验证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页面,我认为它应该有效。

1 个答案:

答案 0 :(得分:0)

"默认"授权服务器还需要启用API访问管理功能标志。你有API访问管理吗?

检查: 转到Okta仪表板>安全> API>检查您是否有名为"授权服务器"旁边的"令牌"标签。

如果你没有:

  1. 如果你的组织。是预览组织。发送电子邮件至developers@okta.com与您的组织联系。 URL,他们将启用它
    1. 如果您的组织未预览,则必须购买。
    2. 或者,您可以将Okta本身用作授权服务器 - >所以发行人将是发行人:http://${issuer}.com"不是"发行人:http://${issuer}.com/oauth2/default"
  2. 如果是最后一个: 您无法在本地验证令牌。 但是,您可以将令牌发送到/ introspect端点进行验证,或者使用/ userinfo中的令牌请求更多信息

    您可以获得更多信息。以上来自developers.okta.com