lgsso-sdk 1.0.1 → 1.0.3

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/dist/lgsso-sdk.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see lgsso-sdk.js.LICENSE.txt */
2
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("lgssoSdk",[],t):"object"==typeof exports?exports.lgssoSdk=t():e.lgssoSdk=t()}(this,()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function n(){var e,t,r="function"==typeof Symbol?Symbol:{},c=r.iterator||"@@iterator",i=r.toStringTag||"@@toStringTag";function u(r,n,c,i){var u=n&&n.prototype instanceof s?n:s,f=Object.create(u.prototype);return o(f,"_invoke",function(r,n,o){var c,i,u,s=0,f=o||[],l=!1,p={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,r){return c=t,i=0,u=e,p.n=r,a}};function y(r,n){for(i=r,u=n,t=0;!l&&s&&!o&&t<f.length;t++){var o,c=f[t],y=p.p,d=c[2];r>3?(o=d===n)&&(u=c[(i=c[4])?5:(i=3,3)],c[4]=c[5]=e):c[0]<=y&&((o=r<2&&y<c[1])?(i=0,p.v=n,p.n=c[1]):y<d&&(o=r<3||c[0]>n||n>d)&&(c[4]=r,c[5]=n,p.n=d,i=0))}if(o||r>1)return a;throw l=!0,n}return function(o,f,d){if(s>1)throw TypeError("Generator is already running");for(l&&1===f&&y(f,d),i=f,u=d;(t=i<2?e:u)||!l;){c||(i?i<3?(i>1&&(p.n=-1),y(i,u)):p.n=u:p.v=u);try{if(s=2,c){if(i||(o="next"),t=c[o]){if(!(t=t.call(c,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,i<2&&(i=0)}else 1===i&&(t=c.return)&&t.call(c),i<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),i=1);c=e}else if((t=(l=p.n<0)?u:r.call(n,p))!==a)break}catch(t){c=e,i=1,u=t}finally{s=1}}return{value:t,done:l}}}(r,c,i),!0),f}var a={};function s(){}function f(){}function l(){}t=Object.getPrototypeOf;var p=[][c]?t(t([][c]())):(o(t={},c,function(){return this}),t),y=l.prototype=s.prototype=Object.create(p);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,o(e,i,"GeneratorFunction")),e.prototype=Object.create(y),e}return f.prototype=l,o(y,"constructor",l),o(l,"constructor",f),f.displayName="GeneratorFunction",o(l,i,"GeneratorFunction"),o(y),o(y,i,"Generator"),o(y,c,function(){return this}),o(y,"toString",function(){return"[object Generator]"}),(n=function(){return{w:u,m:d}})()}function o(e,t,r,n){var c=Object.defineProperty;try{c({},"",{})}catch(e){c=0}o=function(e,t,r,n){function i(t,r){o(e,t,function(e){return this._invoke(t,r,e)})}t?c?c(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},o(e,t,r,n)}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach(function(t){u(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function u(e,t,n){return(t=function(e){var t=function(e){if("object"!=r(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t,r,n,o,c,i){try{var u=e[c](i),a=u.value}catch(e){return void r(e)}u.done?t(a):Promise.resolve(a).then(n,o)}function s(e){return f.apply(this,arguments)}function f(){var e;return e=n().m(function e(t){var r,o,c,u,a,s,f,l,p,y,d=arguments;return n().w(function(e){for(;;)switch(e.p=e.n){case 0:if(r=d.length>1&&void 0!==d[1]?d[1]:"GET",o=d.length>2&&void 0!==d[2]?d[2]:{},c=d.length>3&&void 0!==d[3]?d[3]:{},u=d.length>4&&void 0!==d[4]?d[4]:5e3,"undefined"!=typeof window){e.n=1;break}return e.a(2,{code:-200,msg:"request方法只能在浏览器环境使用",success:!1});case 1:return a=new AbortController,s=setTimeout(function(){return a.abort()},u),"GET"!==(f={method:r.toUpperCase(),headers:i({"Content-Type":"application/json"},c),signal:a.signal}).method&&o&&(f.body=JSON.stringify(o)),e.p=2,e.n=3,fetch(t,f);case 3:if(l=e.v,clearTimeout(s),l.ok){e.n=4;break}return e.a(2,{code:l.status,msg:"HTTP请求失败: ".concat(l.statusText),success:!1});case 4:return e.p=4,e.n=5,l.json();case 5:return p=e.v,e.a(2,p);case 6:return e.p=6,e.v,e.a(2,{code:-201,msg:"响应数据不是有效的JSON格式",success:!1});case 7:if(e.p=7,y=e.v,clearTimeout(s),"AbortError"!==y.name){e.n=8;break}return e.a(2,{code:-202,msg:"请求超时(".concat(u,"ms)"),success:!1});case 8:return e.a(2,{code:-203,msg:"网络请求失败: ".concat(y.message),success:!1});case 9:return e.a(2)}},e,null,[[4,6],[2,7]])}),f=function(){var t=this,r=arguments;return new Promise(function(n,o){var c=e.apply(t,r);function i(e){a(c,n,o,i,u,"next",e)}function u(e){a(c,n,o,i,u,"throw",e)}i(void 0)})},f.apply(this,arguments)}function l(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function c(r,n,o,c){var a=n&&n.prototype instanceof u?n:u,s=Object.create(a.prototype);return p(s,"_invoke",function(r,n,o){var c,u,a,s=0,f=o||[],l=!1,p={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,r){return c=t,u=0,a=e,p.n=r,i}};function y(r,n){for(u=r,a=n,t=0;!l&&s&&!o&&t<f.length;t++){var o,c=f[t],y=p.p,d=c[2];r>3?(o=d===n)&&(a=c[(u=c[4])?5:(u=3,3)],c[4]=c[5]=e):c[0]<=y&&((o=r<2&&y<c[1])?(u=0,p.v=n,p.n=c[1]):y<d&&(o=r<3||c[0]>n||n>d)&&(c[4]=r,c[5]=n,p.n=d,u=0))}if(o||r>1)return i;throw l=!0,n}return function(o,f,d){if(s>1)throw TypeError("Generator is already running");for(l&&1===f&&y(f,d),u=f,a=d;(t=u<2?e:a)||!l;){c||(u?u<3?(u>1&&(p.n=-1),y(u,a)):p.n=a:p.v=a);try{if(s=2,c){if(u||(o="next"),t=c[o]){if(!(t=t.call(c,a)))throw TypeError("iterator result is not an object");if(!t.done)return t;a=t.value,u<2&&(u=0)}else 1===u&&(t=c.return)&&t.call(c),u<2&&(a=TypeError("The iterator does not provide a '"+o+"' method"),u=1);c=e}else if((t=(l=p.n<0)?a:r.call(n,p))!==i)break}catch(t){c=e,u=1,a=t}finally{s=1}}return{value:t,done:l}}}(r,o,c),!0),s}var i={};function u(){}function a(){}function s(){}t=Object.getPrototypeOf;var f=[][n]?t(t([][n]())):(p(t={},n,function(){return this}),t),y=s.prototype=u.prototype=Object.create(f);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,p(e,o,"GeneratorFunction")),e.prototype=Object.create(y),e}return a.prototype=s,p(y,"constructor",s),p(s,"constructor",a),a.displayName="GeneratorFunction",p(s,o,"GeneratorFunction"),p(y),p(y,o,"Generator"),p(y,n,function(){return this}),p(y,"toString",function(){return"[object Generator]"}),(l=function(){return{w:c,m:d}})()}function p(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}p=function(e,t,r,n){function c(t,r){p(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(c("next",0),c("throw",1),c("return",2))},p(e,t,r,n)}function y(e){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y(e)}function d(e,t,r,n,o,c,i){try{var u=e[c](i),a=u.value}catch(e){return void r(e)}u.done?t(a):Promise.resolve(a).then(n,o)}function b(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var c=e.apply(t,r);function i(e){d(c,n,o,i,u,"next",e)}function u(e){d(c,n,o,i,u,"throw",e)}i(void 0)})}}function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function v(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach(function(t){g(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function g(e,t,r){return(t=function(e){var t=function(e){if("object"!=y(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=y(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==y(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}e.r(t),e.d(t,{default:()=>G,getToken:()=>T,init:()=>P,logout:()=>E,removeToken:()=>C,toUrl:()=>_});var h=null;function w(){return"undefined"!=typeof window&&"undefined"!=typeof document}function O(e){return w()?new URLSearchParams(window.location.search).get(e):null}function j(e){if(w()){var t=new URLSearchParams(window.location.search);if(t.has(e)){t.delete(e);var r="".concat(window.location.pathname).concat(t.toString()?"?".concat(t.toString()):"");window.history.replaceState({},document.title,r)}}}function S(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=v(v({},{accessCodeKey:"accessCode",tokenKey:"scm_token",timeout:5e3,headers:{},tokenApi:"",refreshCodeApi:"",logoutApi:"",logOutUrl:""}),e);if("string"!=typeof t.accessCodeKey||""===t.accessCodeKey.trim())throw new Error("accessCodeKey必须是有效的字符串");if("string"!=typeof t.tokenKey||""===t.tokenKey.trim())throw new Error("tokenKey必须是有效的字符串");return t}function P(){return k.apply(this,arguments)}function k(){return k=b(l().m(function e(){var t,r,n,o,c=arguments;return l().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t=c.length>0&&void 0!==c[0]?c[0]:{},e.p=1,h=S(t),r=O(h.accessCodeKey),h.tokenApi){e.n=2;break}return e.a(2,{code:-100,msg:"缺少tokenApi",success:!1});case 2:if(!h.tokenApi||!r){e.n=4;break}return e.n=3,s(h.tokenApi,"POST",{accessCode:r},h.headers,h.timeout);case 3:return 0===(n=e.v).code&&n.data&&localStorage.setItem(h.tokenKey,n.data),j(h.accessCodeKey),setTimeout(function(){j(h.accessCodeKey)},300),e.a(2,n);case 4:T()||(window.location.href="".concat(h.logOutUrl,"?redirect_uri=").concat(window.location.href));case 5:return e.a(2,{code:0,msg:"",success:!0});case 6:return e.p=6,o=e.v,e.a(2,{code:-100,msg:"初始化失败: ".concat(o.message),success:!1})}},e,null,[[1,6]])})),k.apply(this,arguments)}function T(){return h&&w()?localStorage.getItem(h.tokenKey):null}function C(){h&&w()&&localStorage.removeItem(h.tokenKey)}function E(){return K.apply(this,arguments)}function K(){return(K=b(l().m(function e(){var t,r;return l().w(function(e){for(;;)switch(e.p=e.n){case 0:if(h){e.n=1;break}return e.a(2,{code:-101,msg:"请先调用init方法初始化",success:!1});case 1:if(h.logoutApi){e.n=2;break}return e.a(2,{code:-102,msg:"未配置logoutApi",success:!1});case 2:return e.p=2,e.n=3,s(h.logoutApi,"POST",{},v(v({},h.headers),{},g({},h.tokenKey,T())),h.timeout);case 3:return t=e.v,C(),h.logOutUrl&&w()&&(window.location.href="".concat(h.logOutUrl,"?redirect_uri=").concat(window.location.href)),e.a(2,t);case 4:return e.p=4,r=e.v,e.a(2,{code:-103,msg:"退出失败: ".concat(r.message),success:!1})}},e,null,[[2,4]])}))).apply(this,arguments)}function _(e){return A.apply(this,arguments)}function A(){return(A=b(l().m(function e(t){var r,n,o,c;return l().w(function(e){for(;;)switch(e.p=e.n){case 0:if(h){e.n=1;break}return e.a(2,{code:-101,msg:"请先调用init方法初始化",success:!1});case 1:if(t){e.n=2;break}return e.a(2,{code:-104,msg:"请提供跳转地址",success:!1});case 2:if(h.refreshCodeApi){e.n=3;break}return e.a(2,{code:-105,msg:"未配置refreshCodeApi",success:!1});case 3:if(r=T()){e.n=4;break}return h.logOutUrl&&w()&&(window.location.href=h.logOutUrl),e.a(2,{code:-106,msg:"未找到有效token",success:!1});case 4:return e.p=4,e.n=5,s(h.refreshCodeApi,"POST",{},v(v({},h.headers),{},g({},h.tokenKey,r)),h.timeout);case 5:return 0===(n=e.v).code&&n.data&&w()&&((o=new URL(t)).searchParams.set(h.accessCodeKey,n.data),window.location.href=o.toString()),e.a(2,n);case 6:return e.p=6,c=e.v,e.a(2,{code:-107,msg:"跳转失败: ".concat(c.message),success:!1})}},e,null,[[4,6]])}))).apply(this,arguments)}const G={init:P,getToken:T,removeToken:C,logout:E,toUrl:_};return t})());
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("lgssoSdk",[],t):"object"==typeof exports?exports.lgssoSdk=t():e.lgssoSdk=t()}(this,()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function n(){var e,t,r="function"==typeof Symbol?Symbol:{},c=r.iterator||"@@iterator",i=r.toStringTag||"@@toStringTag";function u(r,n,c,i){var u=n&&n.prototype instanceof s?n:s,f=Object.create(u.prototype);return o(f,"_invoke",function(r,n,o){var c,i,u,s=0,f=o||[],l=!1,p={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,r){return c=t,i=0,u=e,p.n=r,a}};function y(r,n){for(i=r,u=n,t=0;!l&&s&&!o&&t<f.length;t++){var o,c=f[t],y=p.p,d=c[2];r>3?(o=d===n)&&(u=c[(i=c[4])?5:(i=3,3)],c[4]=c[5]=e):c[0]<=y&&((o=r<2&&y<c[1])?(i=0,p.v=n,p.n=c[1]):y<d&&(o=r<3||c[0]>n||n>d)&&(c[4]=r,c[5]=n,p.n=d,i=0))}if(o||r>1)return a;throw l=!0,n}return function(o,f,d){if(s>1)throw TypeError("Generator is already running");for(l&&1===f&&y(f,d),i=f,u=d;(t=i<2?e:u)||!l;){c||(i?i<3?(i>1&&(p.n=-1),y(i,u)):p.n=u:p.v=u);try{if(s=2,c){if(i||(o="next"),t=c[o]){if(!(t=t.call(c,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,i<2&&(i=0)}else 1===i&&(t=c.return)&&t.call(c),i<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),i=1);c=e}else if((t=(l=p.n<0)?u:r.call(n,p))!==a)break}catch(t){c=e,i=1,u=t}finally{s=1}}return{value:t,done:l}}}(r,c,i),!0),f}var a={};function s(){}function f(){}function l(){}t=Object.getPrototypeOf;var p=[][c]?t(t([][c]())):(o(t={},c,function(){return this}),t),y=l.prototype=s.prototype=Object.create(p);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,o(e,i,"GeneratorFunction")),e.prototype=Object.create(y),e}return f.prototype=l,o(y,"constructor",l),o(l,"constructor",f),f.displayName="GeneratorFunction",o(l,i,"GeneratorFunction"),o(y),o(y,i,"Generator"),o(y,c,function(){return this}),o(y,"toString",function(){return"[object Generator]"}),(n=function(){return{w:u,m:d}})()}function o(e,t,r,n){var c=Object.defineProperty;try{c({},"",{})}catch(e){c=0}o=function(e,t,r,n){function i(t,r){o(e,t,function(e){return this._invoke(t,r,e)})}t?c?c(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},o(e,t,r,n)}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach(function(t){u(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function u(e,t,n){return(t=function(e){var t=function(e){if("object"!=r(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t,r,n,o,c,i){try{var u=e[c](i),a=u.value}catch(e){return void r(e)}u.done?t(a):Promise.resolve(a).then(n,o)}function s(e){return f.apply(this,arguments)}function f(){var e;return e=n().m(function e(t){var r,o,c,u,a,s,f,l,p,y,d=arguments;return n().w(function(e){for(;;)switch(e.p=e.n){case 0:if(r=d.length>1&&void 0!==d[1]?d[1]:"GET",o=d.length>2&&void 0!==d[2]?d[2]:{},c=d.length>3&&void 0!==d[3]?d[3]:{},u=d.length>4&&void 0!==d[4]?d[4]:5e3,"undefined"!=typeof window){e.n=1;break}return e.a(2,{code:-200,msg:"request方法只能在浏览器环境使用",success:!1});case 1:return a=new AbortController,s=setTimeout(function(){return a.abort()},u),"GET"!==(f={method:r.toUpperCase(),headers:i({"Content-Type":"application/json"},c),signal:a.signal}).method&&o&&(f.body=JSON.stringify(o)),e.p=2,e.n=3,fetch(t,f);case 3:if(l=e.v,clearTimeout(s),l.ok){e.n=4;break}return e.a(2,{code:l.status,msg:"HTTP请求失败: ".concat(l.statusText),success:!1});case 4:return e.p=4,e.n=5,l.json();case 5:return p=e.v,e.a(2,p);case 6:return e.p=6,e.v,e.a(2,{code:-201,msg:"响应数据不是有效的JSON格式",success:!1});case 7:if(e.p=7,y=e.v,clearTimeout(s),"AbortError"!==y.name){e.n=8;break}return e.a(2,{code:-202,msg:"请求超时(".concat(u,"ms)"),success:!1});case 8:return e.a(2,{code:-203,msg:"网络请求失败: ".concat(y.message),success:!1});case 9:return e.a(2)}},e,null,[[4,6],[2,7]])}),f=function(){var t=this,r=arguments;return new Promise(function(n,o){var c=e.apply(t,r);function i(e){a(c,n,o,i,u,"next",e)}function u(e){a(c,n,o,i,u,"throw",e)}i(void 0)})},f.apply(this,arguments)}function l(e){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l(e)}function p(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function c(r,n,o,c){var a=n&&n.prototype instanceof u?n:u,s=Object.create(a.prototype);return y(s,"_invoke",function(r,n,o){var c,u,a,s=0,f=o||[],l=!1,p={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,r){return c=t,u=0,a=e,p.n=r,i}};function y(r,n){for(u=r,a=n,t=0;!l&&s&&!o&&t<f.length;t++){var o,c=f[t],y=p.p,d=c[2];r>3?(o=d===n)&&(a=c[(u=c[4])?5:(u=3,3)],c[4]=c[5]=e):c[0]<=y&&((o=r<2&&y<c[1])?(u=0,p.v=n,p.n=c[1]):y<d&&(o=r<3||c[0]>n||n>d)&&(c[4]=r,c[5]=n,p.n=d,u=0))}if(o||r>1)return i;throw l=!0,n}return function(o,f,d){if(s>1)throw TypeError("Generator is already running");for(l&&1===f&&y(f,d),u=f,a=d;(t=u<2?e:a)||!l;){c||(u?u<3?(u>1&&(p.n=-1),y(u,a)):p.n=a:p.v=a);try{if(s=2,c){if(u||(o="next"),t=c[o]){if(!(t=t.call(c,a)))throw TypeError("iterator result is not an object");if(!t.done)return t;a=t.value,u<2&&(u=0)}else 1===u&&(t=c.return)&&t.call(c),u<2&&(a=TypeError("The iterator does not provide a '"+o+"' method"),u=1);c=e}else if((t=(l=p.n<0)?a:r.call(n,p))!==i)break}catch(t){c=e,u=1,a=t}finally{s=1}}return{value:t,done:l}}}(r,o,c),!0),s}var i={};function u(){}function a(){}function s(){}t=Object.getPrototypeOf;var f=[][n]?t(t([][n]())):(y(t={},n,function(){return this}),t),l=s.prototype=u.prototype=Object.create(f);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,y(e,o,"GeneratorFunction")),e.prototype=Object.create(l),e}return a.prototype=s,y(l,"constructor",s),y(s,"constructor",a),a.displayName="GeneratorFunction",y(s,o,"GeneratorFunction"),y(l),y(l,o,"Generator"),y(l,n,function(){return this}),y(l,"toString",function(){return"[object Generator]"}),(p=function(){return{w:c,m:d}})()}function y(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}y=function(e,t,r,n){function c(t,r){y(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(c("next",0),c("throw",1),c("return",2))},y(e,t,r,n)}function d(e,t,r,n,o,c,i){try{var u=e[c](i),a=u.value}catch(e){return void r(e)}u.done?t(a):Promise.resolve(a).then(n,o)}function b(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var c=e.apply(t,r);function i(e){d(c,n,o,i,u,"next",e)}function u(e){d(c,n,o,i,u,"throw",e)}i(void 0)})}}function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function v(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach(function(t){g(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function g(e,t,r){return(t=function(e){var t=function(e){if("object"!=l(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=l(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==l(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}e.r(t),e.d(t,{default:()=>x,getAccessCode:()=>G,getToken:()=>C,init:()=>P,logout:()=>K,removeToken:()=>A,toUrl:()=>E});var h=null;function w(){return"undefined"!=typeof window&&"undefined"!=typeof document}function O(e){return w()?new URLSearchParams(window.location.search).get(e):null}function j(e){if(w()){var t=new URLSearchParams(window.location.search);if(t.has(e)){t.delete(e);var r="".concat(window.location.pathname).concat(t.toString()?"?".concat(t.toString()):"");window.history.replaceState({},document.title,r)}}}function S(){return w()?window.location.href:""}function k(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=v(v({},{accessCodeKey:"accessCode",tokenKey:"scm_token",timeout:5e3,headers:{},tokenApi:"",refreshCodeApi:"",logoutApi:"",logOutUrl:""}),e);if("string"!=typeof t.accessCodeKey||""===t.accessCodeKey.trim())throw new Error("accessCodeKey必须是有效的字符串");if("string"!=typeof t.tokenKey||""===t.tokenKey.trim())throw new Error("tokenKey必须是有效的字符串");return t}function P(){return T.apply(this,arguments)}function T(){return T=b(p().m(function e(){var t,r,n,o,c=arguments;return p().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t=c.length>0&&void 0!==c[0]?c[0]:{},e.p=1,h=k(t),r=O(h.accessCodeKey),j(h.accessCodeKey),h.tokenApi){e.n=2;break}return e.a(2,{code:-100,msg:"缺少tokenApi",success:!1});case 2:if(!h.tokenApi||!r){e.n=4;break}return e.n=3,s(h.tokenApi,"POST",{accessCode:r},h.headers,h.timeout);case 3:return 0===(n=e.v).code&&n.data&&localStorage.setItem(h.tokenKey,n.data),setTimeout(function(){return j(h.accessCodeKey)},300),e.a(2,n);case 4:C()||(window.location.href="".concat(h.logOutUrl,"?redirect_uri=").concat(encodeURIComponent(S())));case 5:return e.a(2,{code:0,msg:"",success:!0});case 6:return e.p=6,o=e.v,e.a(2,{code:-100,msg:"初始化失败: ".concat(o.message),success:!1})}},e,null,[[1,6]])})),T.apply(this,arguments)}function C(){return h&&w()?localStorage.getItem(h.tokenKey):null}function A(){h&&w()&&localStorage.removeItem(h.tokenKey)}function K(){return _.apply(this,arguments)}function _(){return(_=b(p().m(function e(){var t,r;return p().w(function(e){for(;;)switch(e.p=e.n){case 0:if(h){e.n=1;break}return e.a(2,{code:-101,msg:"请先调用init方法初始化",success:!1});case 1:if(h.logoutApi){e.n=2;break}return e.a(2,{code:-102,msg:"未配置logoutApi",success:!1});case 2:return e.p=2,e.n=3,s(h.logoutApi,"POST",{},v(v({},h.headers),{},g({},h.tokenKey,C())),h.timeout);case 3:return t=e.v,A(),h.logOutUrl&&w()&&(window.location.href="".concat(h.logOutUrl,"?redirect_uri=").concat(encodeURIComponent(S()))),e.a(2,t);case 4:return e.p=4,r=e.v,e.a(2,{code:-103,msg:"退出失败: ".concat(r.message),success:!1})}},e,null,[[2,4]])}))).apply(this,arguments)}function E(e){return U.apply(this,arguments)}function U(){return(U=b(p().m(function e(t){var r,n,o,c;return p().w(function(e){for(;;)switch(e.p=e.n){case 0:if(h){e.n=1;break}return e.a(2,{code:-101,msg:"请先调用init方法初始化",success:!1});case 1:if(t){e.n=2;break}return e.a(2,{code:-104,msg:"请提供跳转地址",success:!1});case 2:if(h.refreshCodeApi){e.n=3;break}return e.a(2,{code:-105,msg:"未配置refreshCodeApi",success:!1});case 3:if(r=C()){e.n=4;break}return h.logOutUrl&&w()&&(window.location.href="".concat(h.logOutUrl,"?redirect_uri=").concat(encodeURIComponent(S()))),e.a(2,{code:-106,msg:"未找到有效token",success:!1});case 4:return e.p=4,e.n=5,s(h.refreshCodeApi,"POST",{},v(v({},h.headers),{},g({},h.tokenKey,r)),h.timeout);case 5:return 0===(n=e.v).code&&n.data&&w()&&((o=new URL(t)).searchParams.set(h.accessCodeKey,n.data),window.location.href=o.toString()),e.a(2,n);case 6:return e.p=6,c=e.v,e.a(2,{code:-107,msg:"跳转失败: ".concat(c.message),success:!1})}},e,null,[[4,6]])}))).apply(this,arguments)}var G=function(){var e=b(p().m(function e(){var t;return p().w(function(e){for(;;)switch(e.n){case 0:if(h){e.n=1;break}return e.a(2,{code:-101,msg:"请先调用init方法初始化",success:!1});case 1:if(t=C()){e.n=2;break}return e.a(2,{code:-106,msg:"未找到有效token",success:!1});case 2:return e.n=3,s(h.refreshCodeApi,"POST",{},v(v({},h.headers),{},g({},h.tokenKey,t)),h.timeout);case 3:return e.a(2,e.v)}},e)}));return function(){return e.apply(this,arguments)}}();const x={init:P,getToken:C,removeToken:A,logout:K,toUrl:E,getAccessCode:G};return t})());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lgsso-sdk",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "LG SSO登录工具库,处理单点登录、token管理和系统间跳转",
5
5
  "main": "dist/lgsso-sdk.js",
6
6
  "types": "src/index.d.ts",
package/src/index.js CHANGED
@@ -36,6 +36,15 @@ function removeQueryParam(name) {
36
36
  }
37
37
  }
38
38
 
39
+ /**
40
+ * 获取当前完整URL(包含所有参数)
41
+ * @returns {string} 当前完整URL(如 local.watest.zlgx.com:3000?a=1)
42
+ */
43
+ function getCurrentUrlWithParams() {
44
+ if (!isBrowser()) return '';
45
+ return window.location.href; // 直接返回完整URL(含参数)
46
+ }
47
+
39
48
  /**
40
49
  * 验证并合并配置
41
50
  * @param {Object} options - 用户配置
@@ -53,7 +62,6 @@ function validateAndMergeConfig(options = {}) {
53
62
  logOutUrl: ''
54
63
  };
55
64
 
56
- // 合并配置
57
65
  const merged = { ...defaults, ...options };
58
66
 
59
67
  // 基础验证
@@ -74,19 +82,14 @@ function validateAndMergeConfig(options = {}) {
74
82
  */
75
83
  export async function init(options = {}) {
76
84
  try {
77
- // 验证配置
78
85
  config = validateAndMergeConfig(options);
79
86
 
80
- // 从URL获取accessCode
81
87
  const accessCode = getQueryParam(config.accessCodeKey);
88
+ removeQueryParam(config.accessCodeKey);
82
89
  if (!config.tokenApi) {
83
- return {
84
- code: -100,
85
- msg: `缺少tokenApi`,
86
- success: false
87
- };
90
+ return { code: -100, msg: `缺少tokenApi`, success: false };
88
91
  }
89
- // 若配置了tokenApi且存在accessCode,自动换取token
92
+
90
93
  if (config.tokenApi && accessCode) {
91
94
  const result = await request(
92
95
  config.tokenApi,
@@ -96,33 +99,19 @@ export async function init(options = {}) {
96
99
  config.timeout
97
100
  );
98
101
 
99
- // 无论code是否为0,只要返回了token就存储
100
102
  if (result.code === 0 && result.data) {
101
103
  localStorage.setItem(config.tokenKey, result.data);
102
104
  }
103
- removeQueryParam(config.accessCodeKey);
104
- setTimeout(() => {
105
- // 移除URL中的accessCode
106
- removeQueryParam(config.accessCodeKey);
107
- }, 300)
105
+ setTimeout(() => removeQueryParam(config.accessCodeKey), 300);
108
106
  return result;
109
- }
110
- else if (!getToken()) {
111
- window.location.href = `${config.logOutUrl}?redirect_uri=${window.location.href}`;
107
+ } else if (!getToken()) {
108
+ // 跳转时携带完整URL参数(如 local.watest.zlgx.com:3000?a=1)
109
+ window.location.href = `${config.logOutUrl}?redirect_uri=${encodeURIComponent(getCurrentUrlWithParams())}`;
112
110
  }
113
111
 
114
- // 没有accessCode的情况
115
- return {
116
- code: 0,
117
- msg: '',
118
- success: true
119
- };
112
+ return { code: 0, msg: '', success: true };
120
113
  } catch (error) {
121
- return {
122
- code: -100,
123
- msg: `初始化失败: ${error.message}`,
124
- success: false
125
- };
114
+ return { code: -100, msg: `初始化失败: ${error.message}`, success: false };
126
115
  }
127
116
  }
128
117
 
@@ -149,23 +138,14 @@ export function removeToken() {
149
138
  */
150
139
  export async function logout() {
151
140
  if (!config) {
152
- return {
153
- code: -101,
154
- msg: '请先调用init方法初始化',
155
- success: false
156
- };
141
+ return { code: -101, msg: '请先调用init方法初始化', success: false };
157
142
  }
158
143
 
159
144
  if (!config.logoutApi) {
160
- return {
161
- code: -102,
162
- msg: '未配置logoutApi',
163
- success: false
164
- };
145
+ return { code: -102, msg: '未配置logoutApi', success: false };
165
146
  }
166
147
 
167
148
  try {
168
- // 调用退出接口
169
149
  const result = await request(
170
150
  config.logoutApi,
171
151
  'POST',
@@ -174,21 +154,16 @@ export async function logout() {
174
154
  config.timeout
175
155
  );
176
156
 
177
- // 无论接口返回如何,都删除本地token
178
157
  removeToken();
179
158
 
180
- // 跳转到退出地址
181
159
  if (config.logOutUrl && isBrowser()) {
182
- window.location.href = `${config.logOutUrl}?redirect_uri=${window.location.href}`;
160
+ // 携带完整URL参数跳转
161
+ window.location.href = `${config.logOutUrl}?redirect_uri=${encodeURIComponent(getCurrentUrlWithParams())}`;
183
162
  }
184
163
 
185
164
  return result;
186
165
  } catch (error) {
187
- return {
188
- code: -103,
189
- msg: `退出失败: ${error.message}`,
190
- success: false
191
- };
166
+ return { code: -103, msg: `退出失败: ${error.message}`, success: false };
192
167
  }
193
168
  }
194
169
 
@@ -199,45 +174,27 @@ export async function logout() {
199
174
  */
200
175
  export async function toUrl(redirectUrl) {
201
176
  if (!config) {
202
- return {
203
- code: -101,
204
- msg: '请先调用init方法初始化',
205
- success: false
206
- };
177
+ return { code: -101, msg: '请先调用init方法初始化', success: false };
207
178
  }
208
179
 
209
180
  if (!redirectUrl) {
210
- return {
211
- code: -104,
212
- msg: '请提供跳转地址',
213
- success: false
214
- };
181
+ return { code: -104, msg: '请提供跳转地址', success: false };
215
182
  }
216
183
 
217
184
  if (!config.refreshCodeApi) {
218
- return {
219
- code: -105,
220
- msg: '未配置refreshCodeApi',
221
- success: false
222
- };
185
+ return { code: -105, msg: '未配置refreshCodeApi', success: false };
223
186
  }
224
187
 
225
- // 获取当前token
226
188
  const token = getToken();
227
189
  if (!token) {
228
- // 没有token时跳转到登录页
229
190
  if (config.logOutUrl && isBrowser()) {
230
- window.location.href = config.logOutUrl;
191
+ // 携带完整URL参数跳转
192
+ window.location.href = `${config.logOutUrl}?redirect_uri=${encodeURIComponent(getCurrentUrlWithParams())}`;
231
193
  }
232
- return {
233
- code: -106,
234
- msg: '未找到有效token',
235
- success: false
236
- };
194
+ return { code: -106, msg: '未找到有效token', success: false };
237
195
  }
238
196
 
239
197
  try {
240
- // 调用接口换取新accessCode
241
198
  const result = await request(
242
199
  config.refreshCodeApi,
243
200
  'POST',
@@ -246,8 +203,6 @@ export async function toUrl(redirectUrl) {
246
203
  config.timeout
247
204
  );
248
205
 
249
- // 成功获取code后跳转
250
-
251
206
  if (result.code === 0 && result.data && isBrowser()) {
252
207
  const url = new URL(redirectUrl);
253
208
  url.searchParams.set(config.accessCodeKey, result.data);
@@ -256,19 +211,37 @@ export async function toUrl(redirectUrl) {
256
211
 
257
212
  return result;
258
213
  } catch (error) {
259
- return {
260
- code: -107,
261
- msg: `跳转失败: ${error.message}`,
262
- success: false
263
- };
214
+ return { code: -107, msg: `跳转失败: ${error.message}`, success: false };
264
215
  }
265
216
  }
266
217
 
267
- // 默认导出
218
+ /**
219
+ * 获取accessCode(修复token未定义问题)
220
+ * @returns {Promise<Object>} 接口返回结果
221
+ */
222
+ export const getAccessCode = async () => {
223
+ if (!config) {
224
+ return { code: -101, msg: '请先调用init方法初始化', success: false };
225
+ }
226
+ const token = getToken(); // 从localStorage获取token
227
+ if (!token) {
228
+ return { code: -106, msg: '未找到有效token', success: false };
229
+ }
230
+ return await request(
231
+ config.refreshCodeApi,
232
+ 'POST',
233
+ {},
234
+ { ...config.headers, [config.tokenKey]: token }, // 使用获取到的token
235
+ config.timeout
236
+ );
237
+ };
238
+
239
+ // 默认导出(修复方法名拼写错误:getCode → getAccessCode)
268
240
  export default {
269
241
  init,
270
242
  getToken,
271
243
  removeToken,
272
244
  logout,
273
- toUrl
274
- };
245
+ toUrl,
246
+ getAccessCode
247
+ };