@nocobase/plugin-auth-sms 1.7.0-beta.8 → 1.7.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/dist/client/index.js +1 -1
- package/dist/client/locale/index.d.ts +1 -1
- package/dist/externalVersion.js +8 -8
- package/dist/locale/en-US.json +2 -1
- package/dist/locale/zh-CN.json +2 -1
- package/dist/{client/VerificationCode.d.ts → server/migrations/20250507222432-fix-verifier-typo.d.ts} +6 -7
- package/dist/server/migrations/20250507222432-fix-verifier-typo.js +69 -0
- package/dist/server/plugin.js +3 -10
- package/dist/server/sms-auth.js +13 -6
- package/package.json +2 -2
package/dist/client/index.js
CHANGED
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react-i18next"),require("@nocobase/plugin-auth/client"),require("@formily/react"),require("@nocobase/client"),require("react"),require("antd")):"function"==typeof define&&define.amd?define("@nocobase/plugin-auth-sms",["react-i18next","@nocobase/plugin-auth/client","@formily/react","@nocobase/client","react","antd"],t):"object"==typeof exports?exports["@nocobase/plugin-auth-sms"]=t(require("react-i18next"),require("@nocobase/plugin-auth/client"),require("@formily/react"),require("@nocobase/client"),require("react"),require("antd")):e["@nocobase/plugin-auth-sms"]=t(e["react-i18next"],e["@nocobase/plugin-auth/client"],e["@formily/react"],e["@nocobase/client"],e.react,e.antd)}(self,function(e,t,n,r,o,i){return function(){"use strict";var u={505:function(e){e.exports=n},772:function(e){e.exports=r},689:function(e){e.exports=t},721:function(e){e.exports=i},156:function(e){e.exports=o},238:function(t){t.exports=e}},c={};function a(e){var t=c[e];if(void 0!==t)return t.exports;var n=c[e]={exports:{}};return u[e](n,n.exports,a),n.exports}a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,{a:t}),t},a.d=function(e,t){for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var l={};a.r(l),a.d(l,{PluginAuthSMSClient:function(){return C},default:function(){return F}});var s=a("772"),p=a("689"),f=a.n(p),y=a("156"),b=a.n(y),d=a("505"),h=a("721"),m=a("238");function v(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 g(e,t,n,r,o,i,u){try{var c=e[i](u),a=c.value}catch(e){n(e);return}c.done?t(a):Promise.resolve(a).then(r,o)}function x(){var e,t,n=(e=["\n display: flex;\n gap: 0.5em;\n "],!t&&(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return x=function(){return n},n}function S(e){var t,n,r=e.targetFieldName,o=void 0===r?"phone":r,i=e.actionType,u=e.value,c=e.onChange,a=(0,m.useTranslation)().t,l=(0,s.useAPIClient)(),p=(0,d.useForm)();var f=(t=(0,y.useState)(0),n=2,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=[],u=!0,c=!1;try{for(o=o.call(e);!(u=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);u=!0);}catch(e){c=!0,r=e}finally{try{!u&&null!=o.return&&o.return()}finally{if(c)throw r}}return i}}(t,2)||function(e,t){if(e){if("string"==typeof e)return v(e,t);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 v(e,t)}}(t,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),S=f[0],w=f[1],j=(0,y.useRef)(null);(0,y.useEffect)(function(){S<=0&&j.current&&clearInterval(j.current)},[S]);function O(){var e;return e=function(){var e;return function(e,t){var n,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return u.label++,{value:i[1],done:!1};case 5:u.label++,r=i[1],i=[0];continue;case 7:i=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){u=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){u.label=i[1];break}if(6===i[0]&&u.label<o[1]){u.label=o[1],o=i;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(i);break}o[2]&&u.ops.pop(),u.trys.pop();continue}i=t.call(e,u)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}(this,function(t){switch(t.label){case 0:if(S>0)return[2];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,l.resource("verifications").create({values:{type:i,phone:p.values[o]}})];case 2:return e=t.sent().data.data,h.message.success(a("Operation succeeded")),u&&c(""),w(e.expiresAt?Math.ceil((Date.parse(e.expiresAt)-Date.now())/1e3):60),j.current=setInterval(function(){w(function(e){return e-1})},1e3),[3,4];case 3:return console.error(t.sent()),[3,4];case 4:return[2]}})},(O=function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function u(e){g(i,r,o,u,c,"next",e)}function c(e){g(i,r,o,u,c,"throw",e)}u(void 0)})}).apply(this,arguments)}return b().createElement("fieldset",{className:(0,s.css)(x())},b().createElement(h.Input,{value:u,onChange:c,placeholder:a("Verification code")}),b().createElement(h.Button,{onClick:function(){return O.apply(this,arguments)},disabled:S>0},S>0?a("Retry after {{count}} seconds",{count:S}):a("Send code")))}var w={type:"object",name:"phoneForm","x-component":"Form",properties:{phone:{type:"string",required:!0,"x-component":"Input","x-validator":"phone","x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Phone")}}',style:{}}},code:{type:"string",required:!0,"x-component":"VerificationCode","x-component-props":{actionType:"auth:signIn",targetFieldName:"phone"},"x-decorator":"FormItem"},actions:{title:'{{t("Sign in")}}',type:"void","x-component":"Action","x-component-props":{htmlType:"submit",block:!0,type:"primary",useAction:"{{ useSMSSignIn }}",style:{width:"100%"}}},tip:{type:"void","x-component":"div","x-content":'{{t("User will be registered automatically if not exists.", {ns: "auth-sms"})}}',"x-component-props":{style:{color:"#ccc"}},"x-visible":"{{ autoSignup }}"}}},j=function(e){var t=e.authenticator,n=t.name,r=t.options,o=!!(null==r?void 0:r.autoSignup);return b().createElement(s.SchemaComponent,{schema:w,scope:{useSMSSignIn:function(){return(0,p.useSignIn)(n)},autoSignup:o},components:{VerificationCode:S}})},O=function(){var e=(0,m.useTranslation)("auth-sms").t;return b().createElement(s.SchemaComponent,{scope:{t:e},schema:{type:"object",properties:{sms:{type:"void",properties:{public:{type:"object",properties:{autoSignup:{"x-decorator":"FormItem",type:"boolean",title:'{{t("Sign up automatically when the user does not exist")}}',"x-component":"Checkbox"}}}}}}}})};function P(e,t,n,r,o,i,u){try{var c=e[i](u),a=c.value}catch(e){n(e);return}c.done?t(a):Promise.resolve(a).then(r,o)}function I(e,t,n){return(I=E()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&k(o,n.prototype),o}).apply(null,arguments)}function q(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function T(e){return(T=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function k(e,t){return(k=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function A(e){var t="function"==typeof Map?new Map:void 0;return(A=function(e){var n;if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return I(e,arguments,T(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),k(r,e)})(e)}function E(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(E=function(){return!!e})()}var C=function(e){var t,n,r;function o(){var e,t,n;return!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,o),e=this,t=o,n=arguments,t=T(t),function(e,t){return t&&("object"===function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}(t)||"function"==typeof t)?t:function(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,E()?Reflect.construct(t,n||[],T(e).constructor):t.apply(e,n))}return!function(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&k(e,t)}(o,e),t=o,n=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return u.label++,{value:i[1],done:!1};case 5:u.label++,r=i[1],i=[0];continue;case 7:i=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){u=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){u.label=i[1];break}if(6===i[0]&&u.label<o[1]){u.label=o[1],o=i;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(i);break}o[2]&&u.ops.pop(),u.trys.pop();continue}i=t.call(e,u)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}(this,function(e){return t.app.pm.get(f()).registerType("SMS",{components:{SignInForm:j,AdminSettingsForm:O}}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function u(e){P(i,r,o,u,c,"next",e)}function c(e){P(i,r,o,u,c,"throw",e)}u(void 0)})})()}}],q(t.prototype,n),o}(A(s.Plugin)),F=C;return l}()});
|
|
10
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-i18next"),require("@formily/react"),require("@nocobase/plugin-auth/client"),require("@nocobase/client"),require("@nocobase/plugin-verification/client")):"function"==typeof define&&define.amd?define("@nocobase/plugin-auth-sms",["react","react-i18next","@formily/react","@nocobase/plugin-auth/client","@nocobase/client","@nocobase/plugin-verification/client"],t):"object"==typeof exports?exports["@nocobase/plugin-auth-sms"]=t(require("react"),require("react-i18next"),require("@formily/react"),require("@nocobase/plugin-auth/client"),require("@nocobase/client"),require("@nocobase/plugin-verification/client")):e["@nocobase/plugin-auth-sms"]=t(e.react,e["react-i18next"],e["@formily/react"],e["@nocobase/plugin-auth/client"],e["@nocobase/client"],e["@nocobase/plugin-verification/client"])}(self,function(e,t,n,r,o,i){return function(){"use strict";var u={505:function(e){e.exports=n},772:function(e){e.exports=o},689:function(e){e.exports=r},697:function(e){e.exports=i},156:function(t){t.exports=e},238:function(e){e.exports=t}},c={};function a(e){var t=c[e];if(void 0!==t)return t.exports;var n=c[e]={exports:{}};return u[e](n,n.exports,a),n.exports}a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,{a:t}),t},a.d=function(e,t){for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var l={};return!function(){a.r(l),a.d(l,{PluginAuthSMSClient:function(){return w},default:function(){return P}});var e=a(772),t=a(689),n=a.n(t),r=a(505),o=a(156),i=a.n(o),u=a(697),c=a(238);function s(){return(0,c.useTranslation)(["auth-sms","client"],{nsMode:"fallback"})}function p(e,t,n,r,o,i,u){try{var c=e[i](u),a=c.value}catch(e){n(e);return}c.done?t(a):Promise.resolve(a).then(r,o)}var f={type:"object",name:"phoneForm","x-component":"FormV2",properties:{form:{type:"void","x-component":"VerificationForm","x-component-props":{actionType:"auth:signIn",verifier:"{{ verifier }}"}},actions:{type:"void",title:'{{t("Sign in")}}',"x-component":"Action","x-use-component-props":"useVerifyActionProps","x-component-props":{htmlType:"submit",block:!0,type:"primary",style:{width:"100%"}}},tip:{type:"void","x-component":"div","x-content":'{{t("User will be registered automatically if not exists.", {ns: "auth-sms"})}}',"x-component-props":{style:{color:"#ccc"}},"x-visible":"{{ autoSignup }}"}}},y=function(n){var o=(0,r.useForm)(),i=(0,e.useAPIClient)(),u=(0,t.useRedirect)(),c=(0,e.useCurrentUserContext)().refreshAsync;return{title:(0,s().t)("Sign in"),onClick:function(){var e;return(e=function(){return function(e,t){var n,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){var a=[i,c];if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return u.label++,{value:a[1],done:!1};case 5:u.label++,r=a[1],a=[0];continue;case 7:a=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){u=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){u.label=a[1];break}if(6===a[0]&&u.label<o[1]){u.label=o[1],o=a;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(a);break}o[2]&&u.ops.pop(),u.trys.pop();continue}a=t.call(e,u)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}}}(this,function(e){switch(e.label){case 0:return[4,o.submit()];case 1:return e.sent(),[4,i.auth.signIn(o.values,n)];case 2:return e.sent(),[4,c()];case 3:return e.sent(),u(),[2]}})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function u(e){p(i,r,o,u,c,"next",e)}function c(e){p(i,r,o,u,c,"throw",e)}u(void 0)})})()}}},b=function(t){var n=t.authenticator,r=n.name,o=n.options,c=!!(null==o?void 0:o.autoSignup),a=(0,e.usePlugin)("verification").verificationManager.getVerification(u.SMS_OTP_VERIFICATION_TYPE),l=null==a?void 0:a.components.VerificationForm;return i().createElement(e.SchemaComponent,{schema:f,scope:{useVerifyActionProps:function(){return y(r)},autoSignup:c,verifier:null==o?void 0:o.verifier},components:{VerificationForm:l}})},v=function(){var t=s().t;return i().createElement(e.SchemaComponent,{scope:{t:t},schema:{type:"object",properties:{sms:{type:"void",properties:{public:{type:"object",properties:{verifier:{type:"string","x-component":"VerifierSelect","x-component-props":{title:'{{t("Verifier")}}',scene:"auth-sms"}},autoSignup:{"x-decorator":"FormItem",type:"boolean",title:'{{t("Sign up automatically when the user does not exist")}}',"x-component":"Checkbox"}}}}}}}})};function h(e,t,n,r,o,i,u){try{var c=e[i](u),a=c.value}catch(e){n(e);return}c.done?t(a):Promise.resolve(a).then(r,o)}function m(e,t,n){return(m=S()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&g(o,n.prototype),o}).apply(null,arguments)}function d(e){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function g(e,t){return(g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function x(e){var t="function"==typeof Map?new Map:void 0;return(x=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return m(e,arguments,d(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),g(n,e)})(e)}function S(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(S=function(){return!!e})()}var w=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function r(){var e,t;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return e=r,t=arguments,e=d(e),function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,S()?Reflect.construct(e,t||[],d(this).constructor):e.apply(this,t))}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&g(r,e),t=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){var a=[i,c];if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return u.label++,{value:a[1],done:!1};case 5:u.label++,r=a[1],a=[0];continue;case 7:a=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){u=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){u.label=a[1];break}if(6===a[0]&&u.label<o[1]){u.label=o[1],o=a;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(a);break}o[2]&&u.ops.pop(),u.trys.pop();continue}a=t.call(e,u)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}}}(this,function(e){return t.app.pm.get(n()).registerType("SMS",{components:{SignInForm:b,AdminSettingsForm:v}}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function u(e){h(i,r,o,u,c,"next",e)}function c(e){h(i,r,o,u,c,"throw",e)}u(void 0)})})()}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(r.prototype,t),r}(x(e.Plugin)),P=w}(),l}()});
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
export declare const NAMESPACE = "auth-sms";
|
|
10
|
-
export declare function useAuthTranslation(): import("react-i18next").UseTranslationResponse<"auth-sms", undefined>;
|
|
10
|
+
export declare function useAuthTranslation(): import("react-i18next").UseTranslationResponse<("auth-sms" | "client")[], undefined>;
|
package/dist/externalVersion.js
CHANGED
|
@@ -8,15 +8,15 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/client": "1.7.0
|
|
11
|
+
"@nocobase/client": "1.7.0",
|
|
12
12
|
"react": "18.2.0",
|
|
13
13
|
"@formily/react": "2.3.0",
|
|
14
|
-
"@nocobase/plugin-auth": "1.7.0
|
|
15
|
-
"
|
|
14
|
+
"@nocobase/plugin-auth": "1.7.0",
|
|
15
|
+
"@nocobase/plugin-verification": "1.7.0",
|
|
16
|
+
"@nocobase/server": "1.7.0",
|
|
17
|
+
"@nocobase/utils": "1.7.0",
|
|
18
|
+
"@nocobase/auth": "1.7.0",
|
|
19
|
+
"@nocobase/database": "1.7.0",
|
|
16
20
|
"react-i18next": "11.18.6",
|
|
17
|
-
"
|
|
18
|
-
"@nocobase/server": "1.7.0-beta.8",
|
|
19
|
-
"@nocobase/utils": "1.7.0-beta.8",
|
|
20
|
-
"@nocobase/auth": "1.7.0-beta.8",
|
|
21
|
-
"@nocobase/database": "1.7.0-beta.8"
|
|
21
|
+
"lodash": "4.17.21"
|
|
22
22
|
};
|
package/dist/locale/en-US.json
CHANGED
|
@@ -2,5 +2,6 @@
|
|
|
2
2
|
"Sign in via SMS": "Sign in via SMS",
|
|
3
3
|
"User will be registered automatically if not exists.": "User will be registered automatically if not exists.",
|
|
4
4
|
"Sign up automatically when the user does not exist": "Sign up automatically when the user does not exist",
|
|
5
|
-
"SMS": "SMS"
|
|
5
|
+
"SMS": "SMS",
|
|
6
|
+
"Verifier": "Verifier"
|
|
6
7
|
}
|
package/dist/locale/zh-CN.json
CHANGED
|
@@ -6,10 +6,9 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
-
import
|
|
10
|
-
export default
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}): React.JSX.Element;
|
|
9
|
+
import { Migration } from '@nocobase/server';
|
|
10
|
+
export default class extends Migration {
|
|
11
|
+
on: string;
|
|
12
|
+
appVersion: string;
|
|
13
|
+
up(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
var __create = Object.create;
|
|
11
|
+
var __defProp = Object.defineProperty;
|
|
12
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
15
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
+
var __export = (target, all) => {
|
|
17
|
+
for (var name in all)
|
|
18
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
19
|
+
};
|
|
20
|
+
var __copyProps = (to, from, except, desc) => {
|
|
21
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
22
|
+
for (let key of __getOwnPropNames(from))
|
|
23
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
24
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
25
|
+
}
|
|
26
|
+
return to;
|
|
27
|
+
};
|
|
28
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
29
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
30
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
31
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
32
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
33
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
34
|
+
mod
|
|
35
|
+
));
|
|
36
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
37
|
+
var fix_verifier_typo_exports = {};
|
|
38
|
+
__export(fix_verifier_typo_exports, {
|
|
39
|
+
default: () => fix_verifier_typo_default
|
|
40
|
+
});
|
|
41
|
+
module.exports = __toCommonJS(fix_verifier_typo_exports);
|
|
42
|
+
var import_server = require("@nocobase/server");
|
|
43
|
+
var import_lodash = __toESM(require("lodash"));
|
|
44
|
+
class fix_verifier_typo_default extends import_server.Migration {
|
|
45
|
+
on = "afterLoad";
|
|
46
|
+
// 'beforeLoad' or 'afterLoad'
|
|
47
|
+
appVersion = "<1.7.0";
|
|
48
|
+
async up() {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
const authenticators = await this.db.getRepository("authenticators").find({
|
|
51
|
+
filter: {
|
|
52
|
+
authType: "SMS"
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
for (const authenticator of authenticators) {
|
|
56
|
+
if ((_b = (_a = authenticator.options) == null ? void 0 : _a.public) == null ? void 0 : _b.verificator) {
|
|
57
|
+
await authenticator.update({
|
|
58
|
+
options: {
|
|
59
|
+
...authenticator.options,
|
|
60
|
+
public: {
|
|
61
|
+
...import_lodash.default.omit(authenticator.options.public, ["verificator"]),
|
|
62
|
+
verifier: authenticator.options.public.verificator
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
package/dist/server/plugin.js
CHANGED
|
@@ -43,17 +43,10 @@ class PluginAuthSMSServer extends import_server.Plugin {
|
|
|
43
43
|
this.app.logger.warn("auth-sms: @nocobase/plugin-verification is required");
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
|
-
verificationPlugin.
|
|
46
|
+
verificationPlugin.verificationManager.registerAction("auth:signIn", {
|
|
47
47
|
manual: true,
|
|
48
|
-
|
|
49
|
-
return ctx.action.params.values
|
|
50
|
-
},
|
|
51
|
-
expiresIn: 120,
|
|
52
|
-
validate: async (ctx, phone) => {
|
|
53
|
-
if (!phone) {
|
|
54
|
-
throw new Error(ctx.t("Not a valid cellphone number, please re-enter"));
|
|
55
|
-
}
|
|
56
|
-
return true;
|
|
48
|
+
getBoundInfoFromCtx: (ctx) => {
|
|
49
|
+
return ctx.action.params.values || {};
|
|
57
50
|
}
|
|
58
51
|
});
|
|
59
52
|
this.app.authManager.registerTypes(import_constants.authType, {
|
package/dist/server/sms-auth.js
CHANGED
|
@@ -40,16 +40,23 @@ class SMSAuth extends import_auth.BaseAuth {
|
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
async validate() {
|
|
43
|
+
var _a;
|
|
43
44
|
const ctx = this.ctx;
|
|
44
45
|
const verificationPlugin = ctx.app.getPlugin("verification");
|
|
45
46
|
if (!verificationPlugin) {
|
|
46
|
-
|
|
47
|
+
ctx.log.error("auth-sms: @nocobase/plugin-verification is required", { method: "validate" });
|
|
48
|
+
ctx.throw(500);
|
|
47
49
|
}
|
|
48
50
|
let user;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
ctx.action.mergeParams({
|
|
52
|
+
values: {
|
|
53
|
+
verifier: (_a = this.options.public) == null ? void 0 : _a.verifier
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
await verificationPlugin.verificationManager.verify(ctx, async () => {
|
|
57
|
+
var _a2;
|
|
51
58
|
const {
|
|
52
|
-
values: { phone }
|
|
59
|
+
values: { uuid: phone }
|
|
53
60
|
} = ctx.action.params;
|
|
54
61
|
try {
|
|
55
62
|
user = await this.userRepository.findOne({
|
|
@@ -63,7 +70,7 @@ class SMSAuth extends import_auth.BaseAuth {
|
|
|
63
70
|
});
|
|
64
71
|
return;
|
|
65
72
|
}
|
|
66
|
-
const { autoSignup } = ((
|
|
73
|
+
const { autoSignup } = ((_a2 = this.authenticator.options) == null ? void 0 : _a2.public) || {};
|
|
67
74
|
const authenticator = this.authenticator;
|
|
68
75
|
if (autoSignup) {
|
|
69
76
|
user = await authenticator.findOrCreateUser(phone, {
|
|
@@ -77,7 +84,7 @@ class SMSAuth extends import_auth.BaseAuth {
|
|
|
77
84
|
throw new Error(ctx.t("The phone number is not registered, please register first", { ns: import_constants.namespace }));
|
|
78
85
|
}
|
|
79
86
|
} catch (err) {
|
|
80
|
-
|
|
87
|
+
ctx.log.error(err, { method: "validate" });
|
|
81
88
|
throw new Error(err.message);
|
|
82
89
|
}
|
|
83
90
|
});
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"displayName.zh-CN": "认证:短信",
|
|
5
5
|
"description": "SMS authentication.",
|
|
6
6
|
"description.zh-CN": "通过短信验证码认证身份。",
|
|
7
|
-
"version": "1.7.0
|
|
7
|
+
"version": "1.7.0",
|
|
8
8
|
"main": "./dist/server/index.js",
|
|
9
9
|
"homepage": "https://docs.nocobase.com/handbook/auth-sms",
|
|
10
10
|
"homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/auth-sms",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"@nocobase/server": "1.x",
|
|
26
26
|
"@nocobase/test": "1.x"
|
|
27
27
|
},
|
|
28
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "767ae089e404a104d718962272289c0bec01803a",
|
|
29
29
|
"keywords": [
|
|
30
30
|
"Authentication"
|
|
31
31
|
]
|