jdk 17
This commit is contained in:
55
sdk/frontend/oauth2-login-sdk/dist/guards/router.d.ts
vendored
Normal file
55
sdk/frontend/oauth2-login-sdk/dist/guards/router.d.ts
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
/**
|
||||
* 路由守卫模块
|
||||
* 提供基于权限的路由拦截和未登录自动跳转登录页功能
|
||||
*/
|
||||
import { Auth } from '../core/auth';
|
||||
/**
|
||||
* 路由守卫选项
|
||||
*/
|
||||
export interface RouterGuardOptions {
|
||||
/**
|
||||
* 是否需要登录
|
||||
*/
|
||||
requiresAuth?: boolean;
|
||||
/**
|
||||
* 需要的权限列表
|
||||
*/
|
||||
requiredPermissions?: string[];
|
||||
/**
|
||||
* 登录后重定向的URL
|
||||
*/
|
||||
redirectUri?: string;
|
||||
/**
|
||||
* 权限不足时重定向的URL
|
||||
*/
|
||||
unauthorizedRedirectUri?: string;
|
||||
}
|
||||
/**
|
||||
* 路由守卫类
|
||||
*/
|
||||
export declare class RouterGuard {
|
||||
private auth;
|
||||
/**
|
||||
* 构造函数
|
||||
* @param auth 认证实例
|
||||
*/
|
||||
constructor(auth: Auth);
|
||||
/**
|
||||
* 检查路由权限
|
||||
* @param options 路由守卫选项
|
||||
* @returns Promise<boolean> 是否通过权限检查
|
||||
*/
|
||||
check(options: RouterGuardOptions): Promise<boolean>;
|
||||
/**
|
||||
* 创建Vue路由守卫
|
||||
* @returns 路由守卫函数
|
||||
*/
|
||||
createVueGuard(): (to: any, from: any, next: any) => Promise<void>;
|
||||
/**
|
||||
* 检查当前用户是否有权限访问资源
|
||||
* @param permissions 需要的权限列表
|
||||
* @returns Promise<boolean> 是否拥有权限
|
||||
*/
|
||||
hasPermission(permissions: string | string[]): Promise<boolean>;
|
||||
}
|
||||
//# sourceMappingURL=router.d.ts.map
|
||||
1
sdk/frontend/oauth2-login-sdk/dist/guards/router.d.ts.map
vendored
Normal file
1
sdk/frontend/oauth2-login-sdk/dist/guards/router.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/guards/router.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAO;IAEnB;;;OAGG;gBACS,IAAI,EAAE,IAAI;IAItB;;;;OAIG;IACG,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAmC1D;;;OAGG;IACH,cAAc,KACE,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG;IAgB7C;;;;OAIG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAoBtE"}
|
||||
89
sdk/frontend/oauth2-login-sdk/dist/guards/router.js
vendored
Normal file
89
sdk/frontend/oauth2-login-sdk/dist/guards/router.js
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
/**
|
||||
* 路由守卫模块
|
||||
* 提供基于权限的路由拦截和未登录自动跳转登录页功能
|
||||
*/
|
||||
/**
|
||||
* 路由守卫类
|
||||
*/
|
||||
export class RouterGuard {
|
||||
/**
|
||||
* 构造函数
|
||||
* @param auth 认证实例
|
||||
*/
|
||||
constructor(auth) {
|
||||
this.auth = auth;
|
||||
}
|
||||
/**
|
||||
* 检查路由权限
|
||||
* @param options 路由守卫选项
|
||||
* @returns Promise<boolean> 是否通过权限检查
|
||||
*/
|
||||
async check(options) {
|
||||
const { requiresAuth = true, requiredPermissions = [] } = options;
|
||||
// 检查是否需要登录
|
||||
if (requiresAuth) {
|
||||
// 检查是否已认证
|
||||
if (!this.auth.isAuthenticated()) {
|
||||
// 未认证,跳转到登录页
|
||||
this.auth.login(options.redirectUri);
|
||||
return false;
|
||||
}
|
||||
// 检查是否需要权限
|
||||
if (requiredPermissions.length > 0) {
|
||||
// 获取用户权限
|
||||
const userPermissions = [''];
|
||||
// 检查是否拥有所有需要的权限
|
||||
const hasPermission = requiredPermissions.every(permission => userPermissions.includes(permission));
|
||||
if (!hasPermission) {
|
||||
// 权限不足,跳转到权限不足页
|
||||
if (options.unauthorizedRedirectUri) {
|
||||
window.location.href = options.unauthorizedRedirectUri;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* 创建Vue路由守卫
|
||||
* @returns 路由守卫函数
|
||||
*/
|
||||
createVueGuard() {
|
||||
return async (to, from, next) => {
|
||||
var _a;
|
||||
// 从路由元信息中获取守卫选项
|
||||
const options = ((_a = to.meta) === null || _a === void 0 ? void 0 : _a.auth) || {};
|
||||
try {
|
||||
const allowed = await this.check(options);
|
||||
if (allowed) {
|
||||
next();
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
console.error('Route guard error:', error);
|
||||
next(false);
|
||||
}
|
||||
};
|
||||
}
|
||||
/**
|
||||
* 检查当前用户是否有权限访问资源
|
||||
* @param permissions 需要的权限列表
|
||||
* @returns Promise<boolean> 是否拥有权限
|
||||
*/
|
||||
async hasPermission(permissions) {
|
||||
if (!permissions) {
|
||||
return true;
|
||||
}
|
||||
const requiredPermissions = Array.isArray(permissions) ? permissions : [permissions];
|
||||
// 检查是否已认证
|
||||
if (!this.auth.isAuthenticated()) {
|
||||
return false;
|
||||
}
|
||||
// 获取用户权限
|
||||
const userPermissions = [''];
|
||||
// 检查是否拥有所有需要的权限
|
||||
return requiredPermissions.every(permission => userPermissions.includes(permission));
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=router.js.map
|
||||
1
sdk/frontend/oauth2-login-sdk/dist/guards/router.js.map
vendored
Normal file
1
sdk/frontend/oauth2-login-sdk/dist/guards/router.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/guards/router.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0BH;;GAEG;AACH,MAAM,OAAO,WAAW;IAGtB;;;OAGG;IACH,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,OAA2B;QACrC,MAAM,EAAE,YAAY,GAAG,IAAI,EAAE,mBAAmB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAElE,WAAW;QACX,IAAI,YAAY,EAAE,CAAC;YACjB,UAAU;YACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;gBACjC,aAAa;gBACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACrC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,WAAW;YACX,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,SAAS;gBACT,MAAM,eAAe,GAAG,CAAC,EAAE,CAAC,CAAC;gBAE7B,gBAAgB;gBAChB,MAAM,aAAa,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAC3D,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CACrC,CAAC;gBAEF,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,gBAAgB;oBAChB,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;wBACpC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,uBAAuB,CAAC;oBACzD,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,KAAK,EAAE,EAAO,EAAE,IAAS,EAAE,IAAS,EAAE,EAAE;;YAC7C,gBAAgB;YAChB,MAAM,OAAO,GAAuB,CAAA,MAAA,EAAE,CAAC,IAAI,0CAAE,IAAI,KAAI,EAAE,CAAC;YAExD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC1C,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,EAAE,CAAC;gBACT,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;gBAC3C,IAAI,CAAC,KAAK,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,WAA8B;QAChD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAErF,UAAU;QACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS;QACT,MAAM,eAAe,GAAG,CAAC,EAAE,CAAC,CAAA;QAE5B,gBAAgB;QAChB,OAAO,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAC5C,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CACrC,CAAC;IACJ,CAAC;CACF"}
|
||||
Reference in New Issue
Block a user