我想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 –