【问题标题】:Angular - cookies usageAngular - cookie 的使用
【发布时间】:2020-10-12 01:02:55
【问题描述】:

我需要一些帮助来了解如何在 Angular 中管理 cookie。我正在使用 ngx-cookie-service 为我的网络应用程序生成 cookie。我不清楚的是,由于在我的浏览器中运行 angular,实际上当我使用 cookieService.setCookie(...) 时浏览器应该设置 cookie。但如果是这样的话,那个 cookie 是发送到哪里的呢?到哪个服务器?

我会说cookie应该被发送到网络服务器,例如http://localhost:4200,但是如果cookie是从我的浏览器创建的,服务器如何知道它?

我说的是 Angular,但我可以更普遍地为每个 Web 应用程序制定相同的问题。

【问题讨论】:

    标签: angular http cookies browser web-applications


    【解决方案1】:

    Cookie 由用户的浏览器存储,无论 Cookie 是通过从 http(s) 调用接收的标头设置,还是通过客户端 JavaScript 中的 setCookie() api 调用设置。

    Cookie 由设置它们的域分隔,并且可以由设置它们的“页面”进一步分隔(在 SPA 应用中意义不大)。

    在一个简单的静态网页中,浏览器将进一步发送 http(s) 请求,其中 cookie 在当前域、页面等“范围内”。

    但是,默认情况下,Angular HttpClient 不会在您进行 Http(s) 调用时发送 cookie。您必须明确启用此功能。

    欲了解更多信息,请参阅Angular HttpClient does not send domain cookie

    【讨论】:

    • 首先,谢谢您,您可能启发了我。我需要评估我是否理解:因此,如果我将 JSON Web 令牌存储在 Angular Web 应用程序的 cookie 中,则 JWT 不会附加到我的浏览器向 Angular 服务器发出的每个请求中http://localhost:4200,对吧?那个 cookie 不会去任何地方,我们可以把那个 cookie 称为“仅限本地”cookie”,不是吗?
    • 是的,这是我的理解。但是,如果您要将其保留为“仅限本地”,则没有理由使用 cookie,您可以只使用 localstorage,在这种情况下这将是更常见的做法。
    猜你喜欢
    • 2016-11-11
    • 2018-09-25
    • 2020-03-29
    • 1970-01-01
    • 2019-03-23
    • 2015-04-24
    • 2019-03-26
    • 2013-10-06
    • 2018-01-24
    相关资源
    最近更新 更多