如何解决如何使用 SPA 或 Web 应用程序在 Okta 中获取 refresh_token
我将 okta-auth-js 与 SPA 结合使用,我想检索刷新令牌。
我的配置如下:
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?
解决方法
您需要在范围中包含 offline_access
我找到了解决方案:)
您必须在调用 offline_access
时使用会话令牌添加 /authorize
范围。
例如:
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。