gpt4 book ai didi

.net - Angular+Web API 应用中的 session 管理

转载 作者:太空狗 更新时间:2023-10-29 17:32:52 24 4
gpt4 key购买 nike

这是我正在尝试做的事情

  1. 我正在 Angular 中创建 SPA。

  2. 我所有的业务逻辑都是用 Web API 编写的。

  3. 我正在从 Angular 对 REST API 进行 http 调用,获取 Json 数据并将其绑定(bind)到 Angular UI。

一切正常。此外,我想在我的应用程序中实现 session 维护。

一旦用户登录,我将调用另一个 api 来检查凭据是否正确并且 API 返回 true 或 false,根据它 Uesr 被重定向到主页。

现在我需要维护用户的 session ,除非用户注销。现在这是我知道的方法。

Cookie-> 我可以创建一个 cookie 来维护 session ,但这会有风险,而且它可能有助于 session 劫持。

注意:我不是在谈论 token 身份验证,我认为它具有完全不同的目的。

如果你能提出一些与可能正在使用 node.js 或 Angular 中我不知道的东西相关的东西,那将是一个很大的帮助。

如果您想对我正在遵循的架构提出建议。这也很受欢迎。

最佳答案

正如每个人都确认的那样,在 angularjs 中无法在客户端安全地保存信息。我为我的网络应用所做的如下:

  1. 每当用户启动我的网络应用程序时,我都会使用 https://freegeoip.net/json/ 获取他/她的 ip 凭证.
  2. 第二步是使用他/她的 IP 地址创建一个唯一的 key (因为这对每个用户来说都是唯一的)
  3. 登录时在请求参数中发送此 key
  4. 在服务器端,我们检查了用户凭据并保存了此 key 以验证 future 的请求,我们还生成了一个 token 来验证用户 session
  5. 在登录响应时,我们将生成的 token 保存在本地存储中。
  6. 下次用户启动应用程序时,我们从本地存储中获取 token 并使用 IP 生成唯一 key 。我们将两者都发送到服务器,它会验证 token 是否有效以及是否与相同的唯一 key 相关联。
  7. 如果用户仍在同一个网络上,则验证成功,否则不成功。

缺点

  1. 如果用户切换网络或他的 IP 地址更改服务器认为他/她已注销。

关于.net - Angular+Web API 应用中的 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46356415/

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