@abtnode/blocklet-services 1.16.41-beta-20250331-010247-966fcfb0 → 1.16.42-beta-20250402-131159-7647e64d
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/api/emails/_templates/verify-code-body.js +4 -4
- package/api/routes/blocklet.js +1 -1
- package/api/routes/oauth.js +56 -270
- package/api/routes/user-session.js +1 -1
- package/api/routes/user.js +247 -254
- package/api/services/notification/queue.js +9 -1
- package/api/socket/util.js +1 -4
- package/api/util/federated.js +1 -1
- package/api/util/user-util.js +298 -0
- package/dist/assets/{ArrowDropDown-odHjNJIs.js → ArrowDropDown-B6RijoMg.js} +1 -1
- package/dist/assets/{CheckCircle-BqOSvJMp.js → CheckCircle-Bme_BHSe.js} +1 -1
- package/dist/assets/{ChevronLeft-Dv7rlUf5.js → ChevronLeft-CDiNoyQS.js} +1 -1
- package/dist/assets/{ChevronRight-CWeJn1iz.js → ChevronRight-DyMxK2ti.js} +1 -1
- package/dist/assets/{DeleteOutline-Cr-TyrUV.js → DeleteOutline-C5oIt-tc.js} +1 -1
- package/dist/assets/{Done-C1TA1wbA.js → Done-uAJ8-whC.js} +1 -1
- package/dist/assets/{Download-DxhnUTM_.js → Download-CAwoUjYq.js} +1 -1
- package/dist/assets/{Error-pXXvJFxN.js → Error-J1wFafzM.js} +1 -1
- package/dist/assets/{ExpandLess-Dc_dI20M.js → ExpandLess-B0AhRxh8.js} +1 -1
- package/dist/assets/{Google-DNUuYFIA.js → Google-blbcHt2R.js} +1 -1
- package/dist/assets/{InfoOutlined-CEUhR4DY.js → InfoOutlined-BjH1JBg3.js} +1 -1
- package/dist/assets/{Launch-BUTOr3cR.js → Launch-DJqhcPtC.js} +1 -1
- package/dist/assets/{LaunchOutlined-QHq-RUJt.js → LaunchOutlined-CzBae9mQ.js} +1 -1
- package/dist/assets/{MoreHoriz-D1SOL47a.js → MoreHoriz-Dd-9O1iw.js} +1 -1
- package/dist/assets/{PlayArrow-D7cGSxeN.js → PlayArrow-BEPk9nzV.js} +1 -1
- package/dist/assets/{ViewList-vu1qOJ6P.js → ViewList-CNnrIxVS.js} +1 -1
- package/dist/assets/{access-control-CpxcJItK.js → access-control-PfmU_lzC.js} +1 -1
- package/dist/assets/{actions-4oGfCMlR.js → actions-pYJdaWX5.js} +1 -1
- package/dist/assets/{add-component-core-CE0nArG4.js → add-component-core-CgEuYlWv.js} +31 -31
- package/dist/assets/{add-resource-BYM4JwzE.js → add-resource-Dw_ZKqq3.js} +1 -1
- package/dist/assets/{addon-B9bb2bvM.js → addon-BqlSMpSy.js} +1 -1
- package/dist/assets/{analytics-BXLe73MI.js → analytics-DLD8w-rR.js} +2 -2
- package/dist/assets/api-0KF6Hg7c.js +1 -0
- package/dist/assets/appearance-DyZRbR6W.js +1 -0
- package/dist/assets/ar-HpV-sy4C.js +3 -0
- package/dist/assets/{audit-logs-D8H5E0fC.js → audit-logs-BFKcADf-.js} +2 -2
- package/dist/assets/base32-C0ClYUu9.js +1 -0
- package/dist/assets/{branding-BW1rhy8d.js → branding-8XaHoIBD.js} +2 -2
- package/dist/assets/{bundle-avatar-DHwmIozH.js → bundle-avatar-BYZp7KRE.js} +1 -1
- package/dist/assets/{button-CNnuiac8.js → button-K0-gOTcS.js} +1 -1
- package/dist/assets/{click-to-copy-B0HMuCN_.js → click-to-copy-BfRimSvL.js} +1 -1
- package/dist/assets/{complete-BNf0-iqY.js → complete-1MMVAc2H.js} +1 -1
- package/dist/assets/{component-1r0VSsqq.js → component-BZKPS6he.js} +3 -3
- package/dist/assets/{config-BeD5_8kr.js → config-DRS6lRly.js} +1 -1
- package/dist/assets/{config-CqHmZdZv.js → config-DtYY5NrA.js} +1 -1
- package/dist/assets/{config-navigation-DtN0_qFZ.js → config-navigation-BHoOsyWp.js} +5 -5
- package/dist/assets/{config-space-DlwZewcm.js → config-space-DxdlQBdo.js} +1 -1
- package/dist/assets/{confirm-DmMN-34s.js → confirm-C57Q7ZWM.js} +1 -1
- package/dist/assets/{connect-CC9dcVMV.js → connect-PChwPX8g.js} +1 -1
- package/dist/assets/connect-p9koIBBk.js +1 -0
- package/dist/assets/{connect-to-CzffwD9G.js → connect-to-QLfyUtYC.js} +1 -1
- package/dist/assets/{dashboard-C_Q4TjPa.js → dashboard-Di0Efjh1.js} +4 -4
- package/dist/assets/de-zgFs6Kvs.js +3 -0
- package/dist/assets/{delete-confirm-BTaU_6Kx.js → delete-confirm-L9JNVh3W.js} +1 -1
- package/dist/assets/{did-address-BC-0j4Pt.js → did-address-Bz2Y86pP.js} +1 -1
- package/dist/assets/{domain-action-card-DwQ7Q8wY.js → domain-action-card-Bovam4dU.js} +2 -2
- package/dist/assets/domain-fVU92lIu.js +9 -0
- package/dist/assets/domains-Cs6tdpUa.js +1 -0
- package/dist/assets/{email-mj0bVFDS.js → email-SVI5bjle.js} +2 -2
- package/dist/assets/es-CmwByMO0.js +3 -0
- package/dist/assets/exchange-passport-B3N7KRar.js +1 -0
- package/dist/assets/{form-text-input-BYF6lVnE.js → form-text-input-Cp0lmtAk.js} +2 -2
- package/dist/assets/fr-CLYepc9p.js +3 -0
- package/dist/assets/{fuel-D-kOZuF6.js → fuel-DT6O2ymR.js} +1 -1
- package/dist/assets/{get-safe-url-BKl2A9x2.js → get-safe-url-CJRwqFgD.js} +1 -1
- package/dist/assets/{get-safe-url-QFq5JNoE.js → get-safe-url-DLBNTOpr.js} +1 -1
- package/dist/assets/hi-CSSYN7n8.js +1 -0
- package/dist/assets/{home-CpnMpXiw.js → home-CQ7SI4ml.js} +1 -1
- package/dist/assets/id-C5CwopKG.js +3 -0
- package/dist/assets/{iframe-B9mCpo4I.js → iframe-DPBwIvsP.js} +1 -1
- package/dist/assets/{index-gTQQ3SoE.js → index-8I2oAbEz.js} +9 -9
- package/dist/assets/index-B5HkvoQC.js +4 -0
- package/dist/assets/{index-CmKAznDh.js → index-BYkIfvmH.js} +4 -4
- package/dist/assets/index-B_pl8AF-.js +11 -0
- package/dist/assets/{index-B4Q2DAdn.js → index-Bg3m8iJ-.js} +11 -11
- package/dist/assets/{index-BZvVDfZ4.js → index-Bhnq0cVQ.js} +1 -1
- package/dist/assets/{index-C44fECmB.js → index-BzblYn_P.js} +2 -2
- package/dist/assets/index-C9qItKIC.js +138 -0
- package/dist/assets/{index-Ct7s2LPI.js → index-CAFqxbeJ.js} +3 -3
- package/dist/assets/{index-u-lA6P_E.js → index-CLIxjSVZ.js} +1 -1
- package/dist/assets/{index-BJ2lJo7L.js → index-Cdm81c0H.js} +42 -42
- package/dist/assets/index-DAE7cdom.js +2 -0
- package/dist/assets/{index-DQ_RzIwU.js → index-DGkTgpZy.js} +1 -1
- package/dist/assets/{index-BsUr7wGb.js → index-DZAi-K_N.js} +47 -47
- package/dist/assets/{index-gcSQTx25.js → index-Db6WuAj_.js} +1 -1
- package/dist/assets/index-RSW2vc0s.js +2 -0
- package/dist/assets/{index-CJCg9yIK.js → index-RuFDBiVt.js} +1 -1
- package/dist/assets/{index-79U1RPaq.js → index-bIuZaDHS.js} +1 -1
- package/dist/assets/{index-CGK3FEjY.js → index-kAPvimmq.js} +2 -2
- package/dist/assets/{invitation-B8Qx_pFq.js → invitation-DG6QrvdE.js} +8 -7
- package/dist/assets/invite-CYIssZ1G.js +1 -0
- package/dist/assets/issue-passport-Cft19VvI.js +1 -0
- package/dist/assets/{item-BSGXym2I.js → item-at_gI9OW.js} +1 -1
- package/dist/assets/ja-BPVyKlMZ.js +3 -0
- package/dist/assets/ko-DGmHCGCI.js +3 -0
- package/dist/assets/landing-page-CXo1fefz.js +1 -0
- package/dist/assets/{layout-BqhTD729.js → layout-ChcSB0Y2.js} +1 -1
- package/dist/assets/list-DcSgz3EU.js +211 -0
- package/dist/assets/localization-DXf17X8p.js +1 -0
- package/dist/assets/{log-o_Cadt8j.js → log-D7ImQrI7.js} +1 -1
- package/dist/assets/{login-BQozrLDm.js → login-B9xuIjhY.js} +1 -1
- package/dist/assets/{login-oauth-callback-D7lIww1c.js → login-oauth-callback-BoFezOw0.js} +1 -1
- package/dist/assets/{logo-uploader-CUQ3aWZJ.js → logo-uploader-Bzpld3yG.js} +3 -3
- package/dist/assets/{lost-passport-DkETH2Lu.js → lost-passport-j4coS07J.js} +3 -3
- package/dist/assets/{omit-DZNQhOf-.js → omit-BXVmqD4a.js} +1 -1
- package/dist/assets/{open-window-BOl-kTC2.js → open-window-B8cxsAbD.js} +1 -1
- package/dist/assets/{overview-Bxm05EH6.js → overview-C9x4HKRi.js} +1 -1
- package/dist/assets/{page-header-Dm1v9v5q.js → page-header-YN9FqnGT.js} +1 -1
- package/dist/assets/{permission-B5jnw9r2.js → permission-CTDKdktZ.js} +1 -1
- package/dist/assets/{preferences-uri2RXdB.js → preferences-DM6b-Vr4.js} +1 -1
- package/dist/assets/{profile-embed-DnIQcD-H.js → profile-embed-8sjLgVfn.js} +1 -1
- package/dist/assets/pt-u5ojPOFS.js +1 -0
- package/dist/assets/publish-resource-BJIce778.js +1 -0
- package/dist/assets/{react-beautiful-dnd.esm-B9MfX9Xl.js → react-beautiful-dnd.esm-CkNk1XBJ.js} +4 -4
- package/dist/assets/{relative-time-RQnsWZQc.js → relative-time-BCARyhz6.js} +1 -1
- package/dist/assets/roboto-cyrillic-400-normal-DAIM1_dR.woff2 +0 -0
- package/dist/assets/roboto-cyrillic-400-normal-Dry59Hjn.woff +0 -0
- package/dist/assets/roboto-cyrillic-500-normal-CsCirF4J.woff +0 -0
- package/dist/assets/roboto-cyrillic-500-normal-hCeO1jFL.woff2 +0 -0
- package/dist/assets/roboto-cyrillic-700-normal-CB1Rmiii.woff +0 -0
- package/dist/assets/roboto-cyrillic-700-normal-CzEIZVQR.woff2 +0 -0
- package/dist/assets/roboto-cyrillic-ext-400-normal-BxX1-eA_.woff +0 -0
- package/dist/assets/roboto-cyrillic-ext-400-normal-DzMWdK87.woff2 +0 -0
- package/dist/assets/roboto-cyrillic-ext-500-normal-B7rQpwPu.woff2 +0 -0
- package/dist/assets/roboto-cyrillic-ext-500-normal-ElvJfk8V.woff +0 -0
- package/dist/assets/roboto-cyrillic-ext-700-normal-CIu0AXX2.woff +0 -0
- package/dist/assets/roboto-cyrillic-ext-700-normal-D_fA0fHY.woff2 +0 -0
- package/dist/assets/roboto-greek-400-normal-CAI06USH.woff +0 -0
- package/dist/assets/roboto-greek-400-normal-jFM2czAU.woff2 +0 -0
- package/dist/assets/roboto-greek-500-normal-BJMS0heP.woff2 +0 -0
- package/dist/assets/roboto-greek-500-normal-D8eQD5zT.woff +0 -0
- package/dist/assets/roboto-greek-700-normal-DCrt6r9F.woff +0 -0
- package/dist/assets/roboto-greek-700-normal-DpKAje7q.woff2 +0 -0
- package/dist/assets/roboto-latin-400-normal-551zQQ7R.woff +0 -0
- package/dist/assets/roboto-latin-400-normal-CNwBRw8h.woff2 +0 -0
- package/dist/assets/roboto-latin-500-normal-CkrA1NAy.woff2 +0 -0
- package/dist/assets/roboto-latin-500-normal-_8jDuD7w.woff +0 -0
- package/dist/assets/roboto-latin-700-normal-CTLkNcF_.woff +0 -0
- package/dist/assets/roboto-latin-700-normal-DZr4b_KL.woff2 +0 -0
- package/dist/assets/roboto-latin-ext-400-normal-ZYmyxeOy.woff2 +0 -0
- package/dist/assets/roboto-latin-ext-400-normal-uRIBRJt5.woff +0 -0
- package/dist/assets/roboto-latin-ext-500-normal-C_ARlJGk.woff2 +0 -0
- package/dist/assets/roboto-latin-ext-500-normal-eJ10kk0m.woff +0 -0
- package/dist/assets/roboto-latin-ext-700-normal-BNPgmEQS.woff2 +0 -0
- package/dist/assets/roboto-latin-ext-700-normal-Cnx4FGpK.woff +0 -0
- package/dist/assets/roboto-math-400-normal-B3wgz80t.woff2 +0 -0
- package/dist/assets/roboto-math-400-normal-DHrwdhE6.woff +0 -0
- package/dist/assets/roboto-math-500-normal-CFNaIMFC.woff2 +0 -0
- package/dist/assets/roboto-math-500-normal-CetgDdIa.woff +0 -0
- package/dist/assets/roboto-math-700-normal-CpTCM92H.woff +0 -0
- package/dist/assets/roboto-math-700-normal-xbpggnJp.woff2 +0 -0
- package/dist/assets/roboto-symbols-400-normal-bG5rsNFs.woff +0 -0
- package/dist/assets/roboto-symbols-400-normal-fF1SLJBj.woff2 +0 -0
- package/dist/assets/roboto-symbols-500-normal-BXFTxrNR.woff2 +0 -0
- package/dist/assets/roboto-symbols-500-normal-toKUCDph.woff +0 -0
- package/dist/assets/roboto-symbols-700-normal-B2QKVW64.woff +0 -0
- package/dist/assets/roboto-symbols-700-normal-DKkQdRpM.woff2 +0 -0
- package/dist/assets/roboto-vietnamese-400-normal-CDDxGrUb.woff2 +0 -0
- package/dist/assets/roboto-vietnamese-400-normal-DgufTq8s.woff +0 -0
- package/dist/assets/roboto-vietnamese-500-normal-Dw5heWgq.woff +0 -0
- package/dist/assets/roboto-vietnamese-500-normal-HYpufUYk.woff2 +0 -0
- package/dist/assets/roboto-vietnamese-700-normal-BFWtvCOj.woff2 +0 -0
- package/dist/assets/roboto-vietnamese-700-normal-ChAl_rRV.woff +0 -0
- package/dist/assets/ru-DBl90RHJ.js +1 -0
- package/dist/assets/sdk-DbmS8LqQ.js +1 -0
- package/dist/assets/session-BaYtKD4f.js +1 -0
- package/dist/assets/{setup-7Gq9K_8k.js → setup-BtUUdr-p.js} +3 -3
- package/dist/assets/{start-BSUY3DBl.js → start-CdXw9NWC.js} +1 -1
- package/dist/assets/{status-C52-BFuY.js → status-B6cew_GQ.js} +1 -1
- package/dist/assets/{step-actions-CA74dwgt.js → step-actions-D-RgRm8H.js} +1 -1
- package/dist/assets/{studio-CAnZfyBM.js → studio-KYZUr4tT.js} +1 -1
- package/dist/assets/{switch-control-BBlLGjaH.js → switch-control-CpOzvDua.js} +1 -1
- package/dist/assets/th-CbjesoRG.js +1 -0
- package/dist/assets/{traffic-CJDIGmp5.js → traffic-CvAD-wB3.js} +1 -1
- package/dist/assets/transfer-BSgBIknw.js +16 -0
- package/dist/assets/{unsubscribe-afXXIHEf.js → unsubscribe-I8S6Tbwg.js} +1 -1
- package/dist/assets/{useAsync-DM8qaMe4.js → useAsync-Cq0wbMuR.js} +1 -1
- package/dist/assets/{useAsyncRetry-B7SbzXVI.js → useAsyncRetry-BNLrNsx3.js} +1 -1
- package/dist/assets/{useLocalStorage-Dd4pybDP.js → useLocalStorage-Cligjpwl.js} +1 -1
- package/dist/assets/user-center-C1k0oYvY.js +67 -0
- package/dist/assets/{util-C_BCTHfw.js → util-BFBz0dr8.js} +1 -1
- package/dist/assets/{util-YyWTpLT7.js → util-COcKIr8L.js} +1 -1
- package/dist/assets/vendor-arcblock-krD2mwVA.js +1598 -0
- package/dist/assets/{vendor-hooks-sw5wvnca.js → vendor-hooks-BdjOQw7q.js} +1 -1
- package/dist/assets/vendor-utils-BbDUMsIF.js +11 -0
- package/dist/assets/vendor-ux-did-connect-BDmhBveY.css +1 -0
- package/dist/assets/vendor-ux-did-connect-YqGDzQ2U.js +1843 -0
- package/dist/assets/vi-xat6Zv0n.js +1 -0
- package/dist/assets/wrap-locale-BCL-ID0T.js +1 -0
- package/dist/assets/zh-BgH3IZTD.js +4 -0
- package/dist/assets/zh-tw-UWzs9p3g.js +3 -0
- package/dist/images/all-done.png +0 -0
- package/dist/index.html +6 -6
- package/dist/service-worker.js +1 -1
- package/package.json +37 -39
- package/dist/assets/api-D9Yi7Zdr.js +0 -1
- package/dist/assets/appearance-DX7SoW1u.js +0 -1
- package/dist/assets/ar-2k9jaPIk.js +0 -3
- package/dist/assets/base32-BNpDT-6Q.js +0 -1
- package/dist/assets/connect-BfSOEYV-.js +0 -1
- package/dist/assets/de-B9cLhykn.js +0 -3
- package/dist/assets/domain-CLMRXecU.js +0 -9
- package/dist/assets/domains-DF7TtN5q.js +0 -1
- package/dist/assets/es-BoQohonz.js +0 -3
- package/dist/assets/exchange-passport--DeUPzbW.js +0 -1
- package/dist/assets/fr-doSYAOrt.js +0 -3
- package/dist/assets/fullpage-DO8Hcbkl.js +0 -1
- package/dist/assets/hi-B_BwhpD8.js +0 -1
- package/dist/assets/id-BgYIZCvk.js +0 -3
- package/dist/assets/index-BVOYP6aR.js +0 -11
- package/dist/assets/index-DqC2o5PB.js +0 -4
- package/dist/assets/index-DyTFEgKr.js +0 -1
- package/dist/assets/index-eCY24sH9.js +0 -137
- package/dist/assets/inter-latin-300-normal-CvRFFuZy.woff2 +0 -0
- package/dist/assets/inter-latin-300-normal-ORCTF8i-.woff +0 -0
- package/dist/assets/inter-latin-400-normal-BOOGhInR.woff2 +0 -0
- package/dist/assets/inter-latin-400-normal-gitzw0hO.woff +0 -0
- package/dist/assets/inter-latin-500-normal-D2bGa7uu.woff2 +0 -0
- package/dist/assets/inter-latin-500-normal-deR1Tlfd.woff +0 -0
- package/dist/assets/inter-latin-700-normal-B8MtJ_2k.woff +0 -0
- package/dist/assets/inter-latin-700-normal-Sckx8rpT.woff2 +0 -0
- package/dist/assets/inter-latin-ext-300-normal-C2kLfG2J.woff2 +0 -0
- package/dist/assets/inter-latin-ext-300-normal-n8Ps4oXY.woff +0 -0
- package/dist/assets/inter-latin-ext-400-normal-C1t-h-pH.woff +0 -0
- package/dist/assets/inter-latin-ext-400-normal-hnt3BR84.woff2 +0 -0
- package/dist/assets/inter-latin-ext-500-normal-CIS2RHJS.woff2 +0 -0
- package/dist/assets/inter-latin-ext-500-normal-UMdmhHu2.woff +0 -0
- package/dist/assets/inter-latin-ext-700-normal-6V9MnIL5.woff +0 -0
- package/dist/assets/inter-latin-ext-700-normal-CzikT_rs.woff2 +0 -0
- package/dist/assets/invite-BBaF_vyc.js +0 -1
- package/dist/assets/issue-passport-DC-ly7xg.js +0 -1
- package/dist/assets/ja-FMMLI8YD.js +0 -3
- package/dist/assets/ko-C0kmRXYE.js +0 -3
- package/dist/assets/list-BHs8uNT5.js +0 -200
- package/dist/assets/localization-daPAWMzR.js +0 -1
- package/dist/assets/login-bg-Cbfh9Uc2.png +0 -0
- package/dist/assets/pt-C2UJZK-O.js +0 -1
- package/dist/assets/publish-resource-V53U1NNv.js +0 -1
- package/dist/assets/ru-DDA5s4-r.js +0 -1
- package/dist/assets/sdk-BKSsfgrc.js +0 -1
- package/dist/assets/session-6ZeN-aF2.js +0 -1
- package/dist/assets/th-DmqOUn4C.js +0 -1
- package/dist/assets/transfer-cG2e24sz.js +0 -16
- package/dist/assets/user-center-T8Xw464s.js +0 -67
- package/dist/assets/vendor-arcblock-DvaaLvvM.js +0 -2361
- package/dist/assets/vendor-utils-DR57WNxP.js +0 -11
- package/dist/assets/vendor-ux-did-connect-Bciw9Ypu.js +0 -1077
- package/dist/assets/vendor-ux-did-connect-DhgPdlEj.css +0 -1
- package/dist/assets/vi-Cf__CtPD.js +0 -1
- package/dist/assets/wrap-locale-CX50Vz0w.js +0 -1
- package/dist/assets/zh-NXspK2yu.js +0 -4
- package/dist/assets/zh-tw-DYYDVX5I.js +0 -3
|
@@ -14,22 +14,22 @@ function VerifyCodeBody({ appName, locale = 'en', code, magicLink, }) {
|
|
|
14
14
|
const translations = {
|
|
15
15
|
en: {
|
|
16
16
|
title: `Login to ${appName}`,
|
|
17
|
-
followConfirmation: `Thank you for
|
|
17
|
+
followConfirmation: `Thank you for login to ${appName}. To confirm your account, please click the button below.`,
|
|
18
18
|
confirmButton: 'Confirm account',
|
|
19
19
|
useConfirmLink: 'If Confirm Button does not work, please use the link below.',
|
|
20
20
|
orEnterCode: `Or enter the following code in the application: `,
|
|
21
|
-
followEnterCode: `Thank you for
|
|
21
|
+
followEnterCode: `Thank you for login to ${appName}. To confirm your account, please enter the following code in the application`,
|
|
22
22
|
codeExpiresIn: `This code expires in ${constant_1.VERIFY_CODE_TTL / 60 / 1000} minutes.`,
|
|
23
23
|
doNotShareCodeTitle: 'Do NOT share this code with anyone.',
|
|
24
24
|
doNotShareCode: "Only enter this code on the official application's website. If someone asks for this code, it could be a scam.",
|
|
25
25
|
},
|
|
26
26
|
zh: {
|
|
27
27
|
title: `登录 ${appName}`,
|
|
28
|
-
followConfirmation:
|
|
28
|
+
followConfirmation: `感谢您登录 ${appName},请点击以下按钮确认您的账户。`,
|
|
29
29
|
confirmButton: '确认账户',
|
|
30
30
|
useConfirmLink: '如果确认按钮无法工作,请使用以下链接。',
|
|
31
31
|
orEnterCode: `或者在应用中输入以下代码:`,
|
|
32
|
-
followEnterCode:
|
|
32
|
+
followEnterCode: `感谢您登录 ${appName},请在应用中输入以下代码确认您的账户。`,
|
|
33
33
|
codeExpiresIn: `此代码将在${constant_1.VERIFY_CODE_TTL / 60 / 1000}分钟内过期。`,
|
|
34
34
|
doNotShareCodeTitle: '请勿将此代码分享给任何人。',
|
|
35
35
|
doNotShareCode: '请仅在官方应用的网站上输入此代码。如果有人要求提供此代码,这可能是一个骗局。',
|
package/api/routes/blocklet.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
const fs = require('fs-extra');
|
|
3
3
|
const path = require('path');
|
|
4
4
|
const get = require('lodash/get');
|
|
5
|
-
const cloneDeep = require('
|
|
5
|
+
const cloneDeep = require('@abtnode/util/lib/deep-clone');
|
|
6
6
|
const dayjs = require('@abtnode/util/lib/dayjs');
|
|
7
7
|
const JWT = require('@arcblock/jwt');
|
|
8
8
|
const { isValid } = require('@arcblock/did');
|
package/api/routes/oauth.js
CHANGED
|
@@ -1,23 +1,15 @@
|
|
|
1
|
-
const {
|
|
2
|
-
const { createPassportList, createPassportSwitcher
|
|
3
|
-
const {
|
|
4
|
-
WELLKNOWN_SERVICE_PATH_PREFIX,
|
|
5
|
-
PASSPORT_STATUS,
|
|
6
|
-
ROLES,
|
|
7
|
-
SECURITY_RULE_DEFAULT_ID,
|
|
8
|
-
} = require('@abtnode/constant');
|
|
1
|
+
const { handleInvitationReceive, getApplicationInfo } = require('@abtnode/auth/lib/auth');
|
|
2
|
+
const { createPassportList, createPassportSwitcher } = require('@abtnode/auth/lib/oauth');
|
|
3
|
+
const { WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
|
|
9
4
|
const { extractUserAvatar, getUserAvatarUrl } = require('@abtnode/util/lib/user');
|
|
10
5
|
const { fromAppDid } = require('@arcblock/did-ext');
|
|
11
|
-
const last = require('lodash/last');
|
|
12
6
|
const pick = require('lodash/pick');
|
|
13
|
-
const
|
|
14
|
-
const cloneDeep = require('lodash/cloneDeep');
|
|
7
|
+
const cloneDeep = require('@abtnode/util/lib/deep-clone');
|
|
15
8
|
const { joinURL } = require('ufo');
|
|
16
9
|
const { upsertToPassports } = require('@abtnode/auth/lib/passport');
|
|
17
10
|
const { getWalletDid, getConnectedAccounts, getSourceProvider } = require('@blocklet/meta/lib/did-utils');
|
|
18
11
|
const formatContext = require('@abtnode/util/lib/format-context');
|
|
19
12
|
const createTranslator = require('@abtnode/util/lib/translate');
|
|
20
|
-
const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
21
13
|
const CustomError = require('@abtnode/util/lib/custom-error');
|
|
22
14
|
const { LOGIN_PROVIDER } = require('@blocklet/constant');
|
|
23
15
|
const { withHttps, withTrailingSlash } = require('ufo');
|
|
@@ -34,6 +26,7 @@ const initJwt = require('../libs/jwt');
|
|
|
34
26
|
const { sendToUser } = require('../libs/notification');
|
|
35
27
|
const { createTokenFn, getDidConnectVersion, redirectWithoutCache } = require('../util');
|
|
36
28
|
const federatedUtil = require('../util/federated');
|
|
29
|
+
const userUtil = require('../util/user-util');
|
|
37
30
|
const { isOAuthEmailVerified, isEmailUniqueRequired, isEmailKycRequired, isSameEmail } = require('../libs/kyc');
|
|
38
31
|
const checkUser = require('../middlewares/check-user');
|
|
39
32
|
|
|
@@ -175,13 +168,12 @@ function getAuthClient(blocklet, provider, { legacy = false, appPid } = {}) {
|
|
|
175
168
|
|
|
176
169
|
async function login(req, node, options) {
|
|
177
170
|
const blocklet = await req.getBlocklet();
|
|
171
|
+
const teamDid = blocklet.appPid;
|
|
178
172
|
const { locale = 'en', provider, inviter = null, sourceAppPid = null } = req.body;
|
|
179
|
-
const visitorId = req.get('x-blocklet-visitor-id');
|
|
180
173
|
if (!blocklet.settings?.owner) {
|
|
181
174
|
throw new CustomError(400, t('oauthCantBeOwner', locale));
|
|
182
175
|
}
|
|
183
176
|
|
|
184
|
-
const { did: teamDid, secret, appUrl } = await req.getBlockletInfo();
|
|
185
177
|
const { info: oauthInfo, wallet: userWallet } = await getOAuthFederatedUserInfo(req, {
|
|
186
178
|
blocklet,
|
|
187
179
|
});
|
|
@@ -189,20 +181,10 @@ async function login(req, node, options) {
|
|
|
189
181
|
const userDid = userWallet.address;
|
|
190
182
|
const userPk = userWallet.publicKey;
|
|
191
183
|
|
|
192
|
-
const { accessPolicyConfig } = await req.getSecurityConfig({ id: SECURITY_RULE_DEFAULT_ID });
|
|
193
|
-
const nodeInfo = await req.getNodeInfo();
|
|
194
|
-
const { dataDir } = await getApplicationInfo({ node, nodeInfo, teamDid });
|
|
195
|
-
const isInvitedUserOnly = await checkInvitedUserOnly(accessPolicyConfig, node, teamDid);
|
|
196
|
-
|
|
197
|
-
const lastLoginIp = getRequestIP(req);
|
|
198
|
-
let passport = { name: 'Guest', role: 'guest' };
|
|
199
184
|
let currentUser = await federatedUtil.getUserWithinFederated(
|
|
200
185
|
{ sourceAppPid, teamDid, userDid, userPk },
|
|
201
186
|
{ node, blocklet }
|
|
202
187
|
);
|
|
203
|
-
let doc;
|
|
204
|
-
let passportForLog;
|
|
205
|
-
const fullName = currentUser?.fullName || oauthInfo?.name;
|
|
206
188
|
const connectedAccount = {
|
|
207
189
|
provider,
|
|
208
190
|
did: userDid,
|
|
@@ -210,43 +192,14 @@ async function login(req, node, options) {
|
|
|
210
192
|
id: oauthInfo.sub,
|
|
211
193
|
userInfo: oauthInfo,
|
|
212
194
|
};
|
|
213
|
-
const masterSite = federatedUtil.getFederatedMaster(blocklet);
|
|
214
195
|
let profile;
|
|
215
|
-
|
|
216
|
-
if (currentUser) {
|
|
217
|
-
profile = {
|
|
218
|
-
fullName: currentUser.fullName,
|
|
219
|
-
email: currentUser.email || '',
|
|
220
|
-
avatar: currentUser.avatar,
|
|
221
|
-
};
|
|
222
|
-
const allPassports = currentUser.passports || [];
|
|
223
|
-
const validPassports = allPassports.filter((item) => item.status === PASSPORT_STATUS.VALID);
|
|
224
|
-
const lastUsedPassport = last(sortBy(validPassports, 'lastLoginAt'));
|
|
225
|
-
passportForLog = lastUsedPassport;
|
|
226
|
-
if (lastUsedPassport) {
|
|
227
|
-
passport = pick(lastUsedPassport, ['id', 'name', 'role', 'scope']);
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
doc = await node.loginUser({
|
|
231
|
-
teamDid,
|
|
232
|
-
user: {
|
|
233
|
-
did: currentUser.did,
|
|
234
|
-
pk: currentUser.pk,
|
|
235
|
-
locale,
|
|
236
|
-
lastLoginIp,
|
|
237
|
-
sourceAppPid,
|
|
238
|
-
passport: lastUsedPassport,
|
|
239
|
-
connectedAccount,
|
|
240
|
-
},
|
|
241
|
-
});
|
|
242
|
-
} else {
|
|
196
|
+
const lastUsedPassport = userUtil.getLastUsedPassport({ passports: currentUser?.passports });
|
|
197
|
+
if (!currentUser) {
|
|
243
198
|
currentUser = {
|
|
244
199
|
did: userDid,
|
|
245
200
|
pk: userPk,
|
|
246
201
|
};
|
|
247
|
-
|
|
248
|
-
throw new CustomError(403, messages.notInvited[locale]);
|
|
249
|
-
}
|
|
202
|
+
await userUtil.checkNeedInvite({ req, node, teamDid, locale });
|
|
250
203
|
|
|
251
204
|
if (isEmailUniqueRequired(blocklet)) {
|
|
252
205
|
const used = await node.isEmailUsed({
|
|
@@ -261,116 +214,28 @@ async function login(req, node, options) {
|
|
|
261
214
|
}
|
|
262
215
|
|
|
263
216
|
// 当前 oauth 账户不存在,自动添加一个新用户
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
217
|
+
const avatar = oauthInfo.picture
|
|
218
|
+
? await userUtil.getAvatarBnByUrl(oauthInfo.picture, { req, node })
|
|
219
|
+
: await userUtil.getAvatarBnByEmail(oauthInfo.email, { req, node });
|
|
267
220
|
profile = {
|
|
268
221
|
fullName: oauthInfo.name,
|
|
269
222
|
email: oauthInfo.email,
|
|
270
223
|
avatar,
|
|
271
224
|
emailVerified: isOAuthEmailVerified(blocklet, oauthInfo),
|
|
225
|
+
inviter,
|
|
272
226
|
};
|
|
273
|
-
doc = await node.loginUser({
|
|
274
|
-
teamDid,
|
|
275
|
-
user: {
|
|
276
|
-
connectedAccount,
|
|
277
|
-
did: userDid,
|
|
278
|
-
pk: userPk,
|
|
279
|
-
sourceAppPid,
|
|
280
|
-
...profile,
|
|
281
|
-
locale,
|
|
282
|
-
inviter,
|
|
283
|
-
lastLoginIp,
|
|
284
|
-
},
|
|
285
|
-
});
|
|
286
227
|
}
|
|
287
228
|
|
|
288
|
-
await
|
|
229
|
+
const { sessionToken, refreshToken, visitorId } = await userUtil.loginUserSession(
|
|
289
230
|
{
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
);
|
|
297
|
-
|
|
298
|
-
const ua = req.get('user-agent');
|
|
299
|
-
const walletDeviceMessageToken = req.get('wallet-device-message-token');
|
|
300
|
-
const walletDeviceId = req.get('wallet-device-id');
|
|
301
|
-
const userSessionDoc = await node.upsertUserSession({
|
|
302
|
-
teamDid,
|
|
303
|
-
userDid: currentUser.did,
|
|
304
|
-
visitorId,
|
|
305
|
-
appPid: teamDid,
|
|
306
|
-
passportId: passport?.id,
|
|
307
|
-
status: 'online',
|
|
308
|
-
ua: null,
|
|
309
|
-
lastLoginIp,
|
|
310
|
-
extra: {
|
|
311
|
-
walletOS: 'web',
|
|
312
|
-
walletDeviceMessageToken,
|
|
313
|
-
walletDeviceId,
|
|
314
|
-
},
|
|
315
|
-
});
|
|
316
|
-
|
|
317
|
-
if (federatedUtil.shouldSyncFederated(sourceAppPid, blocklet)) {
|
|
318
|
-
const syncUserData = {
|
|
319
|
-
did: userDid,
|
|
320
|
-
pk: userPk,
|
|
321
|
-
...profile,
|
|
322
|
-
avatar: getUserAvatarUrl(appUrl, profile.avatar),
|
|
323
|
-
connectedAccount: [connectedAccount],
|
|
324
|
-
inviter: doc.inviter,
|
|
325
|
-
};
|
|
326
|
-
|
|
327
|
-
node
|
|
328
|
-
.syncFederated({
|
|
329
|
-
did: teamDid,
|
|
330
|
-
data: {
|
|
331
|
-
users: [
|
|
332
|
-
{
|
|
333
|
-
...syncUserData,
|
|
334
|
-
action: 'connectAccount',
|
|
335
|
-
sourceAppPid: sourceAppPid || masterSite?.appPid,
|
|
336
|
-
},
|
|
337
|
-
],
|
|
338
|
-
},
|
|
339
|
-
})
|
|
340
|
-
.then(() => {
|
|
341
|
-
node.syncUserSession({
|
|
342
|
-
teamDid,
|
|
343
|
-
userDid: userSessionDoc.userDid,
|
|
344
|
-
visitorId: userSessionDoc.visitorId,
|
|
345
|
-
passportId: passport?.id,
|
|
346
|
-
targetAppPid: sourceAppPid,
|
|
347
|
-
ua,
|
|
348
|
-
lastLoginIp,
|
|
349
|
-
extra: {
|
|
350
|
-
walletOS: 'web',
|
|
351
|
-
walletDeviceMessageToken,
|
|
352
|
-
walletDeviceId,
|
|
353
|
-
},
|
|
354
|
-
});
|
|
355
|
-
});
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
const { createSessionToken } = initJwt(node, options);
|
|
359
|
-
const createToken = createTokenFn(createSessionToken);
|
|
360
|
-
const sessionConfig = blocklet.settings?.session || {};
|
|
361
|
-
const { sessionToken, refreshToken } = createToken(
|
|
362
|
-
currentUser.did,
|
|
363
|
-
{
|
|
364
|
-
secret,
|
|
365
|
-
passport,
|
|
366
|
-
role: passport.scope === 'passport' ? passport.role : ROLES.GUEST,
|
|
367
|
-
fullName,
|
|
368
|
-
provider,
|
|
369
|
-
walletOS: 'web',
|
|
370
|
-
emailVerified: !!doc?.emailVerified,
|
|
371
|
-
phoneVerified: !!doc?.phoneVerified,
|
|
231
|
+
did: currentUser.did || userDid,
|
|
232
|
+
pk: currentUser.pk,
|
|
233
|
+
profile,
|
|
234
|
+
passport: lastUsedPassport,
|
|
235
|
+
sourceAppPid,
|
|
236
|
+
connectedAccount,
|
|
372
237
|
},
|
|
373
|
-
{
|
|
238
|
+
{ req, node, options }
|
|
374
239
|
);
|
|
375
240
|
|
|
376
241
|
// for backward compatibility
|
|
@@ -381,42 +246,35 @@ async function login(req, node, options) {
|
|
|
381
246
|
return {
|
|
382
247
|
sessionToken,
|
|
383
248
|
refreshToken,
|
|
384
|
-
visitorId
|
|
249
|
+
visitorId,
|
|
385
250
|
};
|
|
386
251
|
}
|
|
387
252
|
|
|
388
253
|
async function invite(req, node, options) {
|
|
389
254
|
const { locale, inviteId, baseUrl, provider = LOGIN_PROVIDER.AUTH0, sourceAppPid = null } = req.body;
|
|
390
|
-
const visitorId = req.get('x-blocklet-visitor-id');
|
|
391
255
|
const blocklet = await req.getBlocklet();
|
|
392
|
-
|
|
393
|
-
const { did: teamDid, secret } = await req.getBlockletInfo();
|
|
256
|
+
const teamDid = blocklet.appPid;
|
|
394
257
|
|
|
395
258
|
const { info: oauthInfo, wallet: userWallet } = await getOAuthFederatedUserInfo(req, {
|
|
396
259
|
blocklet,
|
|
397
260
|
});
|
|
398
261
|
|
|
399
262
|
const nodeInfo = await req.getNodeInfo();
|
|
400
|
-
|
|
401
|
-
|
|
263
|
+
const userDid = userWallet.address;
|
|
264
|
+
const userPk = userWallet.publicKey;
|
|
402
265
|
|
|
403
266
|
let profile;
|
|
404
|
-
|
|
405
|
-
const currentUser = await federatedUtil.getUserWithinFederated(
|
|
267
|
+
let currentUser = await federatedUtil.getUserWithinFederated(
|
|
406
268
|
{ sourceAppPid, teamDid, userDid, userPk },
|
|
407
269
|
{ node, blocklet }
|
|
408
270
|
);
|
|
409
271
|
|
|
410
|
-
const {
|
|
411
|
-
if (currentUser) {
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
avatar: getUserAvatarUrl(baseUrl, currentUser.avatar),
|
|
272
|
+
const { name: applicationName } = await getApplicationInfo({ node, nodeInfo, teamDid });
|
|
273
|
+
if (!currentUser) {
|
|
274
|
+
currentUser = {
|
|
275
|
+
did: userDid,
|
|
276
|
+
pk: userPk,
|
|
416
277
|
};
|
|
417
|
-
userDid = currentUser.did;
|
|
418
|
-
userPk = currentUser.pk;
|
|
419
|
-
} else {
|
|
420
278
|
if (isEmailUniqueRequired(blocklet)) {
|
|
421
279
|
const used = await node.isEmailUsed({
|
|
422
280
|
teamDid,
|
|
@@ -429,8 +287,9 @@ async function invite(req, node, options) {
|
|
|
429
287
|
}
|
|
430
288
|
}
|
|
431
289
|
|
|
432
|
-
|
|
433
|
-
|
|
290
|
+
const avatar = oauthInfo.picture
|
|
291
|
+
? await userUtil.getAvatarBnByUrl(oauthInfo.picture, { req, node })
|
|
292
|
+
: await userUtil.getAvatarBnByEmail(oauthInfo.email, { req, node });
|
|
434
293
|
profile = {
|
|
435
294
|
email: oauthInfo.email,
|
|
436
295
|
fullName: oauthInfo.name,
|
|
@@ -450,7 +309,11 @@ async function invite(req, node, options) {
|
|
|
450
309
|
endpoint,
|
|
451
310
|
inviteId,
|
|
452
311
|
nodeInfo,
|
|
453
|
-
profile
|
|
312
|
+
profile: profile || {
|
|
313
|
+
email: currentUser.email,
|
|
314
|
+
fullName: currentUser.fullName,
|
|
315
|
+
avatar: getUserAvatarUrl(baseUrl, currentUser.avatar),
|
|
316
|
+
},
|
|
454
317
|
statusEndpointBaseUrl,
|
|
455
318
|
teamDid,
|
|
456
319
|
userDid: userWallet.address,
|
|
@@ -458,10 +321,6 @@ async function invite(req, node, options) {
|
|
|
458
321
|
locale,
|
|
459
322
|
provider,
|
|
460
323
|
});
|
|
461
|
-
const masterSite = federatedUtil.getFederatedMaster(blocklet);
|
|
462
|
-
const syncData = {
|
|
463
|
-
users: [],
|
|
464
|
-
};
|
|
465
324
|
|
|
466
325
|
if (currentUser) {
|
|
467
326
|
const walletDid = getWalletDid(currentUser);
|
|
@@ -485,102 +344,29 @@ async function invite(req, node, options) {
|
|
|
485
344
|
{ req }
|
|
486
345
|
);
|
|
487
346
|
}
|
|
488
|
-
} else {
|
|
489
|
-
const connectedAccount = {
|
|
490
|
-
provider,
|
|
491
|
-
id: oauthInfo.sub,
|
|
492
|
-
did: userWallet.address,
|
|
493
|
-
pk: userWallet.publicKey,
|
|
494
|
-
userInfo: oauthInfo,
|
|
495
|
-
};
|
|
496
|
-
await node.loginUser({
|
|
497
|
-
teamDid,
|
|
498
|
-
user: {
|
|
499
|
-
did: userDid,
|
|
500
|
-
pk: userPk,
|
|
501
|
-
connectedAccount,
|
|
502
|
-
sourceAppPid,
|
|
503
|
-
inviter: inviteInfo.inviter?.did,
|
|
504
|
-
remark: inviteInfo.remark,
|
|
505
|
-
},
|
|
506
|
-
});
|
|
507
|
-
if (federatedUtil.shouldSyncFederated(sourceAppPid, blocklet)) {
|
|
508
|
-
const syncUserData = {
|
|
509
|
-
did: userDid,
|
|
510
|
-
pk: userPk,
|
|
511
|
-
...profile,
|
|
512
|
-
inviter: inviteInfo.inviter?.did,
|
|
513
|
-
connectedAccount: [connectedAccount],
|
|
514
|
-
};
|
|
515
|
-
syncData.users.push({
|
|
516
|
-
...syncUserData,
|
|
517
|
-
action: 'connectAccount',
|
|
518
|
-
// HACK: @zhanghan 这里会造成 master 中的用户也增加 sourceAppPid 字段,需要在 sync 接收端处理
|
|
519
|
-
sourceAppPid: sourceAppPid || masterSite?.appPid,
|
|
520
|
-
});
|
|
521
|
-
}
|
|
522
347
|
}
|
|
523
|
-
const
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
visitorId,
|
|
531
|
-
appPid: teamDid,
|
|
532
|
-
passportId: passport.id,
|
|
533
|
-
status: 'online',
|
|
534
|
-
ua: null,
|
|
535
|
-
lastLoginIp,
|
|
536
|
-
extra: {
|
|
537
|
-
walletOS: 'web',
|
|
538
|
-
walletDeviceMessageToken,
|
|
539
|
-
walletDeviceId,
|
|
540
|
-
},
|
|
541
|
-
});
|
|
348
|
+
const connectedAccount = {
|
|
349
|
+
provider,
|
|
350
|
+
id: oauthInfo.sub,
|
|
351
|
+
did: userWallet.address,
|
|
352
|
+
pk: userWallet.publicKey,
|
|
353
|
+
userInfo: oauthInfo,
|
|
354
|
+
};
|
|
542
355
|
|
|
543
|
-
if (
|
|
544
|
-
|
|
545
|
-
.syncFederated({
|
|
546
|
-
did: teamDid,
|
|
547
|
-
data: syncData,
|
|
548
|
-
})
|
|
549
|
-
.then(() => {
|
|
550
|
-
node.syncUserSession({
|
|
551
|
-
teamDid,
|
|
552
|
-
userDid: userSessionDoc.userDid,
|
|
553
|
-
visitorId: userSessionDoc.visitorId,
|
|
554
|
-
passportId: passport?.id,
|
|
555
|
-
targetAppPid: sourceAppPid,
|
|
556
|
-
ua,
|
|
557
|
-
lastLoginIp,
|
|
558
|
-
extra: {
|
|
559
|
-
walletOS: 'web',
|
|
560
|
-
walletDeviceMessageToken,
|
|
561
|
-
walletDeviceId,
|
|
562
|
-
},
|
|
563
|
-
});
|
|
564
|
-
});
|
|
356
|
+
if (profile) {
|
|
357
|
+
profile.inviter = inviteInfo.inviter?.did;
|
|
565
358
|
}
|
|
566
359
|
|
|
567
|
-
const {
|
|
568
|
-
const createToken = createTokenFn(createSessionToken);
|
|
569
|
-
const sessionConfig = blocklet.settings?.session || {};
|
|
570
|
-
|
|
571
|
-
const { sessionToken, refreshToken } = createToken(
|
|
572
|
-
userDid,
|
|
360
|
+
const { sessionToken, refreshToken, visitorId } = await userUtil.loginUserSession(
|
|
573
361
|
{
|
|
574
|
-
|
|
362
|
+
did: currentUser.did,
|
|
363
|
+
pk: currentUser.pk,
|
|
364
|
+
profile,
|
|
575
365
|
passport,
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
provider,
|
|
579
|
-
walletOS: 'web',
|
|
580
|
-
emailVerified: !!user?.emailVerified,
|
|
581
|
-
phoneVerified: !!user?.phoneVerified,
|
|
366
|
+
sourceAppPid,
|
|
367
|
+
connectedAccount,
|
|
582
368
|
},
|
|
583
|
-
{
|
|
369
|
+
{ req, node, options, loggedUser: user }
|
|
584
370
|
);
|
|
585
371
|
|
|
586
372
|
// for backward compatibility
|
|
@@ -591,7 +377,7 @@ async function invite(req, node, options) {
|
|
|
591
377
|
return {
|
|
592
378
|
sessionToken,
|
|
593
379
|
refreshToken,
|
|
594
|
-
visitorId
|
|
380
|
+
visitorId,
|
|
595
381
|
};
|
|
596
382
|
}
|
|
597
383
|
|
|
@@ -3,7 +3,7 @@ const { WELLKNOWN_SERVICE_PATH_PREFIX, SESSION_TTL, PASSPORT_LOG_ACTION } = requ
|
|
|
3
3
|
const { LOGIN_PROVIDER } = require('@blocklet/constant');
|
|
4
4
|
const pick = require('lodash/pick');
|
|
5
5
|
const defaults = require('lodash/defaults');
|
|
6
|
-
const cloneDeep = require('
|
|
6
|
+
const cloneDeep = require('@abtnode/util/lib/deep-clone');
|
|
7
7
|
const omit = require('lodash/omit');
|
|
8
8
|
const pLimit = require('p-limit');
|
|
9
9
|
const { getSourceProvider } = require('@blocklet/meta/lib/did-utils');
|