okta-api - Okta OktaSignIn 小部件令牌刷新
问题描述
我有一个网站可以使用 Okta 进行身份验证/授权。我可以使用 Okta 登录小部件来获取访问令牌并进行 API 调用。
let oktaSignIn = new OktaSignIn({
baseUrl: 'https://dev-xyz.okta.com',
logo: '../img/hello.png',
clientId: '0oa11nSOMETEXTudr5d7',
redirectUri: 'http://localhost:5000/login/callback', // Not sure if it's needed
authParams: {
issuer: 'https://dev-xyz.okta.com/oauth2/default',
responseType: ['id_token', 'token'],
//scopes: ['openid', 'offline_access', 'email', 'profile'],
scopes: ['openid', 'offline_access'],
}
});
this.oktaSignIn.renderEl({
el: '#widget-container'
}, function success(res) {
if (res.status === 'SUCCESS') {
let tokens = res.tokens;
// Store access token and use it to make API call hosted at http://localhost:5000/myapi
}
}
令牌将在 60 分钟后过期。我不确定如何将刷新令牌与 OktaSignIn 小部件一起使用。我找不到任何样品。
我看了这些链接:
https://developer.okta.com/code/javascript/okta_sign-in_widget/#sign-in-and-display-user-s-email https://www.npmjs.com/package/@okta/okta-signin -widget/v/4.5.0 https://github.com/okta/okta-signin-widget
但是,我找不到任何样品。
问题:
- 是否可以使用 OktaSignIn 获取刷新令牌?
- 如何在 OktaSignIn 中使用刷新令牌?
解决方案
如果您使用 tokenManager,它将为您处理刷新令牌
signIn.renderEl({ el: '#widget-container' }, async (res) => {
if (res.status === 'SUCCESS') {
signIn.tokenManager.add('id_token', res[0])
signIn.tokenManager.add('access_token', res[1])
}
})
现在每次使用
signIn.tokenManager.get('access_token')
保证您拥有有效的未过期令牌
推荐阅读
- database - 数据库连接到本地主机但不在互联网上
- java - StatusLogger 找到多个日志记录实现
- react-native - 在 iOS 和 Android 中使用相同代码但结果不同的 React Native 应用程序
- ios - 自定义后退按钮有多余的多余空间
- queue - 如何在 Websphere 应用服务器中启用或禁用队列
- python - 我可以在多处理池星图方法中传递队列对象吗
- c - hiredis 在主机名中使用用户名和密码失败
- google-calendar-api - Google 日历服务帐户和共享资源日历(例如房间):仅限忙时访问
- java - 我们可以序列化 java Socket 对象以通过 Kafka 队列发送吗
- sql - 如何将三个最相似但又有些不同的表合并为一张表?