首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有OKTA授权授予的、托管在亚马逊S3桶中的角应用静态网站的重定向问题

带有OKTA授权授予的、托管在亚马逊S3桶中的角应用静态网站的重定向问题
EN

Stack Overflow用户
提问于 2020-10-16 01:52:09
回答 2查看 1K关注 0票数 0

我已经在亚马逊S3上托管了Range9应用程序,作为静态网站托管,并与OIDC认证提供者(OKTA)和授权授予与PKCE集成在一起。

应用程序部署成功,当我单击Login时,我的应用程序被重定向到okta进行登录,但是当OKTA使用隐式/回调重定向时,我的浏览器抛出以下错误-

代码语言:javascript
复制
404 Not Found
Code: NoSuchKey
Message: The specified key does not exist.
Key: implicit/callback

我还使用CloudFront将http重定向到https。

我的应用程序设置是:

  1. 建立角应用程序并上传到亚马逊S3
  2. S3静态网站托管
  3. 面向S3的云前沿分布
  4. 托管域(53路)到CloudFront
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-19 15:51:17

谢谢加里!

我能够通过以下步骤解决这个问题:

  1. 用S3桶编写了重定向规则- 403 index.html 404 https www.mydomain.com #!/
  2. 更新CloudFront行为以转发查询字符串,方法是在“查询字符串转发和缓存”的CloudFront行为中选择“转发所有,基于all的缓存”
  3. 将错误文档更新为index.html中的CloudFront“错误页”中的403和404。
  4. 将以下JavaScript添加到index.html文件

代码语言:javascript
复制
<body>
  <script>
      var hash = window.location.hash;
      const newHashpath = hash.replace("#!/",""); //(/#!(\/.*)$/.exec(window.location.pathname) || [])[1];
      if (newHashpath) {
        // history.replace(path);
        window.history.pushState({},'',newHashpath);
      }
    </script>
  <app-root></app-root>
</body>

票数 0
EN

Stack Overflow用户

发布于 2020-10-16 10:15:36

当收到登录响应时,感觉S3在这里提供错误的文件,而不是您的index.html文件。

理解登录响应URI

这将是一个值,如下所示,您需要使这个值服务于您的index.html文件:

工作代码示例

您可以登录到我的在线云SPA来与类似的SPA进行比较(我的是用ReactJS编码的)。

在我的例子中,注册的重定向URI是这样的,它包括一个尾部反斜杠,以防止丢失登录响应查询参数的S3重定向:

完整的登录响应如下所示:

默认文档

在index.html设置中,这通常被指定为S3,尽管您可以通过lambda边缘函数进一步定制它--请参阅下面的可视化博客文章的链接。

默认文档应该处理登录响应

我总是将登录响应作为主index.html页面加载的一部分处理--参见这个源文件中对handleLoginResponse的调用。你需要用角度来做同样的事情。

进一步信息

也许浏览下面的博客文章会提供一些有用的进一步信息--希望这些细节能帮助你解决你的问题:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64381891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档