gpt4 book ai didi

javascript - OktaAuth Javascript + Flask 不向 Flask 发送代码和状态值

转载 作者:行者123 更新时间:2023-12-03 02:54:11 26 4
gpt4 key购买 nike

我是 okta、javascript 新手。我正在尝试将 OktaAuth 添加到现有的 Jquery/javascript + Flask 应用程序中。

我在 Javascript 中配置了以下内容。对服务器端回调的重定向调用有效。但不要传递代码、状态值以使其继续进行。你能让我知道这里出了什么问题吗?如有任何帮助,我们将不胜感激。

var authClient = new OktaAuth({
url: 'https://{okta-url}.com',
clientId: 'xxxxxx',
clientSecret: 'yyyyyyyyyy',
issuer: 'https://{okta-url}.com',
redirectUri: 'http://{redirect-url}/login'
//scopes: ['openid', 'email', 'profile']
});

var idToken = authClient.tokenManager.get('idToken');
console.log(JSON.stringify(idToken))
if (idToken) {
console.log('hi ${idToken.claims.email}!');
}
else if (location.hash) {
authClient.token.parseFromUrl()
.then(function (idToken) {
console.log('hi ${idToken.claims.email}!');
authClient.tokenManager.add('idToken', idToken);
console.log(idToken);
});
console.log(JSON.stringify(authClient.token))
}
else {
authClient.token.getWithRedirect({
responseType: ['id_token', 'code', 'token']
});
console.log(authClient.token)
}

最佳答案

警告:在 JavaScript 代码中保存客户端 secret 是危险的!暴露客户 secret 就像暴露您的密码一样。为了安全起见,您应该删除它并考虑生成新的客户端 ID/密码。

使用 OpenID Connect 的主要方式有两种,OktaAuth 也采用这种方式:使用服务器端回调(代码流),或完全在客户端(隐式流)。您试图在这里同时执行这两件事,这可能就是它表现得很奇怪的原因。

相反,请执行以下操作:

var authClient = new OktaAuth({
url: 'https://{okta-url}.com',
clientId: 'xxxxxx',
issuer: 'default', // Use the default Authorization Server
});

var idToken = authClient.tokenManager.get('idToken');

if (idToken) {
console.log('hi ${idToken.claims.email}!');
}
else if (location.hash) {
authClient.token.parseFromUrl()
.then(function (idToken) {
authClient.tokenManager.add('idToken', idToken);
console.log(idToken);
});
}
else {
authClient.token.getWithRedirect({
responseType: 'id_token'
// Use ['id_token', 'token'] if you also need an access token
});
}

这将为您提供一个可以在客户端使用的 ID token 。观察控制台和网络面板是否发生任何错误。

关于javascript - OktaAuth Javascript + Flask 不向 Flask 发送代码和状态值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47706910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com