【问题标题】:Does FusionAuth provide a single signout?FusionAuth 是否提供单点注销?
【发布时间】:2019-12-07 03:30:39
【问题描述】:

似乎找不到任何使 FusionAuth 在用户注销时向应用程序发送信号以终止用户会话的东西。

【问题讨论】:

    标签: fusionauth


    【解决方案1】:

    FusionAuth 在/api/logout 提供了一个可能会起作用的 API。此 API 将撤销用户拥有的任何刷新令牌。当刷新令牌被撤销时,FusionAuth 将向任何已配置的 Webhook 发送一个事件。

    以下是有关此 API、Webhooks 和触发事件的文档:

    您可以采取以下粗略步骤来完成这项工作:

    1. 在您的应用程序或新的微服务中创建注销端点 (https://example.com/global-logout)
    2. 此端点调用FusionAuth中的/api/logout端点
    3. 每个想要收到通知的应用程序都会编写一个 Webhook 并处理 jwt.refresh-token.revoke 事件

    您可以在有关的文档链接中查看示例 Webhook。处理 jwt.refresh-token.revoke 事件的 Webhook 在 Node/JavaScript 中可能如下所示:

    router.route('/fusionauth-webhook').post((req, res) => {
      const request = req.body;
      if (request.event.type === 'jwt.refresh-token.revoke') {
        // Clean up all the user's stuff here
      }
    });
    

    【讨论】:

    • Brian,我们知道,当用户注销时,他们的刷新令牌会被撤销,但刷新令牌是否曾经因为不表明用户正在注销的原因而被撤销?
    • 通常不会,但您可以随时撤销刷新令牌。在大多数情况下,撤销刷新令牌只有两个原因: 1. 用户要求您这样做。这本质上是一个用户要求您将他们从特定设备上的应用程序中注销。 2. 您需要这样做是因为发生了一些变化、出现了问题或者您有安全问题。无论哪种情况,它本质上都是注销。一个是他们发起的,一个是你发起的。
    • @BrianPontarelli,感谢您的回答。那应该可以正常工作。
    猜你喜欢
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 2017-08-21
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多