如何在 MEAN 堆栈应用程序中处理身份验证令牌

How to handle authentication tokens in MEAN stack application

我是 MEAN 堆栈的新手,正在使用 MEAN 开发 end-to-end 应用程序。我对如何在客户端处理身份验证令牌有点困惑(即 Angularjs)。

我在用户注册或登录应用程序后创建了一个身份验证令牌。我按照 this link 创建身份验证令牌。我在响应 headers 中设置了身份验证令牌,并将其保存在客户端的浏览器 localStorage 中。每当我进行 REST 调用时,我都会访问它。

直接从 localStorage 访问令牌是一个好习惯,还是我需要通过创建工厂或服务来访问令牌?。我见过很多 SO 答案,他们通过创建工厂或服务来访问令牌,但我的困惑是,如果我能够直接从 localStorage 访问令牌,为什么我需要创建工厂或服务?有什么最佳实践吗?

MEAN.IO 提供了 Test-Driving-Development 的方法论,并且有几个开箱即用的 Karma 测试用例。对于单元测试,您应该编写工厂 app.factory('getTokens) 然后为其编写测试用例,例如:

  • 用户已登录 -> 正常。
  • 用户未登录 -> 抛出错误。

但是如果您出于某种原因不支持 TDD - 您不应该支持。