管理用户帐户
Overview
您可以使用 Realm 用户界面、App Services CLI、Admin API 或 Realm SDK 托管应用程序的用户帐户。
删除用户
您可以从应用程序中彻底删除用户,包括所有元数据和身份验证提供者身份。 删除用户还会立即结束与该用户关联的任何会话。
提示
如果您不想删除用户的帐户,可以禁用其帐户以暂时中止其访问权限。
手动删除用户
您可以使用 App Services 用户界面、CLI 或 Admin API 手动删除用户帐户。
从左侧导航菜单中选择 App Users 。
根据要删除的用户的当前状态,选择Confirmed或Pending 。
在Users标签页下,在列表中找到用户,然后单击省略号 (
...
)。单击Delete User并确认您的选择。
要删除用户,请调用appservices users delete
。 CLI将提示您输入应用程序ID ,并列出该应用中的用户以供选择。
appservices users delete
您还可以在调用程序时指定参数:
appservices users delete \ --app=<Your App ID> \ --user=<User ID>
提示
您可以使用单个命令删除多个用户,方法是将这些用户的id
值指定为逗号分隔的列表。
appservices users delete --user=6099694d5debcbcc873ff413,60996996b78eca4a8d615d3a
要删除用户,请按以下格式创建DELETE
请求。 您必须指定 Group(群组)、App(应用)和 User ID(用户 ID)。
curl --request DELETE \ --header 'Authorization: Bearer <access_token>' \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/users/<userId>
如果要删除待处理的电子邮件/密码用户,请按以下格式创建请求:
curl --request DELETE \ --header 'Authorization: Bearer <access_token>' \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/user_registrations/by_email/<email>
注意
App Services 不会自动删除链接 MongoDB Atlas 集群中与已删除用户关联的任何数据。 例如,如果您的应用程序允许用户通过在owner_id
字段中包含其 ID 来创建链接到用户的数据,则删除用户对象不会删除用户创建的链接数据。 要删除已删除用户的所有痕迹,您必须手动删除或修改任何此类文档。
在 SDK 中删除用户
当您使用 Realm SDK 删除用户时,您可以为用户提供从客户端应用程序中删除自己帐户的选项。
使用自定义函数删除用户
您可以编写自定义函数来删除用户。 如果您的 SDK 尚不支持删除用户 API,您可能需要执行此操作。
创建一个与以下示例类似但使用Application Authentication的函数。 您可能希望在函数未成功进行身份验证或无法删除调用用户的事件进行错误处理。
对于此示例函数,我们为 adminApiPublicKey 和 adminApiPrivateKey 创建了值和密钥。 然后,我们会将项目 ID 和应用程序 ID添加到apiUrl
中。
然后,我们可以从 SDK 中调用该函数。 下面的示例函数不带任何参数,并删除调用该函数的用户。
提示
如果您的应用程序使用电子邮件/密码身份验证,请考虑您可能希望删除待处理的用户,这涉及第二个端点:
const apiUrl = "https://services.cloud.mongodb.com/api/admin/v3.0/groups/{insert-your-project-id}/apps/{insert-your-app-id}"; exports = async function(){ // This function deletes the user who calls it. It gets this user's ID // from the user in the function context. This is safer than accepting // a passed-in user ID, as the user can never delete any other user's account. const callersUserId = context.user.id async function adminLogIn() { const username = context.values.get("adminApiPublicKey"); const apiKey = context.values.get("adminApiPrivateKey"); const response = await context.http.post({ url: "https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login", body: {username, apiKey}, encodeBodyAsJSON: true, }); const body = EJSON.parse(response.body.text()); return body.access_token; } const token = await adminLogIn(); async function deleteUser(_id) { await context.http.delete({ url: `${apiUrl}/users/${_id}`, headers: {"Authorization": [`Bearer ${token}`]} }); return _id; } return deleteUser(callersUserId); };
禁用用户
您可以临时禁用用户,这会阻止该用户登录,并使该用户的任何现有访问令牌和刷新令牌失效。 您可以启用已禁用的用户,让他们重新登录。
从左侧导航菜单中选择 App Users。
根据要禁用的用户的当前状态,选择Confirmed或Pending 。
在 Users 标签页下,从列表中找到用户并单击省略号(
...
)。单击Disable User并确认您的选择。
要禁用用户,请调用appservices users disable
。 CLI将提示您输入应用程序ID ,并列出该应用中的用户以供选择。
appservices users disable
您还可以在调用程序时指定参数:
appservices users disable \ --app=<Your App ID> \ --user=<User ID>
提示
您可以使用单个命令禁用多个用户,方法是将这些用户的id
值指定为逗号分隔的列表。
appservices users disable --user=6099694d5debcbcc873ff413,60996996b78eca4a8d615d3a
要禁用用户,请按以下格式创建PUT
请求。 您必须指定 Group(群组)、App(应用)和 User ID(用户 ID)。
curl --request PUT \ --header 'Authorization: Bearer <access_token>' \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/users/<userId>/disable
启用用户
您可以启用已禁用的用户,让他们重新登录。
从左侧导航菜单中选择 App Users。
选择Confirmed或Pending ,具体取决于要启用的用户的当前状态。
在 Users 标签页下,从列表中找到用户并单击省略号(
...
)。单击Enable User并确认您的选择。
要启用用户,请调用appservices users enable
。 CLI将提示您输入应用程序ID ,并列出该应用中的用户以供选择。
appservices users enable
您还可以在调用程序时指定参数:
appservices users enable \ --app=<Your App ID> \ --user=<User ID>
提示
通过将多个用户的id
值指定为以逗号分隔的列表,您可以使用单个命令启用多个用户。
appservices users enable --user=6099694d5debcbcc873ff413,60996996b78eca4a8d615d3a
要启用用户,请按以下格式创建PUT
请求。 您必须指定 Group(群组)、App(应用)和 User ID(用户 ID)。
curl --request PUT \ --header 'Authorization: Bearer <access_token>' \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/users/<userId>/enable