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

iOS Swift集成Discord OAuth2遇重定向URI不支持问题求助

排查iOS Swift集成Discord OAuth2重定向URI错误的步骤

1. 严格对齐重定向URI的所有配置

  • 确保Discord开发者门户里的重定向URI和Xcode、OAuth请求里的完全一致,包括大小写、路径、特殊字符。比如你定义的Scheme是myappdiscord,重定向URI必须写成myappdiscord://callback这类完整格式,不能只填myappdiscord://或者漏写路径。
  • 注意:Discord不接受不完整的URI,门户里添加的每一条重定向URI都要和实际请求的参数完全匹配。

2. 验证Xcode的URL Scheme配置

  • 打开Info.plist,检查CFBundleURLTypes数组的配置,确保CFBundleURLSchemes里的Scheme没有多余空格、拼写错误,示例配置如下:
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>myuniquediscordscheme</string>
            </array>
            <key>CFBundleURLName</key>
            <string>com.yourcompany.yourapp</string>
        </dict>
    </array>
    
  • 排查是否有其他URL Type使用了同一个Scheme,导致系统无法正确识别回调目标。

3. 核对OAuth2请求参数

  • 用Discord OAuth2 Generator生成链接时,redirect_uri参数必须和门户里添加的完全一致,不能有任何差异。
  • 确认请求的scope参数明确包含identify,格式为scope=identify,没有拼写错误。

4. 检查ASWebAuthenticationSession初始化

  • 初始化会话时,callbackURLScheme只需要填Scheme本身,不能带路径。比如:
    let authURL = URL(string: "你的Discord认证链接")!
    let session = ASWebAuthenticationSession(url: authURL, callbackURLScheme: "myuniquediscordscheme") { callbackURL, error in
        // 处理回调逻辑
    }
    session.start()
    
  • 这里如果填了完整的URI(比如myuniquediscordscheme://callback),会导致回调匹配失败。

5. 清理缓存后重新测试

  • 卸载设备/模拟器上的App,执行Xcode的Product > Clean Build Folder清理编译缓存,重新编译安装。
  • 先在Discord门户移除旧的重定向URI,保存后再重新添加正确的,等待几分钟再发起认证请求,避免Discord缓存旧配置。

6. 检查Discord应用状态

  • 确认应用在Discord门户的OAuth2设置里是正常状态,公开应用请勾选对应选项,私有应用需确保授权用户在允许范围内。
  • 检查门户的OAuth2 > Redirects列表,确认正确的重定向URI已添加并保存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 20:41:03