【问题标题】:How to get refresh_token in Okta using SPA or web app如何使用 SPA 或 Web 应用在 Okta 中获取 refresh_token
【发布时间】:2021-09-01 09:02:09
【问题描述】:

我正在使用带有 SPA 的 okta-auth-js,我想检索刷新令牌。

我的配置如下:

okta: {
    issuer: 'https://myIssuer/oauth2/default',
    clientId: '0oahHMKdu3BlV0x1hdoa7lV0',
    redirectUri: 'http://localhost:3000/login/callback',
    responseType: 'code'
  }

然后我像这样执行身份验证:

oktaAuth.signInWithCredentials({
    username,
    password
  }).then((transaction) => {
      switch (transaction.status) {
        case 'SUCCESS': {
          const { sessionToken } = transaction;
          oktaAuth.token.getWithRedirect({ sessionToken });
          break;
        };
        ... // Other status cases

我已在 Okta 仪表板中启用刷新令牌轮换,但我只收到 access_token 和 id_token 作为响应。

我的问题是如何获得 refresh_token 呢?

【问题讨论】:

    标签: reactjs jwt single-page-application okta okta-api


    【解决方案1】:

    我找到了解决方案:)

    当您调用/authorize 时,您必须将offline_access 范围与会话令牌一起添加。

    例如:

    oktaAuth.signInWithCredentials({
        username,
        password
      }).then((transaction) => {
              switch (transaction.status) {
                case 'SUCCESS': {
                  const { sessionToken } = transaction;
                  oktaAuth.token.getWithRedirect({
                    sessionToken,
                    scopes: ['openid', 'offline_access']
                  });
                  break;
                }
            ... // Other status cases
    

    【讨论】:

      【解决方案2】:

      你需要在你的作用域中包含offline_access

      source

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-24
        • 2015-05-26
        • 2022-10-14
        相关资源
        最近更新 更多