【发布时间】:2019-02-20 16:39:38
【问题描述】:
请我尝试使用插件google_sign_in plugin 在我的颤振应用程序上实现社交身份验证。它在客户端正常工作并检索用户的帐户详细信息。
我的问题是我想将用户保存在我的数据库中,所以我需要验证在服务器端获得的id_token。我尝试使用服务器端的 google API 库执行此操作,如 here 所示,但我得到了无效的令牌结果。我终于决定尝试tokeninfo端点https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=<my_token>,它应该返回包含用户详细信息和其他信息的正文的200响应,但我收到正文{"error_description": "Invalid Value"}的400响应。
我使用 jwt.io 对令牌进行了解码,以确保它不是过期的令牌并且令牌仍然非常有效。
这是我在 Flutter 上用来获取 id_token 的 google_sign_in 代码。
GoogleSignIn _googleSignIn = new GoogleSignIn(
scopes: <String>[
'profile',
'email',
'https://www.googleapis.com/auth/contacts.readonly',
],
);
Future<Null> _handleSignIn() async {
try {
_googleSignIn.signIn().then((result){
result.authentication.then((googleKey){
print(googleKey.accessToken);
print(googleKey.idToken);
print(_googleSignIn.currentUser.displayName);
}).catchError((err){
print('inner error');
});
}).catchError((err){
print('error occured');
});
print('signed in .....');
} catch (error) {
print(error);
}
}
任何帮助将不胜感激。
【问题讨论】:
-
同样的问题,你找到答案了吗?
-
不。当我创建一个不同的项目时工作正常。仍然无法说出确切的原因。
-
@AntonShkurenko 我的问题是从命令行复制代码
-
你找到解决办法了吗?
标签: dart flutter google-signin