这个问题可能是由于在AWS Cloudfront上部署的Angular应用无法正确获取Okta访问令牌导致的。以下是一个可能的解决方案:
确保您的Angular应用已经正确集成了Okta,并且在本地运行时可以正常获取访问令牌。
确保您已经在AWS Cloudfront上正确配置了您的Angular应用,包括正确设置您的域名和SSL证书。
确保您在AWS Cloudfront上配置了正确的缓存策略,以确保请求不会被缓存。在您的Cloudfront配置中,您可以添加以下配置文件来禁用缓存:
{
"Behavior": {
"PathPattern": "/index.html",
"ViewerProtocolPolicy": "redirect-to-https",
"AllowedMethods": ["GET", "HEAD", "OPTIONS"],
"CachedMethods": ["GET", "HEAD", "OPTIONS"],
"ForwardedValues": {
"QueryString": true,
"Cookies": {
"Forward": "all"
},
"Headers": ["Authorization"]
},
"MinTTL": 0,
"MaxTTL": 0,
"DefaultTTL": 0
}
}
这将禁用对index.html的缓存,并确保每次请求都会被发送到服务器以获取最新的访问令牌。
您还可以检查您的AWS Cloudfront配置中是否正确设置了请求头。确保在ForwardedValues中添加了"Authorization"请求头。
最后,您可以尝试在Cloudfront的缓存行为中禁用GZIP压缩。这可以通过在Cloudfront配置中的Compression设置中将Compressed Objects选项设置为Disabled来完成。
通过使用以上解决方案,您的Angular应用部署在AWS Cloudfront上时应该能够正确获取Okta访问令牌了。