1

我想到开发一个托管在亚马逊S3上的静态网站。我的文件结构将类似于aws s3静态网站在登录前隐藏内容

/login.html 
/login.js 
/hiddenContent/fileA.html 
/hiddenContent/fileA.js 

本身是用角1.x的网站,因此它的单页的应用程序。 我现在的问题是:登录应该是公开的,每个人都可以访问此页面。但是/ hiddenContent文件夹中的所有内容都应只对经过验证的用户可见。因为它的角度,所有内容和控制器必须在自举(加载)时间被知道。但是接着,熟悉网络技术的用户可以看到已经加载(但没有填充数据)的html和js。但这必须避免。我该如何处理这个问题? HTML和控制器JavaScript应该在登录后加载。与服务器它没有问题,但S3没有任何服务器。

tl; dr:如何在登录后在SPA中加载html/javascript?

+0

您可以拥有一个单独的html,并拥有自己的身份验证过程,当您成功通过身份验证时,该过程会将您重定向到具有必要参数的应用程序。我相信试图在同一个SPA中实现这一点,它会变得非常麻烦。 –

+0

是的,但如何将参数重定向到静态网站?没有可以读取这些参数的服务器。请详细解释一下。 – daTobi

+0

想到的一件事就是Auth0。在你的静态网站上加载登录小部件,当他们登录成功时,你会得到一个JWT的信息。将该JWT发送到加载它的SPA的着陆页,使用Auth0客户端验证它并让它们进入?尽管这是我的头顶。 –

回答

1

您可以通过在Amazon S3的静态网站实施安全:

  • 前签署的网址(但是这需要一个应用程序来验证用户身份和所产生的预签的网址),或
  • 通过使用临时AWS凭证(可通过AWS安全令牌服务生成,但又需要应用程序来创建凭证)或
  • 通过使用永久AWS凭证(但你不应该使用IAM授予访问应用程序的用户)

底线:如果您有没有逻辑层来检查安全性和生成访问凭据,那么你就不能选择性地保护了Amazon S3的静态网站。