我正在尝试为我的 android 应用实现登录到谷歌。
我目前通过 AWSMobileClient.getInstance().federatedSignIn(...) 实现了使用 Facebook 登录。我没有使用托管 UI。
我通过请求从谷歌获得令牌
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
GoogleSignInClient mGoogleSignInClient = GoogleSignIn.getClient(requireActivity(), gso);
googleSignInButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, RC_SIGN_IN);
}
});
Run Code Online (Sandbox Code Playgroud)
一个谷歌成功认证,我调用以下方法:
private void federatedGoogle(GoogleSignInAccount account) {
// Need to create federated sign in from aws amplify
Log.d(TAG, "federateGoogle: " + account.getIdToken());
AWSMobileClient.getInstance().federatedSignIn(IdentityProvider.GOOGLE.toString(), account.getIdToken(), new Callback<UserStateDetails>() {
@Override
public void onResult(final UserStateDetails userStateDetails) {
Log.d(TAG, "AWS Federated GOOGLE");
}
@Override
public …Run Code Online (Sandbox Code Playgroud)