带有 .net Core 的 Angular Cookie

Ant*_*dis 1 .net cookies asp.net-web-api angular

我有一个 asp.net core web api 和 Angular 前端。应用程序向 Web API 上的控制器操作发送帖子并对用户进行身份验证。

我的问题是返回身份验证 cookie 并最终存储的正确方法是什么?我发现这个cookie 库似乎可以很好地满足我的目的。一些更具体的问题是:

  • cookie 应该有什么名称?GUID 可以吗?我听说过加密,或者只是会话 ID。cookie 将仅通过 HTTPS 发送
  • 我如何在 asp.net core 中创建 cookie?我获得用户名密码并简单地使用 SQL 服务器验证结果,但我不希望用户每次都登录
  • 如何从 http post 请求中检索 cookie?我正在使用 httpClient 发布到 url。我知道如何使用带有角度的http拦截器将其发回。

感谢您花时间阅读这篇长文章。

svo*_*hik 5

首先我应该警告您,使用基于 cookie 的身份验证可能会给您带来很多问题:

  • 由于 CORS 限制,您的应用程序应放置在与 Web API 相同的域中
  • 对于移动应用程序,这种 cookie 方法根本不起作用

如果您同意,让我们开始解决您的问题:

  1. 是的,ngx-cookie-service 是一个非常好的库。我在一些复杂的项目中使用了它
  2. 实现您自己的身份验证解决方案并不是一项简单的任务,因为您需要正确实现哈希算法、cookie 和会话管理(如果您开始考虑基于 cookie 的身份验证,我假设您将拥有有状态的 Web api),所以我建议使用 IdentityServer - 这是一个非常简单的库,用于快速实施身份验证。对于大多数项目来说,开箱即用的设置是合适的。如果您使用此库,则无需自行操作 cookie。

cookie 应该有什么名称?

没关系

如何从 http post 请求中检索 cookie?

Cookies由浏览器自动保存

另外,我在这里找到了一个很好的实现 Angular + .NET Core Web API Cookie Based auth 的示例