@nocobase/plugin-auth
Version:
User authentication management, including password, SMS, and support for Single Sign-On (SSO) protocols, with extensibility.
10 lines (9 loc) • 9.23 kB
JavaScript
/**
* This file is part of the NocoBase (R) project.
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
* Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
(self.webpackChunk_nocobase_plugin_auth=self.webpackChunk_nocobase_plugin_auth||[]).push([["645"],{625:function(e,t,n){"use strict";n.r(t),n.d(t,{TokenPolicySettings:function(){return I}});var r,o=n(156),i=n.n(o),a=n(772),s=n(721),u=n(875),c=n(584),l=n(748),f=n(505),m=n(563),p=n(83),d=n.n(p),h="token-policy-config",y="tokenControlConfig";function b(e,t,n,r,o,i,a){try{var s=e[i](a),u=s.value}catch(e){n(e);return}s.done?t(u):Promise.resolve(u).then(r,o)}function v(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){b(i,r,o,a,s,"next",e)}function s(e){b(i,r,o,a,s,"throw",e)}a(void 0)})}}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){var u=[i,s];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var k="useSubmitActionProps",x="useEditForm",O=(g(r={},x,function(){var e=(0,a.useAPIClient)(),t=(0,o.useMemo)(function(){return(0,m.createForm)()},[]);return(0,o.useEffect)(function(){var n;(n=v(function(){var n,r;return w(this,function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),[4,e.resource(y).get({filterByTk:h})];case 1:return(null==(r=o.sent().data)||null==(n=r.data)?void 0:n.config)&&t.setValues(r.data.config),[3,3];case 2:return console.error(o.sent()),[3,3];case 3:return[2]}})}),function(){return n.apply(this,arguments)})()},[t,e]),{form:t}}),g(r,k,function(){var e=s.App.useApp().message,t=(0,a.useAPIClient)(),n=(0,f.useForm)(),r=(0,l.o$)().t;return{type:"primary",onClick:function(){return v(function(){var o,i,a,s;return w(this,function(u){switch(u.label){case 0:if(n.clearErrors("*"),i=(o=n.values).tokenExpirationTime,a=o.sessionExpirationTime,o.expiredTokenRenewLimit,d()(i)>=d()(a))return n.setFieldState("tokenExpirationTime",function(e){e.feedbacks=[{type:"error",code:"ValidateError",messages:[r("Token validity period must be less than session validity period!")]}]}),[2];return[4,n.submit()];case 1:return u.sent(),[4,t.resource(y).update({values:{config:n.values},filterByTk:h})];case 2:return(s=u.sent())&&200===s.status&&e.success(r("Saved successfully!")),[2]}})})()}}}),r);function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var T=s.Select.Option,j=(0,f.connect)(function(e){var t,n=(0,l.o$)().t,r=e.value,a=e.onChange,u=e.minNum,c=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["value","onChange","minNum"]),f=r?r.match(/^(\d*)([a-zA-Z]*)$/):null;(0,o.useEffect)(function(){f||a("10m")},[f,a]);var m=(t=f?[parseInt(f[1]),f[2]]:[10,"m"],function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,s=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),i.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(s)throw r}}return i}}(t,2)||function(e,t){if(e){if("string"==typeof e)return E(e,2);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return E(e,t)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),p=m[0],d=m[1],h=i().createElement(s.Select,{value:d,onChange:function(e){return a("".concat(p).concat(e))},style:{width:120}},i().createElement(T,{value:"m"},n("Minutes")),i().createElement(T,{value:"h"},n("Hours")),i().createElement(T,{value:"d"},n("Days")));return i().createElement(s.InputNumber,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){S(e,t,n[t])})}return e}({value:p,addonAfter:h,min:void 0===u?1:u,onChange:function(e){return a("".concat(null!=e?e:1).concat(d))}},c))},(0,f.mapProps)({onInput:"onChange"})),A="InputTime",P=S({},A,j),C={name:(0,u.uid)(),"x-component":"FormV2","x-use-component-props":x,type:"object",properties:{sessionExpirationTime:{type:"string",title:"{{t('Session validity period')}}","x-decorator":"FormItem","x-component":A,required:!0,description:(0,c.tval)("The maximum valid time for each user login. During the session validity, the Token will be automatically updated. After the timeout, the user is required to log in again.")},tokenExpirationTime:{type:"string",title:"{{t('Token validity period')}}","x-decorator":"FormItem","x-component":A,required:!0,description:(0,c.tval)("The validity period of each issued API Token. After the Token expires, if it is within the session validity period and has not exceeded the refresh limit, the server will automatically issue a new Token to maintain the user session, otherwise the user is required to log in again. (Each Token can only be refreshed once)")},expiredTokenRenewLimit:{type:"string",title:"{{t('Expired token refresh limit')}}","x-decorator":"FormItem","x-component":A,"x-component-props":{minNum:0},required:!0,description:(0,c.tval)("The maximum time limit allowed for refreshing a Token after it expires. After this time limit, the token cannot be automatically renewed, and the user needs to log in again.")},footer:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column"},properties:{submit:{title:'{{t("Submit")}}',"x-component":"Action","x-use-component-props":k}}}}},I=function(){var e=(0,l.o$)().t;return i().createElement(s.Card,{bordered:!1},i().createElement(a.SchemaComponent,{schema:C,scope:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({t:e},O),components:P}))}},83:function(e){function t(e,t,n,r){return Math.round(e/n)+" "+r+(t>=1.5*n?"s":"")}e.exports=function(e,n){n=n||{};var r,o,i,a,s=typeof e;if("string"===s&&e.length>0){var u=e;if(!((u=String(u)).length>100)){var c=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(u);if(c){var l=parseFloat(c[1]);switch((c[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*l;case"weeks":case"week":case"w":return 6048e5*l;case"days":case"day":case"d":return 864e5*l;case"hours":case"hour":case"hrs":case"hr":case"h":return 36e5*l;case"minutes":case"minute":case"mins":case"min":case"m":return 6e4*l;case"seconds":case"second":case"secs":case"sec":case"s":return 1e3*l;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return l;default:break}}}return}if("number"===s&&isFinite(e)){return n.long?(o=Math.abs(r=e))>=864e5?t(r,o,864e5,"day"):o>=36e5?t(r,o,36e5,"hour"):o>=6e4?t(r,o,6e4,"minute"):o>=1e3?t(r,o,1e3,"second"):r+" ms":(a=Math.abs(i=e))>=864e5?Math.round(i/864e5)+"d":a>=36e5?Math.round(i/36e5)+"h":a>=6e4?Math.round(i/6e4)+"m":a>=1e3?Math.round(i/1e3)+"s":i+"ms"}throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}}}]);