angular - 实时验证令牌以存储在 NgRx 状态?
问题描述
我的 NgRx 商店中有一个“经过身份验证的”布尔值,用于跟踪用户是否有效。但是这个变量只能在执行操作时进行切换——例如登录、注销或发送 POST——因为我必须在后端和客户端验证它。因此,它不能以我想要的方式使用(作为我的商店中的可靠状态变量)。我想知道是否有办法让这个布尔值保持实时?
解决方案
通常你会这样做:你有一个 auth 状态的商店,它有这个布尔值和默认值undefined
,这意味着状态不明确,所有警卫和应用程序的其他部分都应该等待boolean
.
当应用程序加载时,您需要通过发出请求来验证身份验证状态/me
,/ping
例如,根据其响应,您通过相关操作将变量设置为 true / false。
此外,您应该有一个拦截器,它知道请求是否由于过期/错误的身份验证状态而被拒绝,并且此拦截器还通过相关操作将变量设置为 true / false。
推荐阅读
- amazon-web-services - 如何使用 CodeCommit 和 Code Pipeline 部署到多个环境
- c - 如何检查 spin_lock 是否正常工作?
- javascript - 如何像 GitHub 一样切换到 Chrome 的深色滚动条?
- git - Azure DevOps 远程分支在一个存储库中不可见
- variables - ansible 变量名本身就是一个变量。如何阅读?需要语法
- wcf - WCF:远程服务器返回错误:“(417)预期失败”
- delphi - 在 Delphi 中获取接口引用的 GUID
- ios - React Native IOS - 接收失败,错误“软件导致连接中止”
- java - 如果我想用 gson 从 json 文件中读取它们,我应该为对对象使用什么 java 类?
- php - 自定义子查询不起作用并给出错误