我想验证OKTA访问 token 。
我在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))
  });

我得到这个错误:



我检查了jwt-verifier github页面,我认为它应该可以工作。

最佳答案

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

去检查:
转到Okta仪表板>安全性> API>检查“ token ”标签旁边是否有名为“授权服务器”的标签。

如果您不这样做:

  • 如果您的组织。是一个预览组织。给您的组织发送电子邮件至[email protected]。 URL,他们将启用它
  • 如果您的组织不是预览,则必须购买。
  • 或者,您可以将Okta本身用作授权服务器->这样,发行者将是“issuer:http://${issuer}.com”而不是“issuer:http://${issuer}.com/oauth2/default

  • 如果是最后一种情况:
    您无法在本地验证 token 。
    但是,您可以将 token 发送到/ introspect端点以进行验证,或者从/ userinfo使用 token 请求更多信息。

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

    关于javascript - Okta JWT验证程序不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50562449/

    10-13 01:35