2015-11-07 96 views
1

我知道在iOS中使用DynamoDB最好的辦法是Cognito如下面的代碼:如何在沒有Cognito的情況下驗證dynamoDB?

AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] 
                  initWithRegionType:AWSRegionUSEast1 
                  identityPoolId:@"pool_id"]; 

    AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:credentialsProvider]; 

問題是Cognito不是由中國AWS服務支持。爲了使用DynamoDB,我想我應該使用AWSCredentialsProvider協議來實現自定義提供程序。這樣對嗎?

我用第三方社交網絡(QQ)實現了登錄過程。我有由QQ生成的帳戶ID和accessToken。

問題是如何讓用戶通過QQ賬號和訪問令牌訪問DynamoDB?

回答

1

當實現自己的AWSCredentialsProvider,我推薦以下方法:

  1. 生成訪問密鑰,密鑰和您的服務器上的會話令牌。您有許多語言選項,包括Java,.NET,PHP,Ruby,Python和Node.js.
  2. 通過符合AWSCredentialsProvider來實施您的憑證提供程序。以AWSWebIdentityCredentialsProviderAWSCognitoCredentialsProvider的實現爲例。此證書提供者應該:
    • 從您的服務器檢索access key,secret keysession key
    • 在本地保留,直到它們到期。
    • 請求時返回憑據。
    • 如果服務器過期,請從服務器重新檢索它們。
    • 調用- refresh時,啓動憑據刷新過程。
+0

有沒有辦法在沒有我的自定義服務器的iOS上生成令牌?我沒有經驗來編寫服務器代碼。我查看了AWS文檔並找到了AWS安全令牌服務(STS)。沒有我的服務器,STS是否可以用來生成令牌? – NOrder

+0

如果AWS STS [Web Identity Federation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html)適合您的用例,則可以使用移動設備上的AWS STS。否則,服務器方法是靈活和安全的方式來處理這個問題。 –

相關問題