【问题标题】:RxJS authentication timeoutRxJS 认证超时
【发布时间】:2017-03-16 03:22:13
【问题描述】:

我对 Angular 2 和 RxJS 比较陌生,我有一个关于如何设置 observable 的问题。我有一个提供身份验证的 REST HTTP API,其中很大一部分是如果 REST 调用之间发生超时,则用户未经过身份验证。

在客户端上,我想为 REST HTTP 调用创建一个 Observable(本质上是一个 Angular 2 服务)。这与计时器相关联。只要在超时时间内发生另一个 REST HTTP 调用,logged_in 值就保持为真。如果超时到期,logged_in 值将变为 false。所以我需要的是一种让 REST HTTP 调用重置计时器以便重新启动的方法。

【问题讨论】:

    标签: angular typescript rxjs observable


    【解决方案1】:

    作为一般模式的问题,您可能会受益于使用 ngrx/store 进行集中式应用程序状态管理(状态、操作、reducers)以及 ngrx/effects 处理“副作用”,如 REST-API 调用。

    可以在此处找到“官方”示例应用程序:ngrx/example-app

    如果您打算使用响应式(函数式)方法构建复杂的 Angular 2 应用程序,一般来说值得探索。

    具体到你的情况,在

    之间
    • 商店 State 的一部分,用于捕获您的登录状态,
    • actions 相关的启动登录、登录成功动作、登录失败动作和
    • 包装用于身份验证的 API 调用并由启动登录操作触发的效果

    您应该有一个良好的框架来解决管理登录状态的问题。然后,您的服务/组件可以使用存储状态切片的可观察对象来响应状态更改。然后你可以使用所有强大的 RxJs 运算符来映射、组合等。

    因此,可以在基本事件流中添加其他方面,例如触发与“超时”或重试相关的操作。

    【讨论】:

    • 感谢您的反馈,我会看看 ngrx/store 并尝试加快速度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多