将授权令牌添加到默认 headers 与使用 $http 拦截器
Adding auth token to default headers vs. using $http interceptors
我一直在研究 Angular 和 Express 之间的身份验证,并决定将令牌身份验证与 JWT 和 npm jsonwebtoken
包一起使用。我已经在服务器端设置好所有内容,并在客户端接收令牌,但现在我需要知道如何让它随每个请求发送令牌。
根据我的发现,大多数资源都说使用 $http 拦截器来转换每个传出请求。但是工作中的人总是在 .config
块中使用 $httpProvider.headers.defaults.common["Auth"] = token
,这对我来说似乎更直接。 Here's a blog explaining how to do it both ways.
但是 this Whosebug post 上接受的答案说使用拦截器会更好,但他没有给出原因。
任何见解都会有所帮助。
经过大量研究 a conversation on Reddit,似乎最好的方法是通过拦截器。在 .config
或 .run
块中进行设置可能有助于检查用户在首次加载应用程序时是否已经通过身份验证(如果本地存储中有令牌),但不会可以处理动态更改,例如在加载应用程序后注销或登录。我很确定你可以通过 $http 默认值 headers 来完成它,但也可以只在一个地方完成它。
希望这对以后的人有所帮助!
我一直在研究 Angular 和 Express 之间的身份验证,并决定将令牌身份验证与 JWT 和 npm jsonwebtoken
包一起使用。我已经在服务器端设置好所有内容,并在客户端接收令牌,但现在我需要知道如何让它随每个请求发送令牌。
根据我的发现,大多数资源都说使用 $http 拦截器来转换每个传出请求。但是工作中的人总是在 .config
块中使用 $httpProvider.headers.defaults.common["Auth"] = token
,这对我来说似乎更直接。 Here's a blog explaining how to do it both ways.
但是 this Whosebug post 上接受的答案说使用拦截器会更好,但他没有给出原因。
任何见解都会有所帮助。
经过大量研究 a conversation on Reddit,似乎最好的方法是通过拦截器。在 .config
或 .run
块中进行设置可能有助于检查用户在首次加载应用程序时是否已经通过身份验证(如果本地存储中有令牌),但不会可以处理动态更改,例如在加载应用程序后注销或登录。我很确定你可以通过 $http 默认值 headers 来完成它,但也可以只在一个地方完成它。
希望这对以后的人有所帮助!