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

Flutter服务端Apple登录报错:client_id不匹配

解决Apple登录授权码验证时的client_id mismatch问题

问题原因

你在移动端调用sign_in_with_apple时错误复用了Web端的Service ID作为clientId。Apple登录中,原生移动端应用必须使用App ID而非Service ID,Service ID仅用于Web/网页端登录场景。这就导致授权码是由App ID签发的,但你用Service ID去验证,自然会出现不匹配错误。

解决方案

  1. 修改移动端代码的clientId
    移除webAuthenticationOptions(该配置仅针对Web端场景),将clientId替换为你的App ID com.website.login,原生移动端的正确调用方式如下:

    credentials = await SignInWithApple.getAppleIDCredential(
      scopes: scopes,
      clientId: 'com.website.login', // 替换为移动端App ID
      state: state,
    );
    
  2. 确认Apple开发者后台配置

    • 确保你的App ID(com.website.login)已开启「Sign In with Apple」功能
    • 确认你用于生成授权码的密钥,已关联该App ID的Sign In with Apple服务
  3. 服务端验证时匹配对应clientId
    服务端验证授权码时,要根据登录场景使用对应的clientId:

    • 移动端登录的授权码,用App ID com.website.login验证
    • Web端登录的授权码,用Service ID com.website.service.login验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:50:26