# 管理用户
Authing 管理模块。
此模块可以进行用户目录增删改查、搜索用户、刷新用户 token、管理用户分组、管理用户角色、管理用户策略授权等操作。
# 创建用户
UsersManagementClient().create(userInfo)
此接口将以管理员身份创建用户,不需要进行手机号验证码检验等安全检测。
# 参数
userInfo<CreateUserInput> 用户资料userInfo.email<string> 邮箱,用户池内唯一userInfo.emailVerified<boolean> 邮箱是否已验证userInfo.phone<string> 手机号userInfo.phoneVerified<boolean> 手机号是否验证userInfo.unionid<string> 以社会化登录的用户该字段为用户在第三方社会化登录服务商中的唯一 IDuserInfo.openid<string> 微信登录返回的 openiduserInfo.password<string> 密码userInfo.registerSource<string> 注册来源,可以多选userInfo.username<string> 用户名userInfo.nickname<string> 昵称userInfo.photo<string> 头像userInfo.company<string> 公司userInfo.browser<string> 浏览器userInfo.loginsCount<number> 登录次数,当你从原有用户系统迁移到 Authing 时可以设置该字段。userInfo.lastLogin<string> 上次登录时间, 符合 ISO8601 格式的时间字符串。(如 "2017-06-07T14:34:08.700Z", "2017-06-07T14:34:08.700 or "2017-06-07T14:34:08+04:00")userInfo.lastIP<string> 用户最近一次登录(或其他活动)的 IPuserInfo.signedUp<string> 注册时间,符合 ISO8601 格式的时间字符串。(如 "2017-06-07T14:34:08.700Z", "2017-06-07T14:34:08.700 or "2017-06-07T14:34:08+04:00")userInfo.blocked<boolean> 账号是否被禁用userInfo.isDeleted<boolean> 标记账号是否被删除userInfo.device<string> 设备userInfo.lastIP<string> 最近登录的 IPuserInfo.name<string> NameuserInfo.givenName<string> Given NameuserInfo.familyName<string> Family NameuserInfo.middleName<string> Middle NameuserInfo.profile<string> Profile UrluserInfo.preferredUsername<string> Preferred NameuserInfo.website<string> 个人网站userInfo.gender<string> 性别, M(Man) 表示男性、F(Female) 表示女性、未知表示 U(Unknown)userInfo.birthdate<string> 生日userInfo.zoneinfo<string> 时区userInfo.locale<string> 语言userInfo.address<string> 地址userInfo.streetAddress<string> 街道地址userInfo.locality<string>userInfo.region<string> 地域userInfo.postalCode<string> 邮编userInfo.city<string> 城市userInfo.province<string> 省份userInfo.country<string> 国家userInfo.externalId<string> 用户外部 ID
# 示例
String email = "test@example.com";
String password = "123456";
User user = managementClient.users().create(new CreateUserInput().withEmail(email).withPassword(password)).execute();
# 修改用户资料
UsersManagementClient *().update(id, updates)
修改用户资料
# 参数
id<string> 用户 IDupdates<UpdateUserInput> 修改的用户资料updates.email<string> 邮箱updates.emailVerified<boolean> 邮箱是否已验证updates.phone<string> 手机号updates.phoneVerified<boolean> 手机号是否验证updates.unionid<string> 以社会化登录的用户该字段为用户在第三方社会化登录服务商中的唯一 IDupdates.openid<string> 微信登录返回的 openidupdates.password<string> 密码updates.registerSource<string> 注册来源,可以多选updates.tokenExpiredAt<string> token 过期时间,符合 ISO8601 格式的时间字符串。(如 "2017-06-07T14:34:08.700Z", "2017-06-07T14:34:08.700 or "2017-06-07T14:34:08+04:00")。 将该字段设置为小于当前时间可以让用户的 token 失效。updates.username<string> 用户名updates.nickname<string> 昵称updates.photo<string> 头像updates.company<string> 公司updates.browser<string> 浏览器updates.loginsCount<number> 登录次数,当你从原有用户系统迁移到 Authing 时可以设置该字段。updates.lastLogin<string> 上次登录时间, 符合 ISO8601 格式的时间字符串。(如 "2017-06-07T14:34:08.700Z", "2017-06-07T14:34:08.700 or "2017-06-07T14:34:08+04:00")updates.lastIP<string> 用户最近一次登录(或其他活动)的 IPupdates.signedUp<string> 注册时间,符合 ISO8601 格式的时间字符串。(如 "2017-06-07T14:34:08.700Z", "2017-06-07T14:34:08.700 or "2017-06-07T14:34:08+04:00")updates.blocked<boolean> 账号是否被禁用updates.device<string> 设备updates.lastIP<string> 最近登录的 IPupdates.name<string> Nameupdates.givenName<string> Given Nameupdates.familyName<string> Family Nameupdates.middleName<string> Middle Nameupdates.profile<string> Profile Urlupdates.preferredUsername<string> Preferred Nameupdates.website<string> 个人网站updates.gender<string> 性别, M(Man) 表示男性、F(Female) 表示女性、未知表示 U(Unknown)updates.birthdate<string> 生日updates.zoneinfo<string> 时区updates.locale<string> 语言updates.address<string> 地址updates.streetAddress<string> 街道地址updates.locality<string>updates.region<string> 地域updates.postalCode<string> 邮编updates.city<string> 城市updates.province<string> 省份updates.country<string> 国家userInfo.externalId<string> 用户外部 ID
# 示例
# 获取用户详情
UsersManagementClient().detail(userId)
通过用户 ID 获取用户详情,如果你想通过 token 获取用户详情,请使用 AuthenticationClient SDK 。
# 参数
userId<string> 用户 ID
# 示例
User result = managementClient.users().detail("userId").execute();
# 删除用户
UsersManagementClient().delete(userId)
删除用户
# 参数
userId<string> 用户 ID
# 示例
CommonMessage message = managementClient.users().delete("userId").execute();
# 批量删除用户
UsersManagementClient().deleteMany(userIds)
批量删除用户
# 参数
userIds<string[]> 用户 ID 列表
# 示例
ArrayList<String> userIds = new ArrayList<>();
userIds.add("userId");
CommonMessage message = managementClient.users().deleteMany(userIds).execute();
# 批量获取用户
UsersManagementClient().batch(userIds)
通过 ID 批量获取用户详情
# 参数
userIds<string[]> 用户 ID 列表
# 示例
ArrayList<String> userIds = new ArrayList<>();
userIds.add("userId");
List<User> users = managementClient.users().batch(userIds).execute();
# 获取用户列表
UsersManagementClient().list(page, limit)
获取用户池用户列表
# 参数
page<number> 页码数, 从 1 开始 默认值为 :1。limit<number> 每页包含的用户数 默认值为 :10。
# 示例
PaginatedUsers users = managementClient.users().list().execute();
# 检查用户是否存在
UsersManagementClient().exists(options)
检查用户是否存在,目前可检测的字段有用户名、邮箱、手机号。
# 参数
options<Object>options.username<string> 用户名,区分大小写。options.email<string> 邮箱,邮箱不区分大小写。options.phone<string> 手机号
# 示例
Boolean exists = managementClient.users().exists(new IsUserExistsParam().withUsername("test")).execute();
# 查找用户
UsersManagementClient().find(options)
通过用户名、邮箱、手机号查找用户
# 参数
options<Object>options.username<string> 用户名,区分大小写。options.email<string> 邮箱,邮箱不区分大小写。options.phone<string> 手机号
# 示例
# 搜索用户
UsersManagementClient().search(query, options, page, limit)
根据关键字搜索用户
# 参数
query<null> 搜索内容options<string[]> 选项options.fields<string[]> 搜索用户字段,如果不指定,默认会从 username、nickname、email、phone、company、name、givenName、familyName、middleName、profile、preferredUsername 这些字段进行模糊搜索。 如果你需要精确查找,请使用 find 方法。page<number> 默认值为 :1。limit<number> 默认值为 :10。
# 示例
String query = "query";
PaginatedUsers users = managementClient.users().search(query).execute();
# 刷新用户 token
UsersManagementClient().refreshToken(id)
刷新用户 token
# 参数
id<string> 用户 ID
# 示例
RefreshToken token = managementClient.users().refreshToken("userId").execute();
# 获取用户分组列表
UsersManagementClient().listGroups(userId)
获取用户的分组列表
# 参数
userId<string> 用户 ID
# 示例
managementClient.users().listGroups("userId").execute();
# 加入分组
UsersManagementClient().addGroup(userId, group)
将用户加入分组
# 参数
userId<string> 用户 IDgroup<string> 分组 code
# 示例
managementClient.users().addGroup("userId", "groupId").execute();
# 退出分组
UsersManagementClient().removeGroup(userId, group)
退出分组
# 参数
userId<string> 用户 IDgroup<string> 分组 code
# 示例
managementClient.users().removeUdv("userId", "groupId").execute();
# 获取用户角色列表
UsersManagementClient().listRoles(userId)
获取用户的角色列表
# 参数
userId<string> 用户 ID
# 示例
PaginatedRoles roles = managementClient.users().listRoles("userId").execute();
# 添加角色
UsersManagementClient().addRoles(userId, roles)
将用户加入角色
# 参数
userId<string> 用户 IDroles<string> 角色 code 列表
# 示例
ArrayList<String> roles = new ArrayList<>();
roles.add("role code");
managementClient.users().addRoles("userId", roles);
# 移除角色
UsersManagementClient().removeRoles(userId, roles)
将用户从角色中移除
# 参数
userId<string> 用户 IDroles<string> 角色 code 列表
# 示例
ArrayList<String> roles = new ArrayList<>();
roles.add("role code");
CommonMessage message = managementClient.users().removeRoles("userId", roles).execute();
# 获取用户所在组织机构
UsersManagementClient().listOrgs(userId)
获取用户所在组织机构,以及他在该组织机构内的的节点路径
# 参数
userId<string> 用户 ID
# 示例
List<List<Org>> orgs = managementClient.users().listOrgs("userId").execute();