我想stackoverflow不需要建议或建议,所以我会尝试格式化答案作为我认为你问的问题的答案,即“Cognit系统中的角色是什么以及如何与他们一起实施我的应用“。 (这是我一直试图回答自己一个月或更长时间的问题)。我的答案用IOS SDK API来描述,但通常会适用。
Cognito身份将发给您“IdentityId的”,但不管理与用户名或密码等这些身份的认证
所以,如果你想对活动的任何限制或控制,就需要某种形式的注册过程。这可以使用Facebook身份,Google+身份或您自己的身份(称为BYOI带来您自己的身份)或新的Cognito用户池(由AWS提供身份提供商)。 (所有这些“身份提供商”都在幕后提供某种令牌和身份提供商名称)。这些都没有提供IdentityId,这是Cognito Identity的工作。
Cognito凭据提供连接一CognitoIdentity IdentityId在AWS的IAM角色,这样就可以暂时获得AWS凭据的IdentityId,并使用S3,λ,DynamoDb等
所以不使用用户名和密码,手段您没有任何身份验证,但您仍然可以拥有身份,Cognito身份会维护它们,并且它们将是唯一的(遵循移动设备)。但是用户将无法移动到其他设备并保持相同的身份,因为他/她无法告知Cognito他/她的身份。这就是身份提供者所做的事情(并且他们通过询问密码/ mfa等来检查你是不是在撒谎)。
API和SDK的命名很难理解,但基本上是以CognitoIdentity开头而没有单词的类。提供程序意味着组件是联合身份系统的一部分,以CognitoIdentityProvider开头的类是验证设备/用户是谁/它说什么。 CognitoIdentityProviderManager返回一个CognitoIdentityProvider名称(如“graph.facebook.com”或cognito-idp.us-east-1。amazonaws.com/)和令牌(以及OpenID Connect令牌(OIDC)),让CognitoIdentity系统知道该用户已登录(它通过返回登录字典[name:token]到CognitoIdentity。场景验证此令牌与公开识别连接服务器或其他服务器(IE脸谱)。
所以对于你的问题是,你怎么来唯一地标识用户(我不知道WhatsApp的)。
我的应用程序还具有基于OTP验证手机号码的登录功能,因为我不能给用户名留白,我也使用手机号码作为用户名。 – desidigitalnomad
我使用手机号码和国家代码带+ +,所以用户名很容易建立任何用户选择国家和provid他的手机号码。例如。 + 919699XXX02到用户名:9196999XXX02 –