Flutter中使用FlutterWebAuth2无响应,疑callbackUrlScheme配置错误求助
FlutterWebAuth2 无法接收Kakao授权响应的解决办法
核心问题分析
你用http作为callbackUrlScheme是错误的——http/https是通用网络协议,系统无法识别将这类回调路由到你的Flutter应用,这是收不到响应的主要原因。
具体修复步骤
1. 更换自定义回调Scheme
选择一个专属的自定义Scheme(比如kakao-auth-app,避免和其他应用冲突),同时修改重定向URI:
Future<void> signIn() async { final url = Uri.https('kauth.kakao.com', '/oauth/authorize', { 'client_id' : '7f8c9995a36f55554348032c83b16b96', // 替换为自定义Scheme开头的重定向URI 'redirect_uri' : 'kakao-auth-app://oauth/callback', 'response_type': 'code', }); final result = await FlutterWebAuth2.authenticate( url: url.toString(), // 这里填自定义的Scheme,不要带:// callbackUrlScheme : "kakao-auth-app"); print(result); final body = Uri.parse(result).queryParameters; print(body); }
2. 在Kakao开发者后台配置合法重定向URI
登录Kakao开发者平台,找到你的应用,在「产品」→「Kakao Login」→「重定向URI」中,添加刚才的kakao-auth-app://oauth/callback,保存配置。
3. 配置Flutter各平台的Scheme支持
Android端
打开android/app/src/main/AndroidManifest.xml,在<activity>标签内添加如下intent-filter:
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- 匹配自定义Scheme --> <data android:scheme="kakao-auth-app" /> </intent-filter>
iOS端
打开ios/Runner/Info.plist,添加以下配置:
<!-- 允许应用处理自定义Scheme --> <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>kakao-auth-app</string> </array> </dict> </array> <!-- 允许应用打开Kakao的授权页面 --> <key>LSApplicationQueriesSchemes</key> <array> <string>kakao</string> <string>kakaotalk</string> </array>
4. 额外检查点
- 确认
client_id是Kakao应用的正确REST API密钥 - 测试前重启Flutter应用和模拟器/真机,确保配置生效
- 如果仍有问题,检查设备是否禁用了应用的浏览器跳转权限
内容的提问来源于stack exchange,提问作者씨마스터300
相关产品推荐
相关产品推荐

