qlfy-ecological-login 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README ADDED
@@ -0,0 +1,60 @@
1
+ #### 简介
2
+
3
+ 实现统一认证登陆功能的逻辑插件,无实际渲染标签,内置统一登陆跳转、统一登录token获取、统一登陆token刷新等功能;
4
+
5
+ 当token在指定时间内无更新时,会自动刷新本地token数据;
6
+
7
+ 仅可在全局范围内加载使用(app.vue),全局仅可使用一次,多次使用,仅第一次使用有效;
8
+
9
+ #### 组件参数
10
+
11
+ | 属性名 | 说明 | 类型 | 默认值 |
12
+ | ------------------- | ------------------------------------------------------------ | ---------------------------------- | -------------- |
13
+ | clientId | 应用id,统一认证平台提供,必填 | | —— |
14
+ | clientSecret | 应用秘钥,统一认证平台提供,必填 | | —— |
15
+ | useRouter | 路由对象,传入vue-Router的useRouter()值 | Router | —— |
16
+ | loginInfo | 统一认证的登录信息,如传入该值,则不触发登陆,直接使用传入的用户信息,非必填 | LoginInfo | —— |
17
+ | networkType | 网络环境类型配置 | 'LAN'\|'INT'(内网环境\|外网环境) | 'LAN' |
18
+ | isEnabled | 是否启用组件,支持动态控制 | boolean | true |
19
+ | listenToken | 是否实时监听token状态<br />100ms检测一次token是否存在,丢失触发重新获取 | boolean | false |
20
+ | refreshTokenOnRoute | 是否开启路由变动时自动刷新token功能<br />开启后,每次路由变动延时2s自动刷新token | boolean | false |
21
+ | redirectPath | 统一登陆成功后,跳转的地址;<br />如不设置,默认跳转至触发登陆的页面 | string | ‘’ |
22
+ | tokenName | local中保存token值的键名称 | string | 'access_token' |
23
+ | refreshInterval | token自动更新的时间间隔,单位秒 | number | 600 |
24
+ | tokenValidity | token过期时间,单位秒 | number | 1800 |
25
+ | getTokenUrl | 获取token的请求地址<br />默认根据networkType自动获取<br />内网为:http://10.76.91.87:28080<br />外网为:http://10.76.44.44:28080 | string | —— |
26
+ | getCodeUrl | 获取code的跳转地址<br />默认根据networkType自动获取<br />内网为:http://sd.uts.cma:18010<br />外网为:https://58.59.29.50:13019 | string | —— |
27
+
28
+ #### 组件事件
29
+
30
+ | 事件名 | 说明 | 类型 |
31
+ | ------------ | ------------------------------------------- | -------------------------------------- |
32
+ | loginSuccess | 初次加载,登陆信息成功后触发该事件 | Function:( loginInfo:Object ) => void |
33
+ | tokenChange | token刷新时,触发该事件<br />首次登陆不触发 | Function:( loginInfo:Object ) => void |
34
+ | loggingIn | 从统一认证平台返回后触发该事件 | Function:( ) => void |
35
+
36
+ #### 暴露内容
37
+
38
+ | 方法名 | 说明 | 类型 |
39
+ | --------------- | --------------------------- | -------------------- |
40
+ | refreshToken | 手动刷新登陆状态,更新token | Function:()=>void |
41
+ | logout | 退出登陆 | Function:()=>void |
42
+ | getUnifiedToken | 获取当前使用的token | Function:()=>string |
43
+ | getLoginInfo | 获取当前登录信息 | Function:()=>Object |
44
+
45
+ #### 组件工具库
46
+
47
+ 可在任意位置导入并使用该工具库内的方法,实现相关操作功能
48
+
49
+ 导入方法 :
50
+
51
+ ```
52
+ import {xxx} from '***/qlUnifiedLogin/tools.js'
53
+ ```
54
+
55
+ | 方法名 | 说明 | 类型 |
56
+ | --------------- | ---------------------------------------------- | -------------------- |
57
+ | logout | 退出登陆 | Function:()=>void |
58
+ | getUnifiedToken | 获取当前使用的token | Function:()=>string |
59
+ | getLoginInfo | 获取当前登录信息 | Function:()=>Object |
60
+ | refreshToken | 刷新token的方法,刷新成功后触发tokenChange事件 | Function:()=>void |
@@ -0,0 +1,30 @@
1
+ export default class LocalStorageManager {
2
+ /**
3
+ * 设置存储项
4
+ * @param {string} key - 存储键名
5
+ * @param {*} value - 存储值
6
+ * @param {number} [seconds] - 有效期(秒)
7
+ */
8
+ set(key: string, value: any, seconds?: number | undefined): void;
9
+ /**
10
+ * 获取存储项
11
+ * @param {string} key - 要获取的键名
12
+ * @returns {*|null} 存储值或null
13
+ */
14
+ get(key: string): any;
15
+ /**
16
+ * 获取原始存储数据(内部方法)
17
+ * @param {string} key - 要获取的键名
18
+ * @returns {Object|null} 包含值和过期时间的对象或null
19
+ */
20
+ getRaw(key: string): any;
21
+ /**
22
+ * 删除指定存储项
23
+ * @param {string} key - 要删除的键名
24
+ */
25
+ remove(key: string): void;
26
+ /**
27
+ * 清空所有存储项
28
+ */
29
+ clear(): void;
30
+ }
@@ -0,0 +1,53 @@
1
+ import { Router } from 'vue-router';
2
+ /** 响应式数据对象 */
3
+ export declare class Data {
4
+ }
5
+ export interface LoginInfo {
6
+ [x: string]: any;
7
+ access_token: string;
8
+ outLogin?: boolean;
9
+ }
10
+ export interface Prop {
11
+ /** 应用id,平台提供*/
12
+ clientId: string;
13
+ /** 应用秘钥,平台提供*/
14
+ clientSecret: string;
15
+ /** 统一登陆页面的ip地址 */
16
+ loginPageIpAddress: string;
17
+ /** 登陆服务的ip地址 */
18
+ loginServiceIpAddress: string;
19
+ /** 路由对象 */
20
+ useRouter: Router;
21
+ /** 统一认证的登录信息,如传入该值,则不触发登陆,直接使用传入的用户信息,非必填*/
22
+ loginInfo?: LoginInfo;
23
+ /** 传入token则使用外部token */
24
+ token?: string;
25
+ /** 是否启用组件,支持动态控制,非必填*/
26
+ isEnabled?: boolean;
27
+ /** 是否开启路由变动时自动刷新token功能*/
28
+ /** 是否实时监听token状态,非必填*/
29
+ listenToken?: boolean;
30
+ /** 认证成功后的,非必填*/
31
+ redirectPath?: string;
32
+ /** local中保存token值的键名称,非必填*/
33
+ tokenName?: string;
34
+ /** token自动更新的时间间隔,单位秒,非必填*/
35
+ refreshInterval?: number;
36
+ /** token有效期,单位秒,非必填*/
37
+ tokenValidity?: number;
38
+ /** 租户id */
39
+ tenantId?: number;
40
+ }
41
+ export interface Emits {
42
+ (e: 'loggingIn', params: {
43
+ code: string | string[];
44
+ grant_type: string;
45
+ state: number;
46
+ }): void;
47
+ (e: 'loginSuccess', loginInfo: {
48
+ [x: string]: any;
49
+ }): void;
50
+ (e: 'tokenChange', loginInfo: {
51
+ [x: string]: any;
52
+ }): void;
53
+ }
@@ -0,0 +1,41 @@
1
+ import { Prop } from './data';
2
+ import { logout, getToken, getLoginInfo, getUserPermission } from './tools';
3
+ declare const _default: import('vue').DefineComponent<Prop, {
4
+ logout: typeof logout;
5
+ getToken: typeof getToken;
6
+ getLoginInfo: typeof getLoginInfo;
7
+ getUserPermission: typeof getUserPermission;
8
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
9
+ loggingIn: (params: {
10
+ code: string | string[];
11
+ grant_type: string;
12
+ state: number;
13
+ }) => any;
14
+ loginSuccess: (loginInfo: {
15
+ [x: string]: any;
16
+ }) => any;
17
+ tokenChange: (loginInfo: {
18
+ [x: string]: any;
19
+ }) => any;
20
+ }, string, import('vue').PublicProps, Readonly<Prop> & Readonly<{
21
+ onLoggingIn?: (params: {
22
+ code: string | string[];
23
+ grant_type: string;
24
+ state: number;
25
+ }) => any;
26
+ onLoginSuccess?: (loginInfo: {
27
+ [x: string]: any;
28
+ }) => any;
29
+ onTokenChange?: (loginInfo: {
30
+ [x: string]: any;
31
+ }) => any;
32
+ }>, {
33
+ isEnabled: boolean;
34
+ listenToken: boolean;
35
+ redirectPath: string;
36
+ tokenName: string;
37
+ refreshInterval: number;
38
+ tokenValidity: number;
39
+ tenantId: number;
40
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
41
+ export default _default;
@@ -0,0 +1,20 @@
1
+ export declare const componentState: any;
2
+ /** 退出登陆方法 */
3
+ export declare function logout(): any;
4
+ /** 获取统一登陆token */
5
+ export declare function getToken(): any;
6
+ /** 方法 -- 跳转至登陆页 */
7
+ export declare function goLogin(): void;
8
+ /** 获取统一认证登陆返回信息 */
9
+ export declare function getLoginInfo(): any;
10
+ /**
11
+ * @description 获取跳转至登录页的链接
12
+ * @param {string} loginPageIpAddress 登录页ip地址
13
+ * @param {string} clientId 应用id
14
+ * @param {string} clientSecret 应用密钥
15
+ * @param {string} redirectUrl 重定向地址
16
+ * @returns {string}
17
+ */
18
+ export declare function getLoginUrl(loginPageIpAddress: string, clientId: string, clientSecret: string, redirectUrl?: string): string;
19
+ export declare function generateUUID(): string;
20
+ export declare function getUserPermission(): any;