Azure 应用服务内置身份验证编程注销

问题描述 投票:0回答:1

我正在使用内置身份验证开发一个天蓝色应用程序服务应用程序。由于不活动功能,我正在尝试实现自动注销,因此当用户离开浏览器时,应用程序应该注销。

遵循如何退出会话的文档我希望当我重定向到

/.auth/logout
时它应该

  • 清除当前会话中的身份验证 cookie。
  • 从令牌存储中删除当前用户的令牌。
  • 对于 Microsoft Entra 和 Google,在身份提供商上执行服务器端注销。

...但是,用户不会执行上述操作,而是会看到一个帐户选择器屏幕,询问要退出哪个帐户。问题是没有用户可以做出选择,因此浏览器挂在该屏幕上,并且在访问应用程序时,用户仍然经过身份验证。

有谁知道如何以编程方式注销azure应用程序服务应用程序而不需要用户交互?

javascript azure azure-web-app-service
1个回答
0
投票

1.简介

您的浏览器触发对服务器的请求。您的任务是以编程方式复制这些请求。

2.计划

当浏览器或选项卡失去焦点时,您在任何页面上并且打算运行 JS 代码。您可以使用

window.onblur
来实现此目的。

3.研究

以用户身份实际注销并打开开发工具并监视所有请求,保存每个请求的卷曲。请注意,某些请求可能会重用以前请求的某些响应。

对于每个此类请求,确定:

  • 是否需要注销(例如您不想向 CSS 文件发送请求)
  • 请求的哪些参数/标头有所不同(会话 ID、用户代理等),特别是哪些变量值取决于早期请求的响应
  • 要发送哪些标头

4.实施

实施一系列这些请求并进行调整,直到它们起作用。仔细监控反应是什么。尝试在curl中执行此操作,并在测试过程中从实时浏览器会话中获得灵感。

5.将其集成到您的项目中

现在您已经有了一系列带有一些参数的curl请求,并且通过顺序发送请求您可以注销,如果您遇到没有浏览器限制的情况,您也许可以通过Javascript发送这些请求。在这种情况下,您只需要实现一些 Javascript 函数并在

window.onblur
处触发序列。

但是,如果浏览器存在限制并且您无法解决它,则可以实现一个中间件,您可以向该中间件传递初始变量值,并启动请求序列,并通过向中间件发出请求来从 Javascript 代码触发此请求。

© www.soinside.com 2019 - 2024. All rights reserved.