gpt4 book ai didi

security - 在 SPA 网上商店中实现 Web API 身份验证的最佳实践

转载 作者:行者123 更新时间:2023-12-03 06:31:14 26 4
gpt4 key购买 nike

目前,我们正在构建一个网上商店作为 SPA 应用程序。所有 SKU 信息均由 Web Api 2 服务提供。

当然,网上商店对每个访问者都是公开的,目前只有一个用户可以登录管理网上商店:管理员。

对于管理员,我们使用 bearer token 构建了基本身份验证,正如互联网上的许多示例向我们展示的那样,但现在我们需要每个用户登录才能看到任何产品。这并不是我们心目中的网上商店;-)

我们想要实现的是,我们的 Web Api 不向全世界开放,仅适用于我们的 SPA 应用程序。每一篇关于授权的博客文章或教程似乎都假设总是有一个用户需要登录,在我们的例子中只有一个用户:管理员。

AllowAnonymous 属性使特定的 API 调用再次可供世界使用,因此这也是一个死胡同。

基本上,这可以归结为防止任何其他应用程序(网络或移动)从我们的 Web Api 获取数据。

在不让我们的网上商店的匿名访问者登录的情况下,保护我们的 Web Api 的最佳和最安全的方法是什么?

目前的解决方案:虽然我对这个解决方案不是 100% 满意,但它目前可以工作。我们实现了 OAuth 隐式流程,并为特定域启用了 CORS。

最佳答案

您应该看看 OAuth 2.0 client credentials flow 。 OAuth 中的客户端是应用程序,而不是使用该应用程序的用户。这样您就可以确保只有您的 SPA 应用可以访问后端 API。

只允许管理员访问的部分,您可以使用 [Authorize(roles =administrator)] 属性进行装饰,这会阻止任何其他角色具有访问权限。

关于security - 在 SPA 网上商店中实现 Web API 身份验证的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27127251/

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