第 3 章:Axure 中的角色与用户管理设计方案
3.1 用户场景
在企业级后台系统、SaaS 平台或内容管理系统的原型设计中,权限验证是绕不开的核心环节。以下三类典型场景直接驱动本章方案的设计:
- 产品经理验证权限边界——同一功能页面在不同角色(管理员、编辑、访客)下的可见性、可操作性差异需要在原型中真实呈现。
- 交互设计师展示角色切换——演示用户从登录到进入系统全流程中,角色信息如何影响界面状态,便于评审时快速达成共识。
- 开发团队对齐信息传递路径——明确用户身份数据在页面间如何流动,减少前后端联调时的理解偏差。
💡 场景优先级建议: 如果团队资源有限,优先覆盖「管理员」与「普通用户」两个极端角色,中间角色可在后续迭代中补齐。
3.2 业务问题
在 Axure 原型中模拟权限交互时,以下三个问题反复出现:
- 登录环节过于简陋——直接跳过高保真登录页,导致角色与用户身份的绑定关系无法在原型中闭环。
- 角色信息无法跨页面传递——每个页面单独设置角色状态,一旦需要调整就要重复修改 10+ 个页面,维护成本极高。
- 评审时角色切换效率低——测试人员需要手动修改多个局部变量才能切换角色,容易遗漏且无法复现 Bug。
核心矛盾: 原型需要“一次登录,全局感知角色”,而 Axure 默认的局部变量作用域仅限于单个页面。必须用全局变量承担用户信息的跨页面载体。
3.3 需求拆解
将业务问题转化为可落地的功能需求与非功能需求:
| 需求类别 | 需求项 | 详细说明 | 优先级 |
|---|---|---|---|
| 功能需求 | 模拟登录验证 | 输入账号密码后,根据预设账号表判断是否允许登录 | P0 |
| 角色选择器 | 登录成功后弹出角色候选列表,用户选择后确认身份 | P0 | |
| 用户信息存储 | 将用户 ID、姓名、角色、token 写入 Axure 全局变量 | P0 | |
| 非功能需求 | 切换角色响应 | 重新选择角色后,所有页面状态在 1 次交互内更新完毕 | P1 |
| 数据一致性 | 全局变量在被覆盖前,任何页面读取的值必须与最后一次写入一致 | P1 |
3.4 方案表达
整体方案围绕“一个登录页 + 一个角色选择器 + 一套全局变量”展开,三者通过交互事件串联成完整的用户身份管理闭环。
3.4.1 模拟登录页面设计
- 页面元素: 用户名文本框(
[[txtUsername]])、密码文本框([[txtPassword]])、登录按钮、错误提示动态面板(默认隐藏)。 - 预设账号表: 使用 Axure 的“数据集”或全局变量内置一个 JSON 结构,包含 3~5 组用户名、密码与角色映射。
- 交互逻辑: 点击登录按钮时,条件判断输入值与预设表是否匹配。匹配则跳转至角色选择器页面;不匹配则显示错误提示面板。
3.4.2 角色选择器设计
- 展示形式: 推荐使用单选卡片组(Radio Button Group + 卡片样式),每个卡片包含角色图标、角色名称和一句话权限描述。
- 角色列表: 固定三个角色——系统管理员(全部权限)、内容编辑(发布/编辑/删除)、访客(仅查看)。
- 交互逻辑: 用户点击某张角色卡片后,系统将所选角色写入全局变量
userInfo.role,同时自动跳转到系统首页。
3.4.3 用户信息存储(全局变量)
全局变量是连接登录页与所有功能页的“数据总线”。推荐使用以下结构:
全局变量 userInfo 结构(JSON 格式说明):
{
"id": "U001", // 用户唯一标识,登录时写入
"name": "张明", // 用户真实姓名
"role": "admin", // 当前角色:admin / editor / viewer
"token": "tk_a1b2c3d4", // 模拟登录凭证
"avatar": "avatar_01" // 头像编号,用于页面个性化展示
}
- 生命周期: 从登录成功开始创建,在浏览器标签页关闭前一直存活;支持在“角色选择器”中重新赋值
userInfo.role。 - 读取方式: 任何页面的动态面板条件判断中,直接引用
[[userInfo.role]]即可获取当前角色值。
⚠️ 常见陷阱: 不要在全局变量中存储密码或敏感个人信息,Axure 原型仅用于交互验证,不具备真实加密能力。密码字段仅做登录比对,不应写入全局变量。
3.5 方案流程总览
下图完整呈现了从模拟登录到角色选择、再到全局变量存储与页面跳转的完整数据流向:
3.6 指标验证
方案是否有效,需要在实际原型中通过以下指标进行测量:
| 指标名称 | 测量方式 | 目标值 |
|---|---|---|
| 登录验证正确率 | 使用预设的 5 组账号密码逐组测试 | 100% 正确匹配 |
| 角色选择准确率 | 测试 3 个角色各选择 1 次,检查首页状态 | 100% 与角色匹配 |
| 全局变量读取一致率 | 在 5 个不同页面中读取 [[userInfo.role]] |
100% 值一致 |
| 角色切换更新延迟 | 从选择角色到页面状态刷新完成的交互次数 | ≤ 1 次交互 |
3.7 验收标准
- 登录页: 输入正确账号密码可跳转至角色选择器;输入错误时显示对应的错误提示,且停留在登录页。
- 角色选择器: 三个角色卡片均可正常点击;点击后
userInfo.role被更新为对应值;点击后自动跳转至系统首页。 - 全局变量: 系统首页加载时,页面顶部展示当前登录用户名与角色标签;在首页任意位置点击“切换角色”可返回角色选择器。
- 跨页面一致性: 从系统首页跳转到任意二级页面后,页面中引用了
userInfo的元素(如用户名、权限按钮)均正确显示。
3.8 交付物模板
本章对应的 Axure 源文件应包含以下标准交付物,便于团队复用与评审:
| 交付物名称 | 文件/结构说明 | 包含内容 |
|---|---|---|
| 模拟登录页面 | LoginPage.rp 内单页面 | 账号输入框、密码输入框、登录按钮、错误提示动态面板 |
| 角色选择器页面 | RoleSelector.rp 内单页面 | 三张角色卡片(单选组)、确认按钮、全局变量写入交互 |
| 全局变量映射表 | 本文档或 Axure 内嵌注释 | 变量名、类型、示例值、写入时机、读取页面列表 |
| 系统首页 Demo | Dashboard.rp 内单页面 | 用户信息展示区、权限控制按钮(根据 role 动态显示) |
| 交互逻辑说明文档 | PDF / 在线文档 | 条件判断规则、动态面板状态转换图、全局变量读/写事件清单 |
✅ 最佳实践: 在 Axure 源文件的封面页(Cover Page)中嵌入“全局变量速查表”和“角色对照表”,评审时无需翻找具体页面即可了解数据设计全貌,可提升 30% 以上的评审效率。
3.9 条件判断规则与动态面板状态说明
为了让方案可直接落地,下面给出登录页和角色选择器的核心判断规则与状态定义:
| 组件 | 状态/条件 | 触发动作 | 备注 |
|---|---|---|---|
| 登录按钮 | [[txtUsername]] == "" 或 [[txtPassword]] == "" | 显示“请填写完整信息”提示面板 | 前置校验,避免空值提交 |
| 输入值与预设账号表匹配 | 写入 userInfo.id / name / token → 跳转角色选择器 | 密码不存入全局变量 | |
| 角色选择器卡片 | 选中“系统管理员” | userInfo.role = "admin" → 跳转首页 | 首页显示全部菜单 |
| 选中“访客” | userInfo.role = "viewer" → 跳转首页 | 首页隐藏“设置”入口 | |
| 错误提示面板 | 登录失败 | 面板状态切换为“显示”,2 秒后自动隐藏 | 使用动态面板+等待时间 |
3.10 测试用例表(验收阶段使用)
以下测试用例可直接复制到测试管理工具中,用于原型交付前的功能验证:
| 用例编号 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| TC-03-01 | 输入正确账号 admin / 123456,点击登录 | 跳转到角色选择器页面 | □ 通过 □ 不通过 |
| TC-03-02 | 输入错误密码,点击登录 | 显示“账号或密码错误”提示,停留在登录页 | □ 通过 □ 不通过 |
| TC-03-03 | 在角色选择器中点击“内容编辑”卡片 | userInfo.role 变为 "editor",跳转首页 | □ 通过 □ 不通过 |
| TC-03-04 | 在首页点击“切换角色”,返回选择器后重新选择“访客” | 首页“发布文章”按钮消失 | □ 通过 □ 不通过 |
| TC-03-05 | 在任意二级页面刷新(F5)后,检查顶部用户信息 | 用户名和角色标签仍然正确显示 | □ 通过 □ 不通过 |
📌 测试建议: 验收时安排一名未参与原型设计的产品助理执行测试用例,避免“设计者盲区”。重点检查 TC-03-04 和 TC-03-05,这两个用例最能暴露全局变量作用域和跨页面同步的问题。