2016-11-11 128 views
1

我一直在試圖爲我的用戶池用戶訪問AWS資源生成此「身份標識」。但一直不成功。AWS Cognito認證憑證IOS Swift 2.3 - 3(集成用戶池和身份池)

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

    // Override point for customization after application launch. 

    //user pool configuration 
    let serviceConfiguration = AWSServiceConfiguration(
     region: AWSRegionType.USWest2, 
     credentialsProvider: nil) 

    let userPoolConfiguration = AWSCognitoIdentityUserPoolConfiguration(clientId: K.COGNITO_USER_POOL_APP_CLIENT_ID, clientSecret: K.COGNITO_USER_POOL_APP_CLIENT_SECRET, poolId: K.COGNITO_USER_POOL_ID) 

    //create a pool 
    AWSCognitoIdentityUserPool.registerCognitoIdentityUserPoolWithConfiguration(serviceConfiguration, userPoolConfiguration: userPoolConfiguration, forKey: "UserPool") 

    self.pool = AWSCognitoIdentityUserPool(forKey: "UserPool") 
    self.credentialsProvider = AWSCognitoCredentialsProvider(regionType: .USWest2, identityPoolId: K.IDENTITY_POOL_ID, identityProviderManager: self.pool!) 

    let configuration = AWSServiceConfiguration(region: AWSRegionType.USWest2, credentialsProvider: self.credentialsProvider) 

    AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration 

    self.pool!.delegate = self 
    self.user = self.pool!.currentUser() 

    return true 

} 

這是所有在Integrating User pool with Cognito(Swift) Documentation.

給出而Android代碼說,有關傳遞「idToken」 &用戶羣中的URL登錄地圖,還有在SWIFT代碼中沒有提到這樣的事情。

到目前爲止,在用戶登錄應用程序後,我在Xcode的日誌窗口中獲得「AccessToken」&「IdToken」。

我需要做些什麼才能獲得身份驗證身份?糾正我,如果我做錯了..謝謝。

回答

1

你是對的,這些文檔對身份池和用戶池並沒有太大的幫助,並且使它們集成在一起。

我的建議是,而不是依賴其他文檔或示例,使用AWS Mobile Hub。如果您使用該站點,它將下載一個完整的Swift Xcode項目,該項目可以正確完成用戶池和另一個身份提供程序(Google或Facebook)的集成。用戶池集成是移動集線器的一項新功能。

此外,移動中心有一個很好的下載應用程序體系結構,將身份管理與登錄管理分開。

但是,如果你想繼續通過這個使用文檔記錄下來,下面的一組備註應該有所幫助。加上以下幾點要點。

1)如果你使用的SDK你沒有管理令牌,該SDK得到保持和你交換令牌。

2)所有你需要做的是正確地配置您的用戶池,正確地配置您的IAM,並調用SDK調用的短序列(概述如下)。移動中心所做的一件偉大的事情就是一次爲你準備好所有的東西,讓你在學習的時候修改和發展它。

3)調用的短序列是: - 使用戶池 - 做一個身份池 - 使用戶池identityProviderManager爲您服務配置 (注:你已經做了一切之上,因此所有你需要的是執行以下步驟) - 執行get身份API調用(這樣做,當你做「獲取會話」 SDK調用 - 執行GetCredentialsForIdentity API調用(當你這樣做的「資格證書」這樣做SDK調用)

在這一點上,你將有憑據,並訪問基於您的登錄(認證)狀態下,AWS服務的能力d IAM中的任何相關規則。

有一個(我認爲)在這些筆記有幫助的說明:在庫notes on using cognito and user pools

另外,也有與身份庫的用戶池的共同努力,包括註冊一個例子,忘記密碼等,幷包括能力做身份合併。(Mobile Hub中的新用戶池代碼現在可以很好地完成一些操作(截至4天前添加用戶池代碼時),但尚未完成身份合併)。

希望這會有所幫助

相關問題