Docs 菜单
Docs 主页
/ /
Atlas App Services
/

读取用户元数据

在此页面上

  • Overview
  • 架构
  • 查找用户
  • 筛选用户
  • 查看用户数据
  • 查看用户的设备
  • 查看用户的提供商数据
  • 查看用户的活动日志
  • 总结

Atlas App Services 在内部使用用户对象表示每个应用程序用户,该对象包括唯一 ID 和描述用户的其他元数据。 您可以访问用户对象:

用户对象具有以下形式:

{
"id": "<Unique User ID>",
"type": "<User Type>",
"data": {
"<Metadata Field>": <Value>,
...
},
"custom_data": {
"<Custom Data Field>": <Value>,
...
},
"identities": [
{
"id": <Unique Identity ID>,
"provider_type": "<Authentication Provider>",
"data": {
"<Metadata Field>": <Value>,
...
}
}
]
}
字段
类型
说明
id
字符串
ObjectId 的字符串表示形式,用于唯一标识用户。
type
字符串

用户的类型。可以有以下几种类型:

类型
说明
“normal”
用户是通过 API 密钥提供程序以外的身份验证提供程序登录的应用程序用户
“server”
用户是使用任何类型的 App Services API 密钥登录的服务器进程。
“system”
用户是绕过所有规则的系统用户
data
文档

包含描述用户的元数据的文档。此字段合并与用户相关联的所有 identities 的数据,因此确切的字段名称和值取决于用户使用哪些身份验证提供程序进行身份验证。

注意

系统函数没有用户数据

系统函数中, user.data对象为空。 使用context.runningAsSystem()测试函数是否以系统用户身份运行。

custom_data
文档

来自应用程序自定义用户数据集合的文档,用于指定用户 ID。您可以使用自定义用户数据集合来存储有关应用程序用户的任意数据。如果设置 name 字段,App Services 会使用返回值 name 填充 username 元数据字段。每当用户刷新其访问令牌(例如登录时),App Services 都会自动获取数据的新副本。底层数据是普通的 MongoDB 文档,因此您可以通过 MongoDB Atlas 服务使用标准 CRUD 操作来定义和修改用户的自定义数据。

注意

避免存储大型自定义用户数据

自定义用户数据限制为 16MB,即 MongoDB 文档的最大大小。为避免达到此限制,请考虑在每个自定义用户数据文档中存储小型且相对静态的用户数据,例如用户的首选语言或其头像图像的 URL。对于大型、无界限或频繁更新的数据,请考虑仅在自定义用户文档中存储对数据的引用,或存储带有对用户 ID 的引用的数据,而不是存储在自定义用户文档中。

identities
阵列

与用户关联的身份验证提供者身份列表。当用户首次使用特定提供商登录时,App Services 会将用户与身份对象关联起来,该身份对象包含唯一标识符以及来自提供商的有关用户的其他元数据。对于后续登录,App Services 会刷新现有身份数据,但不会创建新身份。身份对象具有以下形式:

{
"id": "<Unique ID>",
"provider_type": "<Provider Name>",
"data": {
"<Metadata Field>": <Value>,
...
}
}
字段名称
说明
id
提供商生成的唯一标识此身份的字符串
provider_type
与此身份关联的身份验证提供者的类型。
data
身份验证提供程序中描述用户的附加元数据。确切的字段名称和值将根据用户登录所使用的身份验证提供程序而异。有关特定于提供程序的用户身份数据分类,请参阅用户元数据

注意

一般来说,App Services 会在给定用户首次进行身份验证时为其创建一个用户对象。 如果通过 Realm 用户界面创建测试电子邮件/密码用户,App Services 将立即创建该用户的对象。

要查找有关一个或多个用户的信息,请单击左侧导航菜单中的 App Users 。 页面将打开Users标签页,其中包含与Atlas App Services App 关联的用户列表:

用户用户界面中的“用户”屏幕,显示所有用户的可筛选列表
点击放大

提示

如果已经知道要查找的用户 ID,则可以在Users表搜索栏中搜索其 ID。

要查找有关一个或多个用户的信息,请调用appservices users list 。 CLI将提示您输入应用程序ID ,并列出该应用中的用户以供选择。

appservices users list

您还可以在调用程序时指定参数:

appservices users list --app=<Your App ID>

要查找有关一个或多个用户的信息,请按以下格式创建GET请求。 您必须指定 Group 和 App ID。

curl --request GET \
--header 'Authorization: Bearer <access_token>' \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/users

如果您已经知道要查找的用户ID ,则可以将该ID附加到请求URL中:

curl --request GET \
--header 'Authorization: Bearer <access_token>' \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/users/<userId>

提示

另请参阅:

您可以指定过滤器,将用户列表限制为满足过滤条件的用户子集。

使用Users表顶部的filter bar定义筛选器。 您可以按以下条件筛选:

  • Provider type

    • 匿名

    • 电子邮件/密码

    • API 密钥

    • Facebook

    • Google

    • Apple

    • 自定义 JWT

    • 自定义函数

  • Status

    • 已确认

    • 待处理

  • State

    • 已启用

    • 残疾人

您可以使用以下标志和参数过滤用户操作:

  • --pending:如果包含,则仅列出待处理的用户。 否则,仅列出已确认的用户。

  • --state:仅列出处于指定状态的用户

    • "enabled"

    • "disabled"

  • --provider:

    • "anon-user"

    • "local-userpass"

    • "api-key"

    • "oauth2-facebook"

    • "oauth2-google"

    • "oauth2-apple"

    • "custom-token"

    • "custom-function"

例子

以下命令将输出限制为仅显示待处理(未确认)的电子邮件/密码用户:

appservices users list --pending --provider="local-userpass"

例子

以下命令将输出限制为仅显示已禁用的用户:

appservices users list --state="disabled"

您可以使用以下查询参数过滤用户操作:

Parameter
类型
说明
after
字符串
上一个分页请求返回的最后一个用户的 id
sort
字符串
对结果进行排序时依据的字段名称。唯一有效值是默认值:_id
desc
布尔
如果true ,则按降序返回排序结果。 如果未指定或设立为 false,则结果按升序返回。

例子

以下请求按_id降序返回用户:

curl --request GET \
--header 'Authorization: Bearer <access_token>' \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/users?desc=true

您还可以将结果限制为仅待处理(未确认)的电子邮件/密码用户。 按以下格式创建GET请求:

curl --request GET \
--header 'Authorization: Bearer <access_token>' \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/user_registrations/pending_users

提示

另请参阅:

当用户连接到您的应用程序时,Atlas App Services 会记录类似于以下的信息:

特定用户的详细信息视图,列出他们使用您的应用所使用的设备
点击放大

记录的信息包括:

  • 设备平台,要么是 http 客户端(“chrome”、“firefox”、“phantomjs”等),要么是移动 OS(“ios”,“android”等)

  • 平台版本。

  • 设备上的应用版本。

  • 唯一的设备 ID。

要查看此信息,请从用户列表中执行以下操作:

  1. 查找要查看其设备的用户。

  2. 单击...打开选项菜单,然后选择View Devices

每当用户连接到您的应用程序,并使用您已启用的身份验证提供程序进行身份验证时,App Services 都会记录提供程序数据。

特定用户的详细信息视图,列出来自身份验证提供程序的有关该用户的元数据
点击放大

要查看此信息,请从用户列表中执行以下操作:

  1. 查找要查看其提供商数据的用户。

  2. 单击...打开选项菜单,然后选择View Provider Data

App Services 会记录每个应用用户发出的每个请求,包括执行的函数调用。 此外,如果函数使用console.logconsole.warnconsole.error写入日志,这些条目将包含在函数的日志输出中。

特定用户的详细信息视图,显示他们与应用的交互日志
点击放大

要查看此信息,请从用户列表中执行以下操作:

  1. 查找要查看其活动数据的用户。

  2. 单击View Activity 。 这会将您重定向到该特定用户发出的请求的日志。 您可以展开条目以查看该请求的详细信息。

  • 用户对象包含可在应用程序逻辑中使用的用户相关信息。

  • 用户对象中包含的确切信息取决于所使用的身份验证提供者

  • 您可以在 App Services 用户界面的Users页面中搜索用户。

  • App Services 记录用户连接的设备、提供程序数据和活动日志等信息。

后退

定义用户元数据