用户集合 Users

Directus 中用户集合的 REST 和 GraphQL API 文档。Directus 用户是允许您在 API 和应用程序中进行身份验证的个人帐户。 每个用户都属于一个定义其精细权限的角色。

用户对象

id uuid
用户的主键。

first_name string
用户的名字。

last_name string
用户的姓氏。

email string
用户的电子邮件地址。

password hash
用户的密码。

location string
用户的位置。

title string
用户的标题。

description string
用户的描述。

tags array
用户的标签。

avatar many-to-one
头像文件。多对一到 文件

language string
呈现管理应用程序的语言。请参阅 我们的 Crowdin 页面 了解所有可用语言和 translations.

theme string
autolightdark 之一。

tfa_secret string
启用 TFA 后,它会保存它的密钥。

status string
用户的状态。 draftinvitedactivesuspendedarchived 之一。

role uuid
用户的角色。多对一到 角色

token string
用户的静态访问令牌。

last_access date
用户上次访问 API 的时间。

last_page string
用户使用的应用程序的最后一页。

provider string
用于注册此用户的身份验证提供程序。

external_identifier string
第三方身份验证提供程序中用户的主键(如果使用)。

auth_data json
由第三方身份验证提供商提供的有关用户的必需数据(如果使用)。

email_notifications boolean
启用此功能后,用户将收到通知电子邮件。

json
{
  "id": "0bc7b36a-9ba9-4ce0-83f0-0a526f354e07",
  "first_name": "Admin",
  "last_name": "User",
  "email": "admin@例如.com",
  "password": "**********",
  "location": "New York City",
  "title": "CTO",
  "description": null,
  "tags": null,
  "avatar": null,
  "language": "en-US",
  "theme": "auto",
  "tfa_secret": null,
  "status": "active",
  "role": "653925a9-970e-487a-bfc0-ab6c96affcdc",
  "token": null,
  "last_access": "2021-02-05T10:18:13-05:00",
  "last_page": "/settings/roles/653925a9-970e-487a-bfc0-ab6c96affcdc"
}

列出用户

列出 Directus 中存在的所有用户。

查询参数

支持所有全局查询参数

返回

最多包含 limit 用户对象 的数组。 如果没有可用的项目,数据将是一个空数组。

REST API

GET /users
SEARCH /users

Learn more about SEARCH ->

GraphQL

POST /graphql/system
graphql
type Query {
 users: [directus_users]
}
示例
graphql
query {
 users {
  first_name
  last_name
  email
 }
}

检索用户

按主键列出现有用户。

查询参数

支持所有全局查询参数

返回

返回请求的 用户对象

REST API

GET /users/:id
示例
GET /users/72a1ce24-4748-47de-a05f-ce9af3033727

GraphQL

POST /graphql/system
graphql
type Query {
 users_by_id(id: ID!): directus_users
}
示例
graphql
query {
 users_by_id(id: "72a1ce24-4748-47de-a05f-ce9af3033727") {
  first_name
  last_name
  email
 }
}

检索当前用户

检索当前经过身份验证的用户。

查询参数

支持所有全局查询参数

返回

返回当前经过身份验证的用户的 用户对象

REST API

GET /users/me

GraphQL

POST /graphql/system
graphql
type Query {
 users_me: directus_users
}
示例
graphql
query {
 users_me {
  email
 }
}

更新当前用户

更新经过身份验证的用户。

查询参数

支持所有全局查询参数

返回

返回经过身份验证的用户的更新后的 user object

REST API

PATCH /users/me
json
// PATCH /users/me

{
  "email": "new.email@例如.com"
}

GraphQL

POST /graphql/system
graphql
type Mutation {
 update_users_me(data: update_directus_users_input!): directus_users
}
示例
graphql
mutation {
 update_users_me(data: { email: "new.email@例如.com" }) {
  email
 }
}

创建用户

创建一个新用户

查询参数

支持所有全局查询参数

请求正文

部分 用户对象

使用默认身份验证提供程序进行身份验证需要“电子邮件”和“密码”。

返回

返回已创建用户的 用户对象

REST API

POST /users
示例
json
// POST /users

{
  "email": "another@例如.com",
  "password": "d1r3ctu5",
  "role": "c86c2761-65d3-43c3-897f-6f74ad6a5bd7"
}

GraphQL

POST /graphql/system
graphql
type Mutation {
 create_users_item(data: create_directus_users_input!): directus_users
}
示例
graphql
mutation {
 create_users_item(
  data: { email: "another@例如.com", password: "d1r3ctu5", role: "c86c2761-65d3-43c3-897f-6f74ad6a5bd7" }
 ) {
  email
  role
 }
}

创建多个用户

创建多个新用户

查询参数

支持所有全局查询参数

请求正文

部分 用户对象 的数组。

需要“电子邮件”和“密码”。

返回

返回已创建用户的 用户对象

REST API

POST /users
示例
json
// POST /users

[
  {
    "email": "admin@例如.com",
    "password": "p455w0rd",
    "role": "c86c2761-65d3-43c3-897f-6f74ad6a5bd7"
  },
  {
    "email": "another@例如.com",
    "password": "d1r3ctu5",
    "role": "c86c2761-65d3-43c3-897f-6f74ad6a5bd7"
  }
]

GraphQL

POST /graphql/system
graphql
type Mutation {
 create_users_items(data: [create_directus_users_input!]!): [directus_users]
}
示例
graphql
mutation {
 create_users_items(
  data: [
   { email: "admin@例如.com", password: "p455w0rd", role: "c86c2761-65d3-43c3-897f-6f74ad6a5bd7" }
   { email: "another@例如.com", password: "d1r3ctu5", role: "c86c2761-65d3-43c3-897f-6f74ad6a5bd7" }
  ]
 ) {
  email
  role
 }
}

更新用户

更新现有用户。

查询参数

支持所有全局查询参数

请求正文

部分 用户对象

返回

返回更新用户的 用户对象

REST API

PATCH /users/:id
示例
json
// PATCH /users/72a1ce24-4748-47de-a05f-ce9af3033727

{
  "title": "CTO"
}

GraphQL

POST /graphql/system
graphql
type Mutation {
 update_users_item(id: ID!, data: update_directus_users_input!): directus_users
}
示例
graphql
mutation {
 update_users_item(id: "72a1ce24-4748-47de-a05f-ce9af3033727", data: { title: "CTO" }) {
  first_name
  last_name
 }
}

更新多个用户

更新多个现有用户。

查询参数

支持所有全局查询参数

请求正文

keys Required
您要更新的用户的主键数组。

data Required
用户对象 的任何属性。

返回

返回更新用户的 用户对象

REST API

PATCH /users
示例
json
// PATCH /users

{
  "keys": ["72a1ce24-4748-47de-a05f-ce9af3033727", "9c3d75a8-7a5f-41a4-be0a-1488fd974511"],
  "data": {
    "title": "CTO"
  }
}

GraphQL

POST /graphql/system
graphql
type Mutation {
 update_users_items(ids: [ID!]!, data: update_directus_users_input!): [directus_users]
}
示例
graphql
mutation {
 update_users_items(
  ids: ["72a1ce24-4748-47de-a05f-ce9af3033727", "9c3d75a8-7a5f-41a4-be0a-1488fd974511"]
  data: { title: "CTO" }
 ) {
  first_name
  last_name
 }
}

Delete a User

Delete an existing user.

Returns

Empty body.

REST API

DELETE /users/:id
示例
DELETE /users/72a1ce24-4748-47de-a05f-ce9af3033727

GraphQL

POST /graphql/system
graphql
type Mutation {
 delete_users_item(id: ID!): delete_one
}
示例
graphql
mutation {
 delete_users_item(id: "72a1ce24-4748-47de-a05f-ce9af3033727") {
  id
 }
}

Delete Multiple Users

Delete multiple existing users.

请求体

An array of user primary keys

Returns

Empty body.

REST API

DELETE /users
示例
json
// Request
["653925a9-970e-487a-bfc0-ab6c96affcdc", "c86c2761-65d3-43c3-897f-6f74ad6a5bd7"]

GraphQL

POST /graphql/system
graphql
type Mutation {
 delete_users_items(ids: [ID!]!): delete_many
}
示例
graphql
mutation {
 delete_users_items(ids: ["72a1ce24-4748-47de-a05f-ce9af3033727", "9c3d75a8-7a5f-41a4-be0a-1488fd974511"]) {
  ids
 }
}

Invite a new User

Invite a new user by email.

请求体

email Required
User email to invite.

role Required
Role of the new user.

invite_url
Provide a custom invite url which the link in the email will lead to. The invite token will be passed as a parameter.
Note: You need to configure the USER_INVITE_URL_ALLOW_LIST environment variable to enable this feature.

Returns

Empty body.

REST API

POST /users/invite
示例
json
// POST /users/invite

{
  "email": "another@例如.com",
  "role": "c86c2761-65d3-43c3-897f-6f74ad6a5bd7"
}

GraphQL

POST /graphql/system
graphql
type Mutation {
 users_invite(email: String!, role: String!, invite_url: String): Boolean
}
示例
graphql
mutation {
 users_invite(email: "another@例如.com", role: "c86c2761-65d3-43c3-897f-6f74ad6a5bd7")
}

Accept User Invite

Accept your invite. The invite user endpoint sends the email a link to the Admin App.

This link includes a token, which is then used to activate the invited user.

请求体

token Required
Accept invite token.

password Required
Password for the user.

Returns

Empty body.

REST API

POST /users/invite/accept
示例
json
// POST /users/invite/accept

{
  "token": "eyJh...KmUk",
  "password": "d1r3ctu5"
}

GraphQL

POST /graphql/system
graphql
type Mutation {
 users_invite_accept(token: String!, password: String!): Boolean
}
示例
graphql
mutation {
 users_invite_accept(token: "eyJh...KmUk", password: "d1r3ctu5")
}

Generate Two-Factor Authentication Secret

Generates a secret and returns the URL to be used in an authenticator app.

请求体

password Required
The user's password.

Returns

secret string
OTP secret to be saved in the authenticator app.

otpauth_url string
otpauth:// formatted URL. Can be rendered as QR code and used in most authenticator apps.

REST API

POST /users/me/tfa/generate
示例
json
// POST /users/me/tfa/generate
{
  "password": "d1r3ctu5"
}

GraphQL

POST /graphql/system
graphql
type Mutation {
 users_me_tfa_generate(password: String!): users_me_tfa_generate_data
}
示例
graphql
mutation {
 users_me_tfa_generate(password: "d1r3ctu5") {
  secret
  otpauth_url
 }
}

启用两因素身份验证

将 TFA 机密添加到用户帐户。

请求正文

secret Required
来自 tfa/generate 的 TFA 机密。

otp Required
使用密钥生成的 OTP,以重新检查用户是否具有正确的 TFA 设置

Returns

Empty response.

REST API

POST /users/me/tfa/enable
示例
json
// POST /users/me/tfa/enable
{
  "otp": "123456",
  "secret": "3CtiutsNBmY3szHE"
}

GraphQL

POST /graphql/system
graphql
type Mutation {
 users_me_tfa_enable(otp: String!, secret: String!): Boolean
}
示例
graphql
mutation {
 users_me_tfa_enable(otp: "123456", secret: "3CtiutsNBmY3szHE")
}

禁用两因素身份验证

通过从用户中删除 OTP 密钥来禁用双重身份验证。

请求正文

otp Required
验证器应用程序生成的一次性密码。

Returns

Empty response.

REST API

POST /users/me/tfa/disable
示例
json
// POST /users/me/tfa/disable

{
  "otp": "859014"
}

GraphQL

POST /graphql/system
graphql
type Mutation {
 users_me_tfa_disable(otp: String!): Boolean
}
示例
graphql
mutation {
 users_me_tfa_disable(otp: "591763")
}