search amazon cognito users by custom attribute
I'm developing a react native app which uses aws-amplify to interact with amazon cognito. In my use case, I need to ensure value of a custom attribute is unique across all accounts. aws-amplify does not seem to have an API which allows me to search across all accounts by a custom attribute. How can I do this?
javascript react-native amazon-cognito aws-amplify
add a comment |
I'm developing a react native app which uses aws-amplify to interact with amazon cognito. In my use case, I need to ensure value of a custom attribute is unique across all accounts. aws-amplify does not seem to have an API which allows me to search across all accounts by a custom attribute. How can I do this?
javascript react-native amazon-cognito aws-amplify
add a comment |
I'm developing a react native app which uses aws-amplify to interact with amazon cognito. In my use case, I need to ensure value of a custom attribute is unique across all accounts. aws-amplify does not seem to have an API which allows me to search across all accounts by a custom attribute. How can I do this?
javascript react-native amazon-cognito aws-amplify
I'm developing a react native app which uses aws-amplify to interact with amazon cognito. In my use case, I need to ensure value of a custom attribute is unique across all accounts. aws-amplify does not seem to have an API which allows me to search across all accounts by a custom attribute. How can I do this?
javascript react-native amazon-cognito aws-amplify
javascript react-native amazon-cognito aws-amplify
asked Nov 14 '18 at 4:10
wseubrwseubr
1
1
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Unfortunately you simply can't using Cognito alone:
https://docs.aws.amazon.com/cognito/latest/developerguide/how-to-manage-user-accounts.html#cognito-user-pools-searching-for-users-using-listusers-api
Custom attributes are not searchable. This is because only indexed attributes are searchable, and custom attributes cannot be indexed.
Your only option will be to keep your own database relating the user to the attribute value, and enforce uniqueness there. For example in DynamoDB you would record the user's sub (unique Cognito identity) and the value of the custom attribute as sort/partition keys accordingly, ensure that normal cognito clients could only read the custom attribute, and provide your own API (lambda + api-gateway) to attempt to add/update the table and use the cognito Admin API to update the 'read-only' custom attribute on the user.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53293080%2fsearch-amazon-cognito-users-by-custom-attribute%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Unfortunately you simply can't using Cognito alone:
https://docs.aws.amazon.com/cognito/latest/developerguide/how-to-manage-user-accounts.html#cognito-user-pools-searching-for-users-using-listusers-api
Custom attributes are not searchable. This is because only indexed attributes are searchable, and custom attributes cannot be indexed.
Your only option will be to keep your own database relating the user to the attribute value, and enforce uniqueness there. For example in DynamoDB you would record the user's sub (unique Cognito identity) and the value of the custom attribute as sort/partition keys accordingly, ensure that normal cognito clients could only read the custom attribute, and provide your own API (lambda + api-gateway) to attempt to add/update the table and use the cognito Admin API to update the 'read-only' custom attribute on the user.
add a comment |
Unfortunately you simply can't using Cognito alone:
https://docs.aws.amazon.com/cognito/latest/developerguide/how-to-manage-user-accounts.html#cognito-user-pools-searching-for-users-using-listusers-api
Custom attributes are not searchable. This is because only indexed attributes are searchable, and custom attributes cannot be indexed.
Your only option will be to keep your own database relating the user to the attribute value, and enforce uniqueness there. For example in DynamoDB you would record the user's sub (unique Cognito identity) and the value of the custom attribute as sort/partition keys accordingly, ensure that normal cognito clients could only read the custom attribute, and provide your own API (lambda + api-gateway) to attempt to add/update the table and use the cognito Admin API to update the 'read-only' custom attribute on the user.
add a comment |
Unfortunately you simply can't using Cognito alone:
https://docs.aws.amazon.com/cognito/latest/developerguide/how-to-manage-user-accounts.html#cognito-user-pools-searching-for-users-using-listusers-api
Custom attributes are not searchable. This is because only indexed attributes are searchable, and custom attributes cannot be indexed.
Your only option will be to keep your own database relating the user to the attribute value, and enforce uniqueness there. For example in DynamoDB you would record the user's sub (unique Cognito identity) and the value of the custom attribute as sort/partition keys accordingly, ensure that normal cognito clients could only read the custom attribute, and provide your own API (lambda + api-gateway) to attempt to add/update the table and use the cognito Admin API to update the 'read-only' custom attribute on the user.
Unfortunately you simply can't using Cognito alone:
https://docs.aws.amazon.com/cognito/latest/developerguide/how-to-manage-user-accounts.html#cognito-user-pools-searching-for-users-using-listusers-api
Custom attributes are not searchable. This is because only indexed attributes are searchable, and custom attributes cannot be indexed.
Your only option will be to keep your own database relating the user to the attribute value, and enforce uniqueness there. For example in DynamoDB you would record the user's sub (unique Cognito identity) and the value of the custom attribute as sort/partition keys accordingly, ensure that normal cognito clients could only read the custom attribute, and provide your own API (lambda + api-gateway) to attempt to add/update the table and use the cognito Admin API to update the 'read-only' custom attribute on the user.
answered Nov 14 '18 at 9:28
thomasmichaelwallacethomasmichaelwallace
2,5951917
2,5951917
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53293080%2fsearch-amazon-cognito-users-by-custom-attribute%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown