Chrome 扩展程序在调用 launchWebAuthFlow API 时使 Microsoft Edge 浏览器崩溃

     2023-02-19     182

关键词:

【中文标题】Chrome 扩展程序在调用 launchWebAuthFlow API 时使 Microsoft Edge 浏览器崩溃【英文标题】:Chrome Extension crashes the Microsoft Edge browser while calling launchWebAuthFlow API 【发布时间】:2022-01-08 06:09:33 【问题描述】:

我们有一个在 Chromium edge 和 Chrome 浏览器上运行的 chrome 扩展程序。在今天之前它运行良好,但今天它在调用 API 后开始使 Microsoft Edge 崩溃,并且在调试时我们看到错误来自此 API:

https://developer.chrome.com/docs/extensions/reference/identity/#method-launchWebAuthFlow

我们使用此 API 进行身份验证,Microsoft 还声明我们可以使用此 API。以下消息来自 Microsoft 频道:

chrome.identity.getAuthToken - 作为替代方案,您可以使用 launchWebAuthFlow 获取 OAuth2 令牌以对用户进行身份验证。

问题仅出现在边缘浏览器中。 Edge 版本:96.0.1054.41(官方版本)(64 位) 我们还尝试降级边缘,但似乎没有任何效果。

我们使用 Google 和 Microsoft 登录,并且 launchwebauthflow 仅在 Microsoft 登录时失败,我们使用的身份验证 URI:https://login.microsoftonline.com/common/oauth2/authorize

我们正在传递所有必需的参数,并且调用是从后台脚本进行的。

【问题讨论】:

您使用的是哪个版本的 Edge?您提到它在今天之前正常工作。我建议您可以将 Edge 回滚到以前的版本,以测试是否是 Edge 本身的问题。只需参考此rollback doc。顺便问一下,这个问题是否也出现在 Chrome 中? 是的,所以 Edge 的版本是:96.0.1054.41(官方构建)(64 位),我们尝试了旧版本,甚至测试版,我们在 Chrome 和它工作得很好。我们使用谷歌和微软登录,谷歌登录工作正常,但微软却崩溃了 我们使用以下认证网址:login.microsoftonline.com/common/oauth2/authorize 我来自微软论坛上的帖子。对我来说,不仅是扩展,还有 Edge 浏览器本身随机崩溃。我附上帖子链接以便更好地描述我的问题:techcommunity.microsoft.com/t5/discussions/… @diridev,在我的情况下,一旦我们使用 launchWebAuthFlow API 发起登录调用,它就会使浏览器崩溃。 【参考方案1】:

我们终于改了调用,使用chrome.windows.create api发起认证请求

return await global.chrome.windows.create(
    focused: true,
    height : 800,
    width: 800,
    url: authURL
)

我们监听了 chrome 页面 URL 的变化,并从重定向 URI 中解析了令牌,并为 APIS 创建了一个本地令牌。

这里的 authurl 和我们用于 launchWebAuthFlow 的一样

【讨论】:

这更像是一种解决方法,而不是解决问题的方法 您似乎找到了替代解决方案。您可以在 48 小时后将您的答案标记为已接受的答案,此时可以标记。它可以在未来帮助其他社区成员解决类似的问题。感谢您的理解。 @diridev 是的,因为我们的客户无法使用 Microsoft 身份验证流程登录,因此我们不能闲着。我们必须提供替代解决方案。 我们不知道微软什么时候会解决这个问题。 @sobby01 是的,我明白了。我只需要指出让其他用户知道原始问题仍未解决。出于同样的原因,我不会将其标记为已接受的答案。

Ajax 调用在 HTTPS 上被阻止 - Chrome 扩展

】Ajax调用在HTTPS上被阻止-Chrome扩展【英文标题】:AjaxcallblockedonHTTPS-ChromeExtension【发布时间】:2017-09-0821:55:32【问题描述】:我正在编写一个扩展程序,它应该在特定游戏收到更新时通知用户。数据来自MySQL数据库。我进行了ajax... 查看详情

ASP.NET Web API 在来自 Chrome 扩展的并发 AJAX 调用上崩溃

】ASP.NETWebAPI在来自Chrome扩展的并发AJAX调用上崩溃【英文标题】:ASP.NETWebAPIcrashesonconcurrentAJAXcallsfromChromeextension【发布时间】:2019-08-3021:32:54【问题描述】:我有一个网站(ASP.NETMVC),我可以在其中上传两个视频和可以调用ASP.NETWeb... 查看详情

用户脚本与 Chrome 扩展程序 [关闭]

】用户脚本与Chrome扩展程序[关闭]【英文标题】:Userscriptsvs.ChromeExtension[closed]【发布时间】:2012-11-0908:57:59【问题描述】:我正在开发一个扩展,它将读取HTML元素的值,然后对外部网站进行API调用,获取结果并将它们显示在新... 查看详情

如何在 chrome 扩展中实现支付

】如何在chrome扩展中实现支付【英文标题】:Howtoimplementpaymentsinchromeextension【发布时间】:2021-03-1510:28:57【问题描述】:我有一个slim4应用程序,它将使用客户端的firebaseauth提供的JWT令牌来授权用户对某些端点进行ajax调用。客户... 查看详情

通过 Chrome 扩展程序避免跨域策略

】通过Chrome扩展程序避免跨域策略【英文标题】:Avoidcross-originpolicyviaChromeextension【发布时间】:2019-03-2002:34:14【问题描述】:站点A是一个网站,其<iframe>包含站点B。它在带有扩展程序的chrome浏览器上运行。我可以控... 查看详情

Chrome 扩展程序:如何在 chrome 扩展程序更新后删除孤立的脚本

】Chrome扩展程序:如何在chrome扩展程序更新后删除孤立的脚本【英文标题】:Chromeextension:Howtoremoveorphanedscriptafterchromextensionupdate【发布时间】:2019-12-1910:45:25【问题描述】:我有一个带有弹出页面的chrome扩展,它通过简单的一次... 查看详情

在 Chrome 中安装扩展程序

】在Chrome中安装扩展程序【英文标题】:InstallingExtensionsinChrome【发布时间】:2018-03-2315:05:01【问题描述】:我正在使用SelenuimWebdriver在C#的chrome浏览器中加载.CRX扩展文件。有没有办法在chrome浏览器中永久安装.CRX扩展名?我已经... 查看详情

在 Chrome 打包应用程序和 Chrome 扩展程序之间进行通信?

】在Chrome打包应用程序和Chrome扩展程序之间进行通信?【英文标题】:CommunicatingbetweenaChromepackagedappandaChromeextension?【发布时间】:2013-04-0714:36:05【问题描述】:我需要将仅在Chrome打包应用程序中可用的功能(访问syncFileSystem)和... 查看详情

Chrome 在哪里存储扩展程序?

】Chrome在哪里存储扩展程序?【英文标题】:WheredoesChromestoreextensions?【发布时间】:2013-01-1017:17:57【问题描述】:我看过了:C:\\DocumentsandSettings\\username\\LocalSettings\\ApplicationData\\Google\\Chrome\\UserData\\Default\\Extensions对于未打包的扩... 查看详情

如何在隐身模式下启用我的 chrome 扩展程序?

】如何在隐身模式下启用我的chrome扩展程序?【英文标题】:HowcanIenablemychromeextensioninincognitomode?【发布时间】:2013-06-3013:46:53【问题描述】:我为GoogleChrome创建了一个扩展程序,想知道是否可以在隐身模式下启用我的扩展程序... 查看详情

在 Chrome 网络扩展程序中访问和修改 CSSrules

】在Chrome网络扩展程序中访问和修改CSSrules【英文标题】:accessingandmodifyingCSSrulesinaChromewebextension【发布时间】:2019-02-1506:38:45【问题描述】:我正在编写一个用于Firefox、Edge和Chrome的Web扩展,仅使用通用代码(唯一的区别是***命... 查看详情

如何在 Chrome 扩展程序中录制音频?

】如何在Chrome扩展程序中录制音频?【英文标题】:HowtorecordaudioinaChromeExtension?【发布时间】:2011-11-3015:23:52【问题描述】:设置chrome扩展程序以从麦克风录制音频的最简单方法是什么?我看到有一个有效的experimentalspeechinputAPI... 查看详情

mailto 链接在 chrome 扩展弹出窗口中不起作用

】mailto链接在chrome扩展弹出窗口中不起作用【英文标题】:mailtolinknotworkinginchromeextensionpopup【发布时间】:2011-03-1306:28:54【问题描述】:这个问题让我抓狂了2天。我做了一个简单的chrome扩展,它调用一个服务器端程序,该程序... 查看详情

如何在chrome浏览器安装第三方扩展

简单教你·Chrome浏览器如何安装第三方扩展程序谷歌在2012年ChromeV21+开始禁止第三方扩展静默安装,2014年ChromeV30+开始任何非Chrome网上应用店(ChromeWebStore)下载的扩展将自动停用。自己瞎折腾一个Chrome插件crx打包之后拖进chrome://exten... 查看详情

如何在 chrome 扩展程序中获取选项卡通知,以便扩展程序可以在每次新通知到达时显示桌面警报

】如何在chrome扩展程序中获取选项卡通知,以便扩展程序可以在每次新通知到达时显示桌面警报【英文标题】:HowcanIgettabnotificationsinchromeextension,sothattheextensioncanshowdesktopalerteachtimewhennewnotificationarrives【发布时间】:2011-09-2808:22:5... 查看详情

如何在 Chrome 扩展程序中禁用同源策略?

】如何在Chrome扩展程序中禁用同源策略?【英文标题】:HowtodisablesameoriginpolicyinChromeextension?【发布时间】:2011-08-2810:27:27【问题描述】:也许有一些设置可以在扩展上下文中禁用它。因为我正在开发一个扩展,所以我应该有责... 查看详情

自定义 chrome 扩展不启动设备列表

】自定义chrome扩展不启动设备列表【英文标题】:Customchromeextensionnotlaunchingdevicelist【发布时间】:2014-03-0203:09:39【问题描述】:我正在尝试从我正在编写的chrome扩展启动castapi。当我在我的网络服务器上的常规旧HTML文件中运行相... 查看详情

Chrome 扩展程序:不加载源地图

】Chrome扩展程序:不加载源地图【英文标题】:ChromeExtension:Notloadingsource-maps【发布时间】:2019-10-2520:22:12【问题描述】:由于某种原因,我无法在Chrome扩展程序中加载源映射。正在为Chrome扩展加载的文件夹在.js文件旁边有.map。... 查看详情