2017-04-07 2 views
0

私はこれを現在利用可能にする方法を一日中探してきました。ロールでAWS-Cognitoのユーザーをフィルタリングする

私のユーザープール、John AdminとJim Userに2人のユーザーがいるとします。私はJohn Adminにアクセスできるが、Jim UserにはアクセスしたくないView Controllerを持っています。問題は、私のアプリケーションでJohnとJimを区別する方法がわからないことです。

ジョンの管理者が私の管理者グループ/ロールにいるが、ジムがそうでないことを知る方法はありますか?

編集:ユーザー属性を尋ねる は私を与えた:あなたがその役割によって、ユーザーを区別することができますいくつかのプロパティが含まれている必要があり

{"UserAttributes": [ 
    { "Name": "sub", "Value": "NUMBERS"}, 
    { "Name": "email_verified", "Value": "true"}, 
    { "Name": "phone_number_verified", "Value": "false"}, 
    { "Name": "phone_number", "Value": "NUMBERS"}, 
    { "Name": "email", "Value": "EMAIL"}], 
"Username": "johnadmin"} 

答えて

1

IdentityIDは私が思ったように埋め込まれたグループを表示しなかったので、

var pool: AWSCognitoIdentityUserPool? 
var user: AWSCognitoIdentityUser? 

、関心の私の方法の中

if let strongUser = self.user { 
    strongUser.getDetails().continueOnSuccessWith { (task) -> AnyObject? in 
     DispatchQueue.main.async(execute: { 
      if let response:AWSCognitoIdentityUserGetDetailsResponse = task.result { 
       for attr in response.userAttributes! { 
        if attr.name == "custom:privilege", attr.value == "admin" { 
         self.adminButton.isHidden = false 
         return 
        } 
       } 
      } 
       self.adminButton.isHidden = true 
     }) 
     return nil 
    } 
} else { 
    adminButton.isHidden = true 
} 

欠点は、ログインしていない一方で、何のカスタム属性は、アプリによって書かれていないので、私は促進するためのAWS-CLIを使用することができるということですユーザー:

aws cognito-idp admin-update-user-attributes --user-pool-id <POOLID> --username <USERNAME> --user-attributes '{"Name":"custom:privilege","Value":"admin"}' 
0

あなたのUserモデル。適切な値にこのプロパティを設定する必要があり、ユーザーがあなたの中にログインしてしまった後 例えば

struct User { 
    var name = "" 
    var role = "User" // you can use enum here or anything else you want 
} 

。 さらに、View Controllerを表示する前に、このプロパティをチェックして、このView Controllerを表示するかどうかを決定する必要があります。

+0

ユーザーがCognitoコンソール上のグループを割り当てられているが、私は、私はあなたは、ユーザーが属性を取得しようとする必要がありiOSの –

+0

中にそれを割り当てられているグループを取得するAPIを見つけることができないようhttp://docs.aws.amazon.com/cognito/latest/developerguide/using-amazon-cognito-user-identity-pools-ios-sdk.html 「認証された例:ユーザー属性の取得」の段落を確認してください –

+0

属性によって、彼らは私に関連情報を与えなかった。 –

関連する問題