gpt4 book ai didi

asp.net-core - 在 Google 身份验证后面提供静态文件

转载 作者:行者123 更新时间:2023-12-03 17:36:47 24 4
gpt4 key购买 nike

我想使用 Gatsby 制作一个静态生成的网站.这一切都很好,但我想要进行身份验证和授权,因为这是一个内部站点 - 它应该只由我公司的人员访问。我想过这个,如果没有一些服务器组件,就不可能(?)在没有某种后端的情况下安全地对用户进行身份验证。我想我可以使用 ASP.NET Core 来提供静态文件,并在这些静态文件前面进行 Google(for Work)身份验证和授权。
好像是StaticFileHandler doesn't support authorization by design ,因为它只负责提供可公开访问的静态文件。我设法使用 Authorize 使 Google 身份验证正常工作我的根操作(监听“/”)上的属性,并且具有发出 Challenge 的登录操作并且用户将被重定向到 Google 进行身份验证。进一步阅读处理静态文件的文档说:

The static file module provides no authorization checks. Any files served by it, including those under wwwroot are publicly available. To serve files based on authorization:

  • Store them outside of wwwroot and any directory accessible to the static file middleware and
  • Serve them through a controller action, returning a FileResult where authorization is applied

所以现在我有一个 Index对我的 HomeController 采取行动看起来像这样:
[Authorize]
public IActionResult Index()
{
// TODO: Return static files based on incoming requested path.
return View();
}
我对这个解决方案不是很满意。我应该让整个过程使用中间件而不是使用 MVC 吗?这甚至是正确的方法吗?有没有更好的方法来做到这一点?

最佳答案

Gatsby 会产生一个静态内容的文件夹,里面没有任何授权的概念。

我建议您需要在不同的层处理身份验证。例如,您可以在网络服务器层添加一个简单的基本授权 header 要求。这在 nginx 或 apache 中是微不足道的。

在 Gatsby 项目中构建身份验证要么违背静态站点的目的,要么意味着您的内容可作为 JSON 文件公开访问,但除非满足某些授权要求(不安全),否则您的 React 应用程序将拒绝加载它。

关于asp.net-core - 在 Google 身份验证后面提供静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46904378/

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