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 +1 -1
- package/package.json +1 -1
- package/src/index.js +55 -82
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
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
|
-
|
|
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
|
-
|
|
111
|
-
window.location.href = `${config.logOutUrl}?redirect_uri=${
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
+
};
|