我在用我的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池可能存在问题,因此我更改了设备选项以始终记住用户设备,但问题并未消失。
答案 0 :(得分:0)
嗨GrzegorzBrzęczyszczykiewicz,
如果在用户之前成功登录后使用 user.getUserId();
创建了引用的CognitoUser对象, CognitoUser user = AppHelper.getPool().getCurrentUser();
将始终返回userid。
您所看到的行为的解释可能是user
已更改为引用未设置为任何用户的CognitoUser对象。在Android设备上清除应用数据后执行CognitoUser user = AppHelper.getPool().getCurrentUser();
时,可能会发生这种情况。
您能否提供有关您的应用的更多详细信息,以便更好地了解该问题?当应用执行user.getSessionInBackground(authenticationHandler);
时,您是否能够成功登录?