跳转到正文

Signing Store ​

useSigningGetters().getSigningCallback 返回账号信息引用。登录前可能为空对象,成功后主要字段为 name、role、avatar?。角色用于客户端路由判断,后端仍需对每次请求校验会话和权限。

方法行为
signing(form)接收 { name, pwd }。模板演示对非空表单返回固定的 admin 角色,不校验密码。成功解析为 { code: 0, data, message };空表单拒绝,包含 code: 1 和 data: null。
clearSigningCallback(toSigning)清理当前应用登录和菜单缓存、Session Storage,并尝试关闭标签。true 时还会清路由、回到登录页并安排刷新。
logout()调用 clearSigningCallback(true)。

登录演示页面在 signing 成功后写入演示 token 和签入信息;Store 的 signing 动作自身不签发 token。请求插件从 Local Storage 读取 token,Pinia 另外持久化 signingCallback。对接实际身份系统时,把 token 写入、角色刷新与退出清理视为同一条流程。

ts
import { useSigningActions, useSigningGetters } from "@/store";
import { computed } from "vue";

export function useAccountMenu() {
  const { getSigningCallback } = useSigningGetters();
  const { logout } = useSigningActions();
  return { name: computed(() => getSigningCallback.value?.name ?? ""), logout };
}

退出会清理当前来源的 Session Storage。多个业务共用同一来源时,接入方应明确其清理范围。动作还依赖已经挂载的消息 Provider 和 Router;从用户操作或已初始化的应用流程触发。

Signing 实现 · 类型 · 演示登录 · 权限守卫