[能否让我们知道我们是否可以成功部署S3存储桶中托管的React应用程序,该应用程序还与OIDC身份验证提供程序(OKTA)集成在一起,尤其是与PKCE流一起的授权授予。我正面临这个问题(AuthSdk错误:pkCE需要具有加密支持…PS协议的现代浏览器。PKCE需要安全的HTTPS协议cloudfront)
[我们试图遵循AWS文档,并能够将React SPA托管为静态网站,并且还尝试了各种不同的技巧,以能够成功地将回调重定向到React路由器(通过在重定向规则中添加#!),最终可以使用OKTA登录名登录到应用程序,但由于上述错误,回调不会成功。
使用S3存储桶url作为源而不是S3网站端点(自定义源)进行Cloudfront分发是否正确,使用https url解决pkce错误会有所帮助,因为S3存储桶url似乎通过https,但是S3网站终结点将仅通过http提供。
[当S3存储桶配置为原始站点时,Cloudfront将使用https URL,否则将使用http URL,因为S3存储桶发布为静态网站。
您能否分享对这种方法的任何想法。谢谢!
关于,Sudharshan。
我已经使用Okta作为cognito中的联合身份提供者,并使用React作为前端应用程序的SPA。只要您创建指向S3存储桶的Cloudfront发行版,就可以在其中将应用程序的响应捆绑包上传到其中。
[Okta需要使用https,才能将您重定向到所需的回调URL,但是S3仅为您提供http。因此,您需要将其部署到Cloudfront以启用https。
请记住将Cloudfront中的Origin Domain Name
指向S3在启用静态托管后生成的URL。
希望这会有所帮助!
标准技术是:
[查看下面的我的博客文章,它们也托管了React SPA:
出于兴趣,您可以使用URL并通过我的quick start page上的测试登录帐户来运行上述博客文章中部署的SPA。