我正在 MEAN 堆栈(MongoDB、Express、AngularJS 和 node.js)上开发一个 Web 应用程序。我正在开发一个登录系统,并且还将保护一些 Angular 路由,以便只有登录用户才能访问它们。我正在尝试考虑处理此架构的最佳方法。
我正在考虑当前的工作流程:
- 用户通过 AngularJS 表单登录,该表单将 http POST 发送到 Express 端点。端点根据数据库验证用户,并使用 OAuth 令牌和 cookie 进行响应。两者都存储在 mongo 数据库中以供以后验证。
- 一旦 AngularJS 收到登录响应,它会使用 ng-cookies 存储接收到的 cookie,并将 OAuth 令牌存储在用户服务中。
- 现在,每次 AngularJS 中的路由发生变化时,用户服务都会通过将其与 mongo 数据库中的 cookie 进行比较来确保 cookie 仍然合法(这将是使用 Angular 解析的 API 调用...落后?)
- 当用户单击“注销”或 cookie 过期时,cookie 和 OAuth 令牌都会从数据库中删除并且不再有效。
这种方法有意义吗?它是否安全,执行起来是否相对高效/快速?