Я не знаю, почему AWS Cognito не работает, когда я использую вход в социальную сеть, то есть, провайдера Google.Я установил все необходимые правила в конфигурации amplify
, включил провайдера Google, а также настроил awsconfiguration.json
.Когда я вхожу, используя электронную почту или имя пользователя, что является обычным логином, используя пароль, все в порядкеПользователи сохраняются в пулы пользователей:
Но когда я вхожу в систему с помощью Google, ни один пользователь не сохраняется.Кажется, информация для входа сохраняется только в SharedPreferences
, а не в облако.Вот доказательство:
Я не знаю почему.Вот мой код для входа в систему:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
RESPONSE_SUCCESS_GOOGLE_LOGIN -> {
try {
val task = GoogleSignIn.getSignedInAccountFromIntent(data)
val account = task.getResult(ApiException::class.java)!!
AWSMobileClient.getInstance().federatedSignIn(IdentityProvider.GOOGLE.toString(), account.idToken, object : Callback<UserStateDetails> {
override fun onResult(details: UserStateDetails) {
// onResult is called, but the user information not saved to the cloud
}
override fun onError(e: Exception) {
Log.e(TAG, "sign-in error", e)
}
})
} catch (e: ApiException) {
Log.w(TAG, "signInResult:failed code=" + e.statusCode)
}
}
}
}
Вы можете проверить случайную строку, которая вообще не является корректным токеном JWT:
val randomJwt = "239rwienaffe"
AWSMobileClient.getInstance().federatedSignIn(IdentityProvider.GOOGLE.toString(), randomJwt, object : Callback<UserStateDetails> {
Затем вызывается onResult
и сообщить, что логинэто успех.Довольно забавно, не правда ли?Я не знаю, как правильно реализовать вход в Google с помощью AWS Cognito.Изучать AWS чрезвычайно сложно, чем Firebase.
Есть ли у вас представление или шаги, чтобы правильно войти в систему с провайдером Google?Нужно ли реализовывать что-то сложное для достижения этой простой функции?Например, используя комбинацию API Gateway, Lambda, IAM и т. Д.