当我们关闭 android 应用程序时,AWS 身份验证会话无法保持活动状态
AWS auth seesion not keeping alive when we close the android application
我正在使用 AWS Amplify SDK 进行 Cognito 集成。实际上,我根据可用的文档成功集成了用户登录和注册流程 here。但是,在成功登录后,如果我们重新启动应用程序,则用户会话不会持续存在。 Amplify.Auth.fetchAuthSession()
总是 returns isSignedIn
作为 false
。我不知道我在哪里出了问题。请在下面找到 'sign in' 片段。
fun onSingIn(view: View) {
Amplify.Auth.signIn(
email.value,
password.value,
{ result ->
Log.i(TAG, if (result.isSignInComplete) "Sign in succeeded" else "Sign in not complete")
if (result.isSignInComplete) {
view.context.let {
it.startActivity(Intent(it, FeedActivity::class.java))
signInStatus.postValue(true)
}
}
},
{ error ->
view.context.let {
var message = it.getString(R.string.something_went_wrong)
when (error.cause) {
is UserNotConfirmedException ->{
email.value?.let {emailAddress ->
val direction =LoginFragmentDirections
.actionLoginFragmentToEmailVerificationCodeFragment(emailAddress)
view.findNavController().navigate(direction)
}
}
is UserNotFoundException ->
message = it.getString(R.string.credentilas_incorrect)
else->
viewModelScope.launch(Dispatchers.Main) { it.showToast(message) }
}
Log.e(TAG, error.toString())
}
}
)
}
问题终于解决了。问题是相关的用户池应用程序客户端设置配置。 我没有在应用程序客户端设置中检查身份提供商。选择 'Cognito User Pool' 作为身份提供者后,登录会话保持有效,没有任何问题。希望这个回答能对遇到类似问题的人有所帮助。
我正在使用 AWS Amplify SDK 进行 Cognito 集成。实际上,我根据可用的文档成功集成了用户登录和注册流程 here。但是,在成功登录后,如果我们重新启动应用程序,则用户会话不会持续存在。 Amplify.Auth.fetchAuthSession()
总是 returns isSignedIn
作为 false
。我不知道我在哪里出了问题。请在下面找到 'sign in' 片段。
fun onSingIn(view: View) {
Amplify.Auth.signIn(
email.value,
password.value,
{ result ->
Log.i(TAG, if (result.isSignInComplete) "Sign in succeeded" else "Sign in not complete")
if (result.isSignInComplete) {
view.context.let {
it.startActivity(Intent(it, FeedActivity::class.java))
signInStatus.postValue(true)
}
}
},
{ error ->
view.context.let {
var message = it.getString(R.string.something_went_wrong)
when (error.cause) {
is UserNotConfirmedException ->{
email.value?.let {emailAddress ->
val direction =LoginFragmentDirections
.actionLoginFragmentToEmailVerificationCodeFragment(emailAddress)
view.findNavController().navigate(direction)
}
}
is UserNotFoundException ->
message = it.getString(R.string.credentilas_incorrect)
else->
viewModelScope.launch(Dispatchers.Main) { it.showToast(message) }
}
Log.e(TAG, error.toString())
}
}
)
}
问题终于解决了。问题是相关的用户池应用程序客户端设置配置。 我没有在应用程序客户端设置中检查身份提供商。选择 'Cognito User Pool' 作为身份提供者后,登录会话保持有效,没有任何问题。希望这个回答能对遇到类似问题的人有所帮助。