无法在 Electron 应用程序中使用 Discord OAuth2

Posted

技术标签:

【中文标题】无法在 Electron 应用程序中使用 Discord OAuth2【英文标题】:Can't use Discord OAuth2 in Electron application 【发布时间】:2020-01-19 02:38:35 【问题描述】:

我正在尝试创建一个 Electron 应用程序(使用 Electron.net 和 MVC),并使用 Discord 的 OAuth2 进行用户登录。但是,在加载 OAuth2 页面时,Discord 认为我正在使用损坏的 Discord 安装。我认为这是因为 Discord 桌面应用程序也使用了 Electron。不使用 Electron 时,链接可以正常打开。

到目前为止,我已尝试更改 Electron 使用的 User-Agent(在 Electron 启动代码中和直接在与 javascript 的链接上),因为我相信这就是 Discord 将应用程序识别为使用 Electron 的方式,但是这没有奏效。有谁知道 Discord 可能会如何解决我正在使用 Electron 以及如何解决它?

Not sure if it adds much, but here's a screenshot of the error I get when trying to get to the Discord login page.

【问题讨论】:

【参考方案1】:

我不得不处理同样的问题,所以我在加载时启用了 devtools。我在这里(https://discordapp.com/assets/db6c3ddb51620cee5d94.js)找到了这个脚本,他们在其中处理应用程序事件,我意识到他们正在加载节点模块,这在浏览器设置中是不可用的。解决方案是在窗口选项中设置nodeIntegration: false,如下所示:

authWindow = new BrowserWindow(
        width: 800,
        height: 500,
        frame: false,
        webPreferences: 
            nodeIntegration: false
        
);

【讨论】:

以上是关于无法在 Electron 应用程序中使用 Discord OAuth2的主要内容,如果未能解决你的问题,请参考以下文章

无法为 Electron 构建 .exe

Electron 和 TypeScript:“fs”无法解析

在 Electron 应用程序中使用 console.log()

使用 Electron 在 Angular 2 应用程序中访问文件系统

Electron:无法加载预加载脚本:Resources/app.asar/src/preload.js

如何在 Electron 中显示 RTSP 流?