Zat*_*tes 5 android amazon-cognito google-signin aws-amplify
我正在尝试为我的 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 void onError(Exception e) {
Log.e(TAG, "sign-in error GOOGLE", e);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Caused by: com.amazonaws.services.cognitoidentity.model.NotAuthorizedException: Token is not from a supported provider of this identity pool. (Service: AmazonCognitoIdentity; Status Code: 400; Error Code: NotAuthorizedException; Request ID: 98936aed-df1b-4849-bc03-9eb5edc364e8)
我已经三重检查了我的 Cognito 身份池身份验证提供程序 Google+:Google 客户端 ID,它与 Google API 控制台提供的 ID 匹配。
有没有我遗漏的东西,也许在 Cognito 用户池中?我能找到的所有教程都是针对托管 UI 的,是否 federatedSignIn() 不能用于谷歌登录?
谢谢!
| 归档时间: |
|
| 查看次数: |
790 次 |
| 最近记录: |