> For AI agents: the complete documentation index is available at https://docs.halo.run/llms.txt, the full documentation bundle is available at https://docs.halo.run/llms-full.txt.

# 用户与权限

## 概览

Halo 2.0 版本采用了基于角色的权限控制（RBAC）体系。不同于之前 1.x 版本的单用户设计，现在你可以创建多个用户并且通过赋予不同用户不同角色的方式，为他们分配不同的权限。

## 用户

点击左侧导航栏的 `用户` 条目进入用户管理页面。

### 创建用户

在用户管理页面，点击右上角的 `添加用户` 按钮即可弹出新建用户对话框。

![创建用户](/img/user-guide/users/user-setting-2.20+.png)

目前支持配置的用户属性有：

- **用户名**：用户登录 Halo 控制台使用的用户名，不可与已有的用户名重复；
- **显示名称**：用于显示文章作者等用户信息时使用的，更友好的用户名称；
- **电子邮箱**：用户的电子邮箱；
- **新密码**：用户的初始密码；
- **角色**：用户的初始角色；
- **描述**：可以用于为用户添加备注。

### 其他操作

点击用户列表中的 `···` 更多操作按钮，可以对指定用户进行修改资料、修改密码等其他更多操作。

![用户列表其他操作](/img/user-guide/users/user-operate.png)

#### 修改用户资料

你可以修改除用户名以外的所有资料，具有用户管理相关权限的用户，也可对其他用户的资料进行修改。

#### 修改用户密码

对于已有的用户，你可以在 `···` 更多操作中修改指定用户的登录密码。

#### 分配角色

对于已有的用户，你可以在 `···` 更多操作中为该用户分配角色，分配角色后该用户具有角色所对应的权限。

:::info 修改角色会影响权限
修改用户分配的角色会影响用户所拥有的权限，可能影响用户使用。
:::

#### 删除用户

对于已有的用户，你可以在 `···` 更多操作中删除该用户。

:::warning 删除用户的影响
删除用户后，该用户之前创建的文章、页面等内容的作者信息将会丢失，可能影响站点内容浏览。此操作不可恢复。
:::

## 角色

如下图所示，在用户管理页面，点击右上角红色区域的 `角色管理` 按钮，即可进入到角色管理页面。

![角色管理](/img/user-guide/users/role-management.png)

### 创建角色

Halo 提供了全新创建和基于已有角色创建两种角色创建方式。

#### 全新创建

点击角色管理页面右上角的 `新建角色` 按钮即可弹出新建角色对话框，通过这种方式创建的角色默认未勾选任何权限，你需要在对话框中点击切换到权限标签页，为该角色勾选需要的权限。

#### 基于已有角色创建

![基于已有角色创建角色](/img/user-guide/users/role-fork.png)

当系统中已经存在一些基础角色时，你可以点击某个角色所在行中的 `···` 更多操作按钮，选择 `基于此角色创建` 来创建一个新的角色。通过这种方式创建的角色默认继承了原有角色的权限，但你同样可以对新角色的权限进行进一步调整。

![创建角色](/img/user-guide/users/role-creation.png)

- **名称**：角色的名称。
- **禁止访问 Console**：勾选后，该角色的用户将无法进入 Console 管理控制台，只能访问个人中心（/uc）。
- **权限**：角色的权限，可以选择多个权限。

### 修改角色信息

对于已有的角色，你可以在 `···` 更多操作中修改指定角色的名称和该角色所拥有的权限。

### 其他操作

对于已有的角色，你可以在 `···` 更多操作中删除指定角色。

:::warning 删除角色的影响
删除角色后，分配了该角色的用户会丧失对应的权限，影响用户使用。此操作不可恢复。
:::

## 身份认证

Halo 内置用户名或已验证邮箱加密码的本地认证。从 Halo 2.26 开始，Halo 还内置邮箱验证码认证；配置邮件通知后，可以在身份认证管理页面启用。其他第三方认证方式可以通过插件扩展。

:::info 官方身份认证插件
目前 Halo 官方提供的身份认证插件：

- [OAuth2 认证](https://www.halo.run/store/apps/app-ESVDK)
- [社交 IAM 认证（包含在 Halo 付费版）](https://www.halo.run/store/apps/app-IXZkJ)
- [LDAP 认证（包含在 Halo 付费版）](https://www.halo.run/store/apps/app-vrSqF)

:::

你可以在用户管理界面的右上角点击 `身份认证` 按钮，进入身份认证管理页面。

![身份认证](/img/user-guide/users/users-2.26.png)

进入身份认证管理页面之后，如果你已经安装了提供身份认证方式的插件，你就可以在列表中看到对应的身份认证方式，你可以对其进行设置并启用。

![身份认证方式](/img/user-guide/users/auth-providers-2.26.png)

### 邮箱验证码登录

使用邮箱验证码登录前，需要先完成以下配置：

1. 在[通知设置](https://docs.halo.run/guide/use/settings.md#%E9%82%AE%E4%BB%B6%E9%80%9A%E7%9F%A5)中配置邮件服务器；
2. 在身份认证管理页面启用邮箱验证码认证；
3. 用户在个人中心验证自己的邮箱地址。

启用后，可以拖拽认证方式调整它在登录页面中的顺序。

### 第三方认证首次登录

通过 OAuth2 等第三方认证方式首次登录时，用户可以绑定已有 Halo 账号。站点开放注册时，也可以创建新账号；如果站点设置了注册协议或必填资料，用户需要先完成相关步骤。

### 手机验证码登录

:::note 仅限 Halo 付费版
限 [Halo 付费版](https://docs.halo.run/guide/prepare.md#%E5%8F%91%E8%A1%8C%E7%89%88%E6%9C%AC) 可用。
:::

在 [短信通知](https://docs.halo.run/guide/use/settings.md#%E7%9F%AD%E4%BF%A1%E9%80%9A%E7%9F%A5) 中配置好短信通知后，就可以在身份认证管理页面中开启手机验证码登录，也可以通过拖拽的方式调整默认登录方式。
