# Manage users

Authing management module.

This module can perform operations such as adding, deleting, modifying and querying user directories, searching for users, refreshing user tokens, managing user groups, managing user roles, and managing user policy authorization.

# Create user

UsersManagementClient().create(userInfo)

This interface will create a user as an administrator and does not require security checks such as mobile phone number verification code verification.

# Parameters

  • userInfo <CreateUserInput> user information
  • userInfo.email <string> mailbox, the only one in the user pool
  • userInfo.emailVerified <boolean> Is the email verified?
  • userInfo.phone <string> phone number
  • userInfo.phoneVerified <boolean> Whether the phone number is verified
  • userInfo.unionid <string> For users who log in as social, this field is the unique ID of the user in the third-party social login service provider
  • userInfo.openid <string> openid returned by WeChat login
  • userInfo.password <string> password
  • userInfo.registerSource <string> Registration source, you can select multiple
  • userInfo.username <string> username
  • userInfo.nickname <string> nickname
  • userInfo.photo <string> Avatar
  • userInfo.company <string> company
  • userInfo.browser <string> browser
  • userInfo.loginsCount <number> Number of logins, this field can be set when you migrate from the original user system to Authing.
  • userInfo.lastLogin <string> Last login time, a time string conforming to ISO8601 format. (E.g. "2017-06-07T14:34:08.700Z", "2017-06-07T14:34:08.700 or "2017-06-07T14:34:08+04:00")
  • userInfo.lastIP <string> The IP of the user's last login (or other activity)
  • userInfo.signedUp <string> Registration time, a time string conforming to ISO8601 format. (E.g. "2017-06-07T14:34:08.700Z", "2017-06-07T14:34:08.700 or "2017-06-07T14:34:08+04:00")
  • userInfo.blocked <boolean> whether the account is disabled
  • userInfo.isDeleted <boolean> mark whether the account is deleted
  • userInfo.device <string> device
  • userInfo.lastIP <string> Last logged in IP
  • userInfo.name <string> Name
  • userInfo.givenName <string> Given Name
  • userInfo.familyName <string> Family Name
  • userInfo.middleName <string> Middle Name
  • userInfo.profile <string> Profile Url
  • userInfo.preferredUsername <string> Preferred Name
  • userInfo.website <string> personal website
  • userInfo.gender <string> gender, M stands for male, W stands for female, and U stands for unknown.
  • userInfo.birthdate <string> birthday
  • userInfo.zoneinfo <string> time zone
  • userInfo.locale <string> language
  • userInfo.address <string> address
  • userInfo.streetAddress <string> street address
  • userInfo.locality <string>
  • userInfo.region <string> region
  • userInfo.postalCode <string> Zip code
  • userInfo.city <string> city
  • userInfo.province <string> province
  • userInfo.country <string> country
  • userInfo.externalId <string> external id

# Example

String email = "test@example.com";
String password = "123456";
User user = managementClient.users().create(new CreateUserInput().withEmail(email).withPassword(password)).execute();

# Modify user information

UsersManagementClient *().update(id, updates)

Modify user information

# Parameters

  • id <string> User ID
  • updates <UpdateUserInput> modified user profile
  • updates.email <string> Email
  • updates.emailVerified <boolean> Is the email verified?
  • updates.phone <string> phone number
  • updates.phoneVerified <boolean> Whether the phone number is verified
  • updates.unionid <string> For users who log in socially, this field is the user's unique ID in the third-party social login service provider
  • updates.openid <string> openid returned by WeChat login
  • updates.password <string> password
  • updates.registerSource <string> Registration source, you can select multiple
  • updates.tokenExpiredAt <string> token expiration time, a time string conforming to the ISO8601 format. (Such as "2017-06-07T14:34:08.700Z", "2017-06-07T14:34:08.700 or "2017-06-07T14:34:08+04:00"). Setting this field to be less than the current time can invalidate the user's token.
  • updates.username <string> username
  • updates.nickname <string> nickname
  • updates.photo <string> Avatar
  • updates.company <string> company
  • updates.browser <string> browser
  • updates.loginsCount <number> Number of logins, this field can be set when you migrate from the original user system to Authing.
  • updates.lastLogin <string> Last login time, a time string conforming to ISO8601 format. (E.g. "2017-06-07T14:34:08.700Z", "2017-06-07T14:34:08.700 or "2017-06-07T14:34:08+04:00")
  • updates.lastIP <string> The IP of the user's last login (or other activity)
  • updates.signedUp <string> Registration time, a time string conforming to ISO8601 format. (E.g. "2017-06-07T14:34:08.700Z", "2017-06-07T14:34:08.700 or "2017-06-07T14:34:08+04:00")
  • updates.blocked <boolean> whether the account is disabled
  • updates.device <string> device
  • updates.lastIP <string> Last logged in IP
  • updates.name <string> Name
  • updates.givenName <string> Given Name
  • updates.familyName <string> Family Name
  • updates.middleName <string> Middle Name
  • updates.profile <string> Profile Url
  • updates.preferredUsername <string> Preferred Name
  • updates.website <string> personal website
  • updates.gender <string> gender, M stands for male, W stands for female, and U stands for unknown.
  • updates.birthdate <string> birthday
  • updates.zoneinfo <string> time zone
  • updates.locale <string> language
  • updates.address <string> address
  • updates.streetAddress <string> street address
  • updates.locality <string>
  • updates.region <string> region
  • updates.postalCode <string> Zip code
  • updates.city <string> city
  • updates.province <string> province
  • updates.country <string> country
  • userInfo.externalId <string> external id

# Example

# Get user details

UsersManagementClient().detail(userId)

Get user details by user ID. If you want to get user details by token, please use AuthenticationClient SDK.

# Parameters

  • userId <string> user ID

# Example

User result = managementClient.users().detail("userId").execute();

# delete users

UsersManagementClient().delete(userId)

Delete user

# Parameters

  • userId <string> user ID

# Example

CommonMessage message = managementClient.users().delete("userId").execute();

# Delete users in batch

UsersManagementClient().deleteMany(userIds)

Batch delete users

# Parameters

  • userIds <string[]> list of user IDs

# Example

ArrayList<String> userIds = new ArrayList<>();
userIds.add("userId");
CommonMessage message = managementClient.users().deleteMany(userIds).execute();

# Get users in batch

UsersManagementClient().batch(userIds)

Get user details in batches by ID

# Parameters

  • userIds <string[]> list of user IDs

# Example

ArrayList<String> userIds = new ArrayList<>();
userIds.add("userId");
List<User> users = managementClient.users().batch(userIds).execute();

# Get user list

UsersManagementClient().list(page, limit)

Get user pool user list

# Parameters

  • page <number> Page number, starting from 1 The default value is: 1.
  • limit <number> The number of users included in each page The default value is 10.

# Example

PaginatedUsers users = managementClient.users().list().execute();

# Check if the user exists

UsersManagementClient().exists(options)

Check whether the user exists. The currently detectable fields are user name, email address, and mobile phone number.

# Parameters

  • options <Object>
  • options.username <string> User name, case sensitive.
  • options.email <string> mailbox, the mailbox is not case sensitive.
  • options.phone <string> phone number

# Example

Boolean exists = managementClient.users().exists(new IsUserExistsParam().withUsername("test")).execute();

# Find users

UsersManagementClient().find(options)

Find users by username, email, mobile phone number

# Parameters

  • options <Object>
  • options.username <string> User name, case sensitive.
  • options.email <string> mailbox, the mailbox is not case sensitive.
  • options.phone <string> phone number

# Example

# Search users

UsersManagementClient().search(query, options, page, limit)

Search users based on keywords

# Parameters

  • query <null> search content
  • options <string[]> options
  • options.fields <string[]> Search user fields, if not specified, the default will be fuzzy search from username, nickname, email, phone, company, name, givenName, familyName, middleName, profile, preferredUsername fields . If you need precise search, please use the find method.
  • page <number> The default value is: 1.
  • limit <number> The default value is 10.

# Example

String query = "query";
PaginatedUsers users = managementClient.users().search(query).execute();

# Refresh user token

UsersManagementClient().refreshToken(id)

Refresh user token

# Parameters

  • id <string> User ID

# Example

RefreshToken token = managementClient.users().refreshToken("userId").execute();

# Get user group list

UsersManagementClient().listGroups(userId)

Get user group list

# Parameters

  • userId <string> user ID

# Example

managementClient.users().listGroups("userId").execute();

# Join group

UsersManagementClient().addGroup(userId, group)

Add users to groups

# Parameters

  • userId <string> user ID
  • group <string> group code

# Example

managementClient.users().addGroup("userId", "groupId").execute();

# Exit group

UsersManagementClient().removeGroup(userId, group)

Exit group

# Parameters

  • userId <string> user ID
  • group <string> group code

# Example

managementClient.users().removeUdv("userId", "groupId").execute();

# Get user role list

UsersManagementClient().listRoles(userId)

Get the user's role list

# Parameters

  • userId <string> user ID

# Example

PaginatedRoles roles = managementClient.users().listRoles("userId").execute();

# Add role

UsersManagementClient().addRoles(userId, roles)

Add users to roles

# Parameters

  • userId <string> user ID
  • roles <string> role code list

# Example

ArrayList<String> roles = new ArrayList<>();
roles.add("role code");
managementClient.users().addRoles("userId", roles);

# Remove role

UsersManagementClient().removeRoles(userId, roles)

Remove user from role

# Parameters

  • userId <string> user ID
  • roles <string> role code list

# Example

ArrayList<String> roles = new ArrayList<>();
roles.add("role code");
CommonMessage message = managementClient.users().removeRoles("userId", roles).execute();

# Get the user's organization

UsersManagementClient().listOrgs(userId)

Get the user's organization and his node path in the organization

# Parameters

  • userId <string> user ID

# Example

List<List<Org>> orgs = managementClient.users().listOrgs("userId").execute();