2016-08-18 40 views
0

我正在使用Android中的Amazon Cognito服务通过电子邮件和密码进行用户注册。我成功注册,登录并忘记密码流。如何使用电子邮件和密码在Android登录时获取cognito用户ID

我得到的认证用户ID与下面的代码,问题是我得到相同的认证用户ID,我第一次登录时收到的其他用户也。即,当我登录下一次用不同的凭据,我发现了第一个用户相同cognito用户ID:

 credentialsProvider = new CognitoCachingCredentialsProvider(
       getApplicationContext(), // Context 
       "us-east-1:2ce7b2c2-898f-4a26-9066-d4feff8ebfe4", //Identity Pool ID 
       Regions.US_EAST_1 // Region 
     ); 

     Observable.create(new Observable.OnSubscribe<String>() { 
      @Override 
      public void call(Subscriber<? super String> subscriber) { 
       identityId = credentialsProvider.getIdentityId();      
      } 
     }) 
       .subscribeOn(Schedulers.newThread()) 
       .observeOn(AndroidSchedulers.mainThread()) 
       .subscribe(); 
    } 

请我的问题承担,因为我首发这么帮助并分享如何将这些cognito想法用户ID工作

  1. 我相信Cognito用户ID仍然为每个用​​户唯一
  2. Cognito用户ID不改变登录时像IOS /网络不同的设备了。

回答

0

好像你正在获取设备上的缓存的身份标识和凭证。你可以请尝试调用credentialsProvider.clear()当一个新的用户登录或注销用户。这应该清除缓存的身份标识。

+0

可能你是对的,但有一点是我没有得到相同的Cognito用户ID,当我的Android应用和iOS应用登录相同的用户时。我试图测试用户在不同平台(Android/iOS)上的ID是否相同。即使我在Android应用中清除缓存时,同一用户的ID也不同(不匹配首次登录时收到的相同ID)。 – Durga

相关问题