You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cordova应用OAuth重定向至localhost时出现net::ERR_CONNECTION_REFUSED错误

问题根源

Cordova 默认以 file:// 协议加载本地资源,并没有内置运行一个监听 https://localhost/ 的HTTP服务。你配置的重定向地址指向了一个不存在的本地服务,所以会触发连接拒绝错误,进而导致应用崩溃。

解决方案

1. 改用Cordova自定义URL scheme作为重定向地址

这是Cordova处理OAuth回调的标准方案,无需依赖localhost服务:

  • 在config.xml中添加自定义URL scheme,示例:
    <!-- 通用配置 -->
    <universal-links>
        <host name="callback" scheme="com.your.app.id" />
    </universal-links>
    
    <!-- Android 平台单独配置 -->
    <platform name="android">
        <config-file parent="/manifest/application/activity[@android:name='MainActivity']" target="AndroidManifest.xml">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="com.your.app.id" />
            </intent-filter>
        </config-file>
    </platform>
    
    <!-- iOS 平台单独配置 -->
    <platform name="ios">
        <preference name="URL_SCHEME" value="com.your.app.id" />
    </platform>
    
  • 将MS B2C的重定向URI设置为com.your.app.id://oauth-callback,然后在Cordova中通过window.addEventListener('urlopen', ...)监听该URL的打开事件,从中提取OAuth授权码完成登录流程。

2. 使用成熟的OAuth插件简化流程

直接用适配MS B2C的Cordova插件处理登录逻辑,避免手动配置重定向的坑:

  • 比如cordova-plugin-msal(微软官方适配的插件),安装后只需配置租户ID、客户端ID、重定向URI等参数,插件会自动处理浏览器跳转、回调拦截和令牌获取,无需手动处理localhost相关配置。

3. 若坚持用localhost,需启动本地HTTP服务

如果一定要依赖https://localhost/,需要在Cordova中启动本地HTTP服务,推荐用cordova-plugin-httpd插件:

  • 安装插件后,在应用启动时初始化服务:
    const httpd = cordova.plugins.CordovaHttpd;
    httpd.startServer({
        www_root: './www',
        port: 8443,
        ssl_key: './ssl/server.key',
        ssl_cert: './ssl/server.crt'
    }, (addr) => {
        // 服务启动成功,此时重定向地址可设为https://localhost:8443/callback
    }, (err) => {
        console.error('本地服务启动失败:', err);
    });
    
    注意:MS B2C要求重定向地址为HTTPS,所以需要生成自签名证书并配置,这个流程繁琐且容易出现证书信任问题,不推荐作为首选方案。

内容的提问来源于stack exchange,提问作者cdmdotnet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 04:15:55