基于Flutter解决googlesapi_auth的loopback flow错误方案咨询
基于Flutter解决Google禁用loopback flow导致googleapis_auth认证失败的方案咨询
我想咨询是否有基于Flutter的解决方案,解决因Google禁用loopback flow,导致使用googleapis_auth包认证Google APIs时出现的错误。
背景信息
- 我的Flutter应用需向Google Drive上传和下载文件,使用了googleapis、googleapis_auth和url_launcher三个包。
- 通过googleapis_auth包的
clientViaUserConsent()函数获取已认证的HTTP client(并缓存access token供后续复用)。 - 借助该HTTP client,使用googleapis包的构建向Google Drive发起文件上传/下载请求。
- 调用
clientViaUserConsent()时,传入从Google Cloud Console获取的OAuth client id及所需的Google Drive scopes。 clientViaUserConsent()的工作机制:第三个参数传入回调函数,当用户需认证时,该函数接收授权表单URL,我通过url_launcher包的launchUrl()启动该URL;认证成功后,函数才会返回所需的已认证HTTP client实例。
示例代码
var client = await clientViaUserConsent( clientId, scopes, (String urlConsentForm) async { await launchUrl(Uri.parse(urlConsentForm)); }, );
该代码在2022年前可正常运行,但上周使用时出现了loopback flow错误。查阅文档得知需使用google_sign_in包,但该包无法返回已认证HTTP client,我希望找到无需重构现有代码的方案,具体希望继续使用googleapis的Dart构建,而非Google API规范的REST构建。恳请各位提供解决方案,万分感谢。
内容的提问来源于stack exchange,提问作者Jose
相关产品推荐
相关产品推荐

