Android-保持用户登录到AWS Cognito
问题描述:
我在保持用户在我的Android应用程序中登录到AWS Cognito时遇到了问题。这是检查该代码:Android-保持用户登录到AWS Cognito
CognitoUser user = AppHelper.getPool().getCurrentUser();
username = user.getUserId();
if(username != null) {
AppHelper.setUser(username);
inUsername.setText(user.getUserId());
user.getSessionInBackground(authenticationHandler);
}
的问题是,有时(我一段时间后猜的)应用程序忘记了用户和代码:
user.getUserId();
返回null。当然,这是从来没有空:从示例应用程序的代码
AppHelper.getPool().getCurrentUser();
我的代码基础,所以我不明白为什么这是行不通的。我认为Cognito池可能存在问题,因此我更改了设备选项以始终记住用户设备,但问题没有消失。
答
喜格热戈日Brzęczyszczykiewicz,
user.getUserId();
总是会返回用户ID,如果引用CognitoUser对象与CognitoUser user = AppHelper.getPool().getCurrentUser();
创建之后,用户以前成功登录帐户。
对您所看到的行为的解释可能是user
已更改为引用未设置给任何用户的CognitoUser对象。在Android设备上清除应用数据后执行CognitoUser user = AppHelper.getPool().getCurrentUser();
时可能会发生这种情况。
你可以提供关于你的应用的更多细节,以更好地理解这个问题吗?当应用执行user.getSessionInBackground(authenticationHandler);
时,您能否成功登录?
是的,它确实处理好。唯一的问题是如何登录一小时后会话已过期的用户,但他返回到应用程序。 –