Managing Mobile App User Accounts with User Identities
Learn how to use Seam user identities to manage mobile app user accounts.
What is a User Identity?
Seam user identities are a feature for tracking and managing user accounts in your application. This feature assigns unique identifiers to each of your users, enabling you to issue and manage their mobile credentials and access permissions. Each user identity is mapped to a user account in your app.

User Identities Can Be Connected to Users in Multiple Access Control Systems
User identities can be linked to one ACS user in each access control system. Any mobile credentials issued to these ACS users are consolidated under the user identity. Consequently, a user's mobile app account has access to these credentials through the user identity.

Create a User Identity and Associate it with an ACS User
1. Create a User Identity
To create a user identity, you can specify any of the following characteristics:
Unique user identity key (
user_identity_key)Unique email address (
email_address)Unique phone number (
phone_number)Full name (
full_name)
Note that if you specify one or more of the user_identity_key, email_address, or phone_number, each of these values must be unique within your workspace.
Command:
seam.user_identities.create(
user_identity_key = "jean_doe",
email_address = "[email protected]",
phone_number = "+15555550110",
full_name = "Jean Doe"
)Output:
UserIdentity(
user_identity_id='22222222-2222-2222-2222-222222222222',
user_identity_key='jean_doe',
email_address='[email protected]',
phone_number='+15555550110',
display_name='Jean Doe',
full_name='Jean Doe',
...
)Request:
curl -X 'POST' \
'https://connect.getseam.com/user_identities/create' \
-H 'accept: application/json' \
-H "Authorization: Bearer ${SEAM_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"user_identity_key": "jean_doe",
"email_address": "[email protected]",
"phone_number": "+15555550110",
"full_name": "Jean Doe"
}'Response:
{
"user_identity": {
"user_identity_id": "22222222-2222-2222-2222-222222222222",
"user_identity_key": "jean_doe",
"email_address": "[email protected]",
"phone_number": "+15555550110",
"display_name": "Jean Doe",
"full_name": "Jean Doe",
...
},
"ok": true
}Command:
await seam.userIdentities.create({
user_identity_key: "jean_doe",
email_address: "[email protected]",
phone_number: "+15555550110",
full_name: "Jean Doe",
});Output:
{
"user_identity_id": "22222222-2222-2222-2222-222222222222",
"user_identity_key": "jean_doe",
"email_address": "[email protected]",
"phone_number": "+15555550110",
"display_name": "Jean Doe",
"full_name": "Jean Doe",
...
}Command:
seam.user_identities.create(
user_identity_key: "jean_doe",
email_address: "[email protected]",
phone_number: "+15555550110",
full_name: "Jean Doe",
)Output:
<Seam::Resources::UserIdentity:0x005f0
user_identity_id="22222222-2222-2222-2222-222222222222"
user_identity_key="jean_doe"
email_address="[email protected]"
phone_number="+15555550110"
display_name="Jean Doe"
full_name="Jean Doe"
...
>Command:
$seam->user_identities->create(
user_identity_key: "jean_doe",
email_address: "[email protected]",
phone_number: "+15555550110",
full_name: "Jean Doe"
);Output:
{
"user_identity_id": "22222222-2222-2222-2222-222222222222",
"user_identity_key": "jean_doe",
"email_address": "[email protected]",
"phone_number": "+15555550110",
"display_name": "Jean Doe",
"full_name": "Jean Doe",
...
}Command:
Coming soon!Output:
Coming soon!2. Assign an ACS User to the User Identity
To link an ACS user with a user identity, provide the ID of the user identity and the ID of the ACS user.
Command:
user_identity = seam.user_identities.get(
email_address = "[email protected]"
)
acs_user = seam.acs.users.get(
email_address = "[email protected]"
)
seam.user_identities.add_acs_user(
user_identity_id = user_identity.user_identity_id,
acs_user_id = acs_user.acs_user_id
)Output:
NoneRequest:
# Use GET or POST.
curl -X 'GET' \
'https://connect.getseam.com/user_identities/get' \
-H 'accept: application/json' \
-H "Authorization: Bearer ${SEAM_API_KEY}" \
-H 'Content-Type: application/json' \
-d "{
\"email_address\": \"[email protected]\"
}")
# Use GET or POST.
curl -X 'GET' \
'https://connect.getseam.com/acs/users/get' \
-H 'accept: application/json' \
-H "Authorization: Bearer ${SEAM_API_KEY}" \
-H 'Content-Type: application/json' \
-d "{
\"email_address\": \"[email protected]\"
}")
curl -X 'POST' \
'https://connect.getseam.com/user_identities/add_acs_user' \
-H 'accept: application/json' \
-H 'Authorization: Bearer ${API_KEY}' \
-H 'Content-Type: application/json' \
-d "{
\"user_identity_id\": \"$(jq -r '.user_identity.user_identity_id' <<< ${user_identity})\",
\"acs_user_id\": \"$(jq -r '.acs_user.acs_user_id' <<< ${acs_user})\",
}"Response:
{
"ok": true
}Command:
const userIdentity = await seam.userIdentities.get({
email_address: "[email protected]",
});
const acsUser = await seam.acs.users.get({
email_address: "[email protected]",
});
await seam.userIdentities.addAcsUser({
user_identity_id: userIdentity.user_identity_id,
acs_user_id: acsUser.acs_user_id,
});Output:
// voidCommand:
user_identity = seam.user_identities.get(
email_address: "[email protected]"
)
acs_user = seam.acs.users.get(
email_address: "[email protected]"
)
seam.user_identities.add_acs_user(
user_identity_id: user_identity.user_identity_id,
acs_user_id: acs_user.acs_user_id,
)Output:
nilCommand:
$user_identity = $seam->user_identities->get(
email_address: "[email protected]",
);
$acs_user = $seam->acs->users->get(
email_address: "[email protected]",
);
$seam->user_identities->add_acs_user(
user_identity_id: $user_identity->user_identity_id,
acs_user_id: $acs_user->acs_user_id
);Output:
nullCommand:
Coming soon!Output:
Coming soon!Removing a User Identity
When you delete a user identity, Seam automatically cleans up all other associated resources.
Command:
seam.user_identities.delete(
user_identity_id = "22222222-2222-2222-2222-222222222222"
)Output:
NoneRequest:
curl -X 'POST' \
'https://connect.getseam.com/user_identities/delete' \
-H 'accept: application/json' \
-H "Authorization: Bearer ${SEAM_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"user_identity_id": "22222222-2222-2222-2222-222222222222"
}'Response:
{
"ok": true
}Command:
await seam.userIdentities.delete({
user_identity_id: "22222222-2222-2222-2222-222222222222",
});Output:
// voidCommand:
seam.user_identities.delete(
user_identity_id: "22222222-2222-2222-2222-222222222222"
)Output:
nilCommand:
$seam->user_identities->delete(
user_identity_id: "22222222-2222-2222-2222-222222222222"
);Output:
nullCommand:
Coming soon!Output:
Coming soon!Last updated
Was this helpful?

