首页 > 解决方案 > 实时验证令牌以存储在 NgRx 状态?

问题描述

我的 NgRx 商店中有一个“经过身份验证的”布尔值,用于跟踪用户是否有效。但是这个变量只能在执行操作时进行切换——例如登录、注销或发送 POST——因为我必须在后端和客户端验证它。因此,它不能以我想要的方式使用(作为我的商店中的可靠状态变量)。我想知道是否有办法让这个布尔值保持实时?

标签: angulararchitectureauthorizationreactive-programmingngrx

解决方案


通常你会这样做:你有一个 auth 状态的商店,它有这个布尔值和默认值undefined,这意味着状态不明确,所有警卫和应用程序的其他部分都应该等待boolean.

当应用程序加载时,您需要通过发出请求来验证身份验证状态/me/ping例如,根据其响应,您通过相关操作将变量设置为 true / false。

此外,您应该有一个拦截器,它知道请求是否由于过期/错误的身份验证状态而被拒绝,并且此拦截器还通过相关操作将变量设置为 true / false。


推荐阅读