Android-让用户登录AWS Cognito

时间:2016-12-14 22:43:36

标签: android amazon-web-services

我在用我的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池可能存在问题,因此我更改了设备选项以始终记住用户设备,但问题并未消失。

1 个答案:

答案 0 :(得分:0)

嗨GrzegorzBrzęczyszczykiewicz,

如果在用户之前成功登录后使用 user.getUserId(); 创建了引用的CognitoUser对象,

CognitoUser user = AppHelper.getPool().getCurrentUser();将始终返回userid。

您所看到的行为的解释可能是user已更改为引用未设置为任何用户的CognitoUser对象。在Android设备上清除应用数据后执行CognitoUser user = AppHelper.getPool().getCurrentUser();时,可能会发生这种情况。

您能否提供有关您的应用的更多详细信息,以便更好地了解该问题?当应用执行user.getSessionInBackground(authenticationHandler);时,您是否能够成功登录?