小编Wol*_*ang的帖子

Subject.complete()是否取消订阅所有听众?

我用这个方法构建了一个简单的确认对话服务(Angular 2):

confirm(body?: string, title?: string): Subject<void> {
    this.confirmation = new Subject<void>();
    // ... show dialog here... "are you sure?"
    return this.confirmation;
}

_onYesClicked() {
  // ... closing the dialog
  this.confirmation.next();
  this.confirmation.complete();
} 

_onNoClicked() {
  // ... closing the dialog
  this.confirmation.complete();
}
Run Code Online (Sandbox Code Playgroud)

用法:

confirmationService.confirm().subscribe(() => alert("CONFIRMED"));
Run Code Online (Sandbox Code Playgroud)

如果有人使用该服务,他会返回一个Subject(这是一个Observable),并且可以"订阅()".点击"是"时调用订阅,因此确认给出了...

这是正确的方法吗?更重要的是...将致电

this.confirmation.complete();
Run Code Online (Sandbox Code Playgroud)

取消订阅订阅的侦听器,从而防止任何延迟引用(内存泄漏)?

observable rxjs angular

30
推荐指数
1
解决办法
1万
查看次数

为什么要使用 JWT 刷新令牌

我不确定我是否理解刷新令牌的概念。我知道他们在做什么 - 将它们存储在某个地方,每当访问令牌过期时,就为他们获取一个新的访问令牌。

不泄露这个刷新令牌显然非常重要,否则第三方可以获得新的访问令牌。因此,它需要保持额外的安全。

我的问题是:为什么不让长期访问令牌更加安全?安全性的区别在哪里?

以下是 auth0.com 对这一事实的描述,例如:

好处:泄漏访问令牌的访问窗口更短(这些访问令牌很快过期,减少泄漏令牌允许访问受保护资源的机会)”

这对我来说没有任何意义。所以访问令牌很快过期,因此如果它被泄露,它“还不错”。

另一方面,如果刷新令牌泄漏,则非常糟糕。那么为什么不尝试让访问令牌与刷新令牌一样安全,并获得完全相同的结果,但要管理的令牌少了一个?

oauth-2.0 jwt refresh-token

8
推荐指数
1
解决办法
4086
查看次数

有没有办法在 Visual Studio Code 中“确定范围”?

我正在使用 Angular 2。主项目文件夹包含“./src/app”,其中大部分编辑工作发生。

总是向下导航到这个文件夹有点麻烦(在折叠文件夹结构之后,这种情况经常发生。)。

有没有办法“作用于此”(就像在 Visual Studio 2012+ 解决方案资源管理器中一样)?

visual-studio-code

6
推荐指数
1
解决办法
2947
查看次数

jquery .data 在 remove() 和 append() 后丢失

抱歉,这似乎是一个愚蠢的问题……但这实际上是预期的行为吗?

我将数据存储在某个元素上:

$('#source-list li.active').data('relation-text', textEditor.value());
Run Code Online (Sandbox Code Playgroud)

后来元素从一个列表移动到另一个列表:

$('#source-list li.active').remove().appendTo('#target-list')
Run Code Online (Sandbox Code Playgroud)

就在 'remove()' 之前,'data()' 返回预期值。remove() 之后,数据就没了。

我会知道如何解决这个问题......但对我来说似乎很奇怪 - 这是预期的行为吗?

javascript jquery dom-manipulation

5
推荐指数
1
解决办法
2252
查看次数