模块设置
本模块提供了一系列设置项,这些设置项可以对模块的各个功能进行调整。
🎉 编辑以下设置项均有代码提示和注释。
全局设置
nuxt.config.ts
本模块在 nuxt.config.ts
中提供了一些设置项,以便选择性调整模块的默认行为,可用设置项如下:
export default defineNuxtConfig({
fastAuth: {
/**
* 认证提供者
* @description 可选 "local" 活 "refresh",这两的区别在于是否有 token刷新 机制
* @default "local"
*/
provider: "refresh",
},
});
app.config.ts
本模块在 app.config.ts
中提供了一些设置项,以便选择性禁用模板的默认行为,可用设置项如下:
export default defineAppConfig({
fastAuth: {
/**
* 认证提供者配置
*/
provider: {
/**
* 页面聚焦时刷新令牌
* @description 当窗口重新获得焦点时刷新令牌
* @default true
*/
refreshOnWindowFocus: true,
/**
* 刷新令牌有效时间
* @description 刷新令牌有效时间,单位为毫秒
* @default 256 * 24 * 60 * 60 * 1000
*/
refreshTokenExpires: 256 * 24 * 60 * 60 * 1000,
/**
* 默认令牌有效时间
* @description 令牌有效时间,单位为毫秒
* @default 256 * 24 * 60 * 60 * 1000
*/
tokenExpires: 256 * 24 * 60 * 60 * 1000,
/**
* 令牌刷新时间
* @description 在令牌过期前多久刷新令牌,单位为毫秒
* @default 5 * 60 * 1000
*/
tokenRefresh: 5 * 60 * 1000,
},
/**
* 会话(用户信息)配置
* @description 会话配置
*/
session: {
/**
* 当窗口获得焦点时刷新会话
* @default false
*/
refreshOnWindowFocus: false,
/**
* 定时刷新会话的时间间隔,单位为毫秒
* - `0` 表示禁用定时刷新
* - `number` 表示启用定时刷新,且指定时间间隔
* @default 0
*/
refreshPeriodically: 0,
},
/**
* 页面配置
* @description 页面配置
*/
page: {
/**
* 默认页面鉴权元数据
* @default
* ```json
* {
* "auth": false,
* "redirect": {
* "unAuth": true,
* "passed": false,
* "failed": true
* }
* }
* ```
*/
auth: {
/**
* 需要的权限
* @default false
*/
auth: false,
/**
* 重定向配置
*/
redirect: {
/**
* 未登录重定向
* @description 未登录重定向
* @default true
*/
anonymous: true,
/**
* 鉴权通过重定向
* @description 鉴权通过重定向
* @default false
*/
passed: false,
/**
* 鉴权失败重定向
* @description 鉴权失败重定向
* @default true
*/
failed: true,
},
},
},
/**
* 首页路径
* @description 登录成功后重定向的路径
* @default "/"
*/
home: "/",
/**
* 认证页路径
* @default "/auth"
*/
signIn: "/auth",
/**
* 退出登录页路径
* @default "/auth"
*/
signOut: "/auth",
},
});
全局钩子
本模块提供一些钩子,用于配置模块的默认行为,可用的钩子如下:
export default defineNuxtPlugin({
// 必须配置此项
enforce: "pre",
hooks: {
/**
* 注册
* @param form 注册表单
*/
"fast-auth:sign-up": (form) => {
// 一些注册操作
},
/**
* 登录
* @param form 登录表单
* @param result 令牌 | 登录结果
*/
"fast-auth:sign-in": (form, result) => {
// 一些登录操作
// 设置 token
result.value = "token-admin";
},
/**
* 注销
*/
"fast-auth:sign-out": (user, token) => {
// 一些清理操作,user 和 token 自动清理(无需手动清理)
},
/**
* 获取用户
* @param token 令牌
* @param result 用户信息
*/
"fast-auth:get-user": (token, result) => {
// 设置用户信息
result.value = {};
},
/**
* 获取角色列表
* @description 即从用户信息中获取角色列表
* @param user 用户信息
* @param result 角色列表
*/
"fast-auth:get-roles": (user, result) => {
// 设置角色列表
result.value = [];
},
/**
* 获取权限列表
* @description 即从用户信息中获取权限列表
* @param user 用户信息
* @param role 角色信息
* @param result 权限列表
*/
"fast-auth:get-permissions": (user, role, result) => {
result.value = [];
},
/**
* 刷新令牌
* @param token 令牌
* @param refreshToken 刷新令牌
* @param result 刷新结果
*/
"fast-auth:refresh-token": (token, refreshToken, result) => {
// 设置新的 token
result.value = "new-token";
},
/**
* 前置认证钩子
* @param options 选项
* @param result 跳转 | null
* @description 返回值为 null 时继续路由守卫
* @description 返回值为 undefined 时终止路由守卫
* @description 注意:不写返回值时默认返回 undefined
*/
"fast-auth:before-auth": (options, result) => {},
/**
* 无需认证
* @param options 选项
* @param result 跳转 | null
* @description 返回值为 null 时继续路由守卫
* @description 返回值为 undefined 时终止路由守卫
* @description 注意:不写返回值时默认返回 undefined
*/
"fast-auth:auth-through": (options, result) => {},
/**
* 需要认证但未登录
* @param options 选项
* @param result 跳转 | null
* @description 返回值为 null 时继续路由守卫
* @description 返回值为 undefined 时终止路由守卫
* @description 注意:不写返回值时默认返回 undefined
*/
"fast-auth:auth-anonymous": (options, result) => {},
/**
* 需要鉴权且已通过
* @param options 选项
* @param result 跳转 | null
* @description 返回值为 null 时继续路由守卫
* @description 返回值为 undefined 时终止路由守卫
* @description 注意:不写返回值时默认返回 undefined
*/
"fast-auth:auth-passed": (options, result) => {},
/**
* 需要鉴权但未通过
* @param options 选项
* @param result 跳转 | null
* @description 返回值为 null 时继续路由守卫
* @description 返回值为 undefined 时终止路由守卫
* @description 注意:不写返回值时默认返回 undefined
*/
"fast-auth:auth-failed": (options, result) => {},
/**
* 后置认证钩子
* @param options 选项
* @param result 跳转 | null
* @description 返回值为 null 时继续路由守卫
* @description 返回值为 undefined 时终止路由守卫
* @description 注意:不写返回值时默认返回 undefined
*/
"fast-auth:after-auth": (options, result) => {},
},
});
页面设置
definePageMeta
本模块扩展了 nuxt
的 definePageMeta
参数,针对页面调整模块行为可在这里进行修改。
definePageMeta({
auth: {
/**
* 需要的权限
* @default false
*/
auth: [
"|",
{
type: "role",
value: "admin",
},
{
type: "per",
value: "users:view",
},
// per 的简写
"users:add",
],
/**
* 重定向配置
*/
redirect: {
/**
* 未登录重定向
* @description 未登录重定向
* @default true
*/
anonymous: "/auth",
/**
* 鉴权通过重定向
* @description 鉴权通过重定向
* @default false
*/
passed: "/admin",
/**
* 鉴权失败重定向
* @description 鉴权失败重定向
* @default true
*/
failed: "/auth",
},
},
});
Table of Contents