第 3 章:Axure 中的角色与用户管理设计方案

3.1 用户场景

在企业级后台系统、SaaS 平台或内容管理系统的原型设计中,权限验证是绕不开的核心环节。以下三类典型场景直接驱动本章方案的设计:

  • 产品经理验证权限边界——同一功能页面在不同角色(管理员、编辑、访客)下的可见性、可操作性差异需要在原型中真实呈现。
  • 交互设计师展示角色切换——演示用户从登录到进入系统全流程中,角色信息如何影响界面状态,便于评审时快速达成共识。
  • 开发团队对齐信息传递路径——明确用户身份数据在页面间如何流动,减少前后端联调时的理解偏差。
💡 场景优先级建议: 如果团队资源有限,优先覆盖「管理员」与「普通用户」两个极端角色,中间角色可在后续迭代中补齐。

3.2 业务问题

在 Axure 原型中模拟权限交互时,以下三个问题反复出现:

  1. 登录环节过于简陋——直接跳过高保真登录页,导致角色与用户身份的绑定关系无法在原型中闭环。
  2. 角色信息无法跨页面传递——每个页面单独设置角色状态,一旦需要调整就要重复修改 10+ 个页面,维护成本极高。
  3. 评审时角色切换效率低——测试人员需要手动修改多个局部变量才能切换角色,容易遗漏且无法复现 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 方案流程总览

下图完整呈现了从模拟登录到角色选择、再到全局变量存储与页面跳转的完整数据流向:

角色与用户管理设计方案 · 数据流 前端交互层 数据存储层 权限与结果层 模拟登录页面 角色选择器 全局变量存储 权限校验判断 系统首页 登录成功 写入 userInfo 读取 role 校验通过 📌 全局变量命名规范: userInfo.id | userInfo.name | userInfo.role | userInfo.token

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,这两个用例最能暴露全局变量作用域和跨页面同步的问题。