2017-05-05 19 views
0

私はAmazon MobileHubを使用しているiOSアプリケーションを構築しています。現在、それはCognitoと関連付けられており、サインアップとサインインのフローはうまく機能します。AWS Cognitoはユーザーを確認して取得します

私が達成しようとしているのは、1人のユーザーが別のユーザーをという友人に追加することです。です。可能にするには、特定のユーザー名を持つユーザーが存在するかどうかを確認し、存在する場合は、そのユーザーの名前などの属性を取得する必要があります。

get user> get detailsの機能を使用しようとしましたが、エラー認証の代理人が設定されていません

ここで私が使用したコードです:私は考え

var pool: AWSCognitoIdentityUserPool? 
let user = pool?.getUser(usernameField.text!) 

self.pool = AWSCognitoIdentityUserPool.init(forKey: AWSCognitoUserPoolsSignInProviderKey) 

user?.getDetails().continueWith { (task: AWSTask<AWSCognitoIdentityUserGetDetailsResponse>) -> Any? in 
    if let error = task.error as NSError? { 
    print("ERROR: " + error.localizedDescription) 
    return "" 
    } 

    print(task.result) 
    return "" 
} 

アプローチは、ユーザー名と私はDynamoDBのにアクセスし、そこにアクセスしたい属性を格納することでしたが、それだけで二重の不要なエントリを作成します。

答えて

0

問題は、ユーザー属性が一般に公開されていないことになります。サインインしたユーザーだけがGetUserを呼び出すことができます。バックエンドプロセスの場合、AdminGetUser操作でこれを行うことができますが、これはクライアント側になりますので、お勧めしません。これを回避するための唯一の真の方法は、最終的に記事の一番下に提案したことをすることです。

関連する問題