我正在 NativeScript 2.0 中开发一个应用程序,该应用程序通过Google's Sign-In对用户进行身份验证。
我还有一个检查登录用户的后端。对于我需要一个访问令牌来访问电子邮件和一些配置文件数据,如显示名称和照片(通过https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=<ACCESS_TOKEN_FROM_APP>
)。
我的 Android实施看起来像这样:
var app = require("application");
var context = app.android.context;
var options = new com.google.android.gms.auth.api.signin.GoogleSignInOptions.Builder(com.google.android.gms.auth.api.signin.GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestProfile()
// get access token
.requestServerAuthCode('MY_CLIENT_ID.apps.googleusercontent.com', false)
.build();
在我的活动结果中,GoogleSignInResult告诉我操作不成功(状态代码12501 ):
activity.onActivityResult = function(requestCode, resultCode, data) {
var signInResult = com.google.android.gms.auth.api.Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (!signInResult.isSuccess()) {
// code goes here
// 12501
var statusCode = signInResult.getStatus().getStatusCode();
}
}
我从here了解到,我必须为我的应用创建一个特殊的客户端ID / API密钥,并且必须将google-services.json
包含在我的Android Studio项目的子文件夹中。
在调试环境中我使用了我的主文件夹的debug.keystore
文件中的 SHA-1密钥。
我的问题:
在NativeScript项目中使用Google登录的正确方法是什么?