首页 > 解决方案 > 如何使用 Angular + Dotnet 核心应用程序防止并发用户登录?

问题描述

我们正在开发具有前端 Angular 和后端 dotnet 核心的应用程序。我们必须在登录过程中检查同一个用户是否已经登录。如果是,那么它会像同一个用户已经登录一样亲密用户。每当我开始在互联网上寻找这个解决方案时,我看到像我们可以在用户以 1 身份登录期间将一些标志存储在数据库中的选项,如果同一用户再次尝试登录意味着它应该提示第二个登录用户。但我的疑问是在系统故障期间,如 suddon powershutdown / session timeout 如何能我们将登录标志更新为 0(即,我们无法在这段时间内正确注销,对吗?)

任何帮助将不胜感激......在此先感谢!

标签: angular.net-coresession-management

解决方案


实现会有点棘手

  1. 在登录数据库中创建一个存储唯一 ID 的字段
  2. 在登录时从 Angular 创建一个唯一 ID,如果用户是有效的,则将该唯一 ID 存储在登录数据库中。
  3. 只有当数据库中的 uniqueID 为空时,用户才会成功登录。如果它有值,则显示一条消息,表明您已经登录。
  4. 将此唯一 ID 存储在 Angular 中,以便可以访问它,并在每次 api 调用时发送该 ID。应该使用登录数据库在 sql server 中检查 uniqueID,如果它仅匹配,则应提供数据,否则以角度重定向到登录页面
  5. 如果用户未正确注销,请提供指向注册用户电子邮件的链接或向注册的手机号码发送 OTP 或提供安全问题,以使有效用户在未正确注销的情况下可以重置 uniqueID 字段。

注意:如果第二个用户尝试登录,则使用此实现将无法登录。如果他是有效用户,他始终可以使用步骤 5 进行重置。如果用户重置,则之前的用户将不会收到任何新数据,并将被重定向到登录页面


推荐阅读