2016-08-30 16 views
4

私はAWS Cognitoサービスで認証されたユーザーを持っており、彼のユニークな識別子をデータベースに保存したいと考えています。ユーザーのユーザー名(彼の電話番号)または彼の "サブ"(彼のUIDです)を保存する必要がありますか? AdminGetUserのようなすべてのAmazon API関数は、「username」パラメータを使用していますが、サブ/ uidは使用していません。データベースに格納するためにAWS Cognitoの「username」または「sub」(uid)を使用する必要がありますか?

でも、私はarticleを読んで、作者は「ユーザー名が再割り当て可能であるため、常に「サブクレーム」の価値にポリシーを生成し、ユーザー名は再設定しない」と述べています。 " 「ユーザ名」または「サブ」

ありがとう -

だから、今、私はのように一意のユーザー識別子を使用しなければならないものをためらっています。

+0

「サブ」とはどういう意味ですか? –

+0

ok、subはJWTトークンのパラメータです。問題はユーザーuuidが使用されている場所ですか? – lexa

答えて

0

1つだけを保存する場合は、おそらくあなたが提供した理由のために行く方法です。

あなたのユースケースに大きく依存しますが、このデータベースを使用してサンプルのようにAPIを呼び出す必要がある場合は、2つの間の両方の/マッピングを追跡することは完全に有効な解決方法です。

3

sub属性を使用する必要があります。実際には、ユーザ名Ericoを持つユーザーが自分のアカウントを削除した場合、新しいユーザーが後でこの同じユーザー名を使用することができますし、マッピングが間違っているだろう...

ユーザ名は常にユーザーを登録するために必要な、それれますユーザー作成後は変更できません。

しかし

usernameは、ユーザーのプール内で一意でなければなりません。ユーザー名は再使用できますが、削除されて使用されなくなった後にのみ使用できます。

更新

あなたは、データベース内の属性としてIDとusernameとしてsubを使用することができます。これにより、彼/彼女usernameAdminGetUserでユーザーを取得することができます。

実際にデータベースにIDとしてusernameが必要な場合は、自分のアカウントが削除されたときにデータベースからユーザーを削除するか、 "Pre Sign-up"トリガーを使用してユーザーにusernameすでにデータベースに入っています。 Cognitoの

+0

データベース内のユーザーのIDとして電子メールを使用するとどう思いますか? –

+0

ユーザーが自分のメールアドレスを変更できるので、それは良い考えではありません。 – user108828

+0

ユーザーがFacebook上で電子メールを変更した場合、ユーザーがFacebookを使用してログインした場合、ユーザープールで自動的に変更されますか? –

0

現在の制限の一つ(この日付に)は、あなたのユーザーを識別のための独自のデータベースにsubを保存した場合、ユーザーをリストアップし、後であなたがcognitoからこの保存されたユーザーの情報を回復しようとですaws はサブ属性またはカスタム属性でフィルタを許可しないため、uuidの保存にはusernameを、実際のユーザ名にはprefered_usernameのエイリアスを使用してください。

javascript AWS.CognitoIdentityServiceProvider.ListUserで、他のものと同じです。

関連する問題