[英]google_sign_in Flutter plugin always returns null serverAccessCode
我有当前的身份验证工作流程
我用 Android SDK 在原始 Java 中完成了这一切,但 Flutter 似乎要好得多。 但是现在在 android 上使用google_sign_in
插件时,我无法再检索 serverAuthCore,这个插件只想一直返回 null。
我正在使用为 Android 指定的客户端 ID,但是,我也测试了由 google 自动生成的 WebApplication,但这是同样的问题(Null serverAutHCode)
这是我目前正在使用的代码:
/// Provides the `GoogleSignIn` class
import 'package:google_sign_in/google_sign_in.dart';
class GoogleLoginPage extends StatefulWidget {
final String name = "Logging in with google.";
late GoogleSignIn _googleSignIn;
GoogleLoginPage() : super() {
_googleSignIn = GoogleSignIn(
scopes: ['https://www.googleapis.com/auth/userinfo.email',
'https://www.googleapis.com/auth/userinfo.profile'],
serverClientId: "XX-XXX.apps.googleusercontent.com"
);
}
Future<void> fetchAuthToken() async {
try {
var response = await _googleSignIn.signIn();
log(response?.serverAuthCode ?? "No server auth code");
_googleSignIn.signOut();
} catch (error) {
print("ERR");
print(error);
}
}
@override
State<GoogleLoginPage> createState() => GoogleLoginState();
}
这段代码的输出是: [log] No server auth code
问题:
难道我做错了什么? 如前所述,这在我使用 google play services SDK 的 java 项目上 100% 有效,所以我知道这与我的 google 控制台配置无关。
好的,所以我发现了问题:
似乎默认情况下,用于颤振的谷歌登录插件来自旧版本(如果我没记错的话它是 20.0.5)
我只是将版本更改为最新版本:
'com.google.android.gms:play-services-auth:20.2.0'
您可以通过编辑项目的 build.gradle 来做到这一点(在 IntelliJ 中,您打开 build.gradle 并单击右上角的“在 android studio 中打开以进行编辑”,从那里您需要找到 google_sign_in 的 gradle 文件,然后更改在那里导入,记得在关闭之前点击android studio右上角的同步)
我开始正常接收我的 serverAuthCode,干杯!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.