@things-factory/auth-base 8.0.5 → 9.0.0-beta.12
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/config/config.development.js +45 -0
- package/config/config.production.js +45 -0
- package/dist-client/bootstrap.d.ts +1 -1
- package/dist-client/bootstrap.js +4 -4
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/directive/privileged.d.ts +1 -1
- package/dist-client/directive/privileged.js +1 -1
- package/dist-client/directive/privileged.js.map +1 -1
- package/dist-client/index.d.ts +4 -3
- package/dist-client/index.js +4 -3
- package/dist-client/index.js.map +1 -1
- package/dist-client/profiled.js +1 -1
- package/dist-client/profiled.js.map +1 -1
- package/dist-client/reducers/auth.js +1 -1
- package/dist-client/reducers/auth.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-client/verify-webauthn.d.ts +13 -0
- package/dist-client/verify-webauthn.js +72 -0
- package/dist-client/verify-webauthn.js.map +1 -0
- package/dist-server/constants/error-code.d.ts +2 -0
- package/dist-server/constants/error-code.js +3 -1
- package/dist-server/constants/error-code.js.map +1 -1
- package/dist-server/controllers/auth.d.ts +5 -5
- package/dist-server/controllers/auth.js +5 -5
- package/dist-server/controllers/auth.js.map +1 -1
- package/dist-server/controllers/change-pwd.js +21 -21
- package/dist-server/controllers/change-pwd.js.map +1 -1
- package/dist-server/controllers/checkin.js +4 -4
- package/dist-server/controllers/checkin.js.map +1 -1
- package/dist-server/controllers/delete-user.js +22 -21
- package/dist-server/controllers/delete-user.js.map +1 -1
- package/dist-server/controllers/invitation.d.ts +2 -1
- package/dist-server/controllers/invitation.js +46 -21
- package/dist-server/controllers/invitation.js.map +1 -1
- package/dist-server/controllers/profile.d.ts +9 -8
- package/dist-server/controllers/profile.js +26 -8
- package/dist-server/controllers/profile.js.map +1 -1
- package/dist-server/controllers/reset-password.js +24 -24
- package/dist-server/controllers/reset-password.js.map +1 -1
- package/dist-server/controllers/signin.d.ts +5 -2
- package/dist-server/controllers/signin.js +41 -25
- package/dist-server/controllers/signin.js.map +1 -1
- package/dist-server/controllers/signup.d.ts +1 -1
- package/dist-server/controllers/signup.js +26 -17
- package/dist-server/controllers/signup.js.map +1 -1
- package/dist-server/controllers/unlock-user.js +18 -17
- package/dist-server/controllers/unlock-user.js.map +1 -1
- package/dist-server/controllers/utils/password-rule.js +4 -4
- package/dist-server/controllers/utils/password-rule.js.map +1 -1
- package/dist-server/controllers/utils/save-invitation-token.d.ts +1 -1
- package/dist-server/controllers/utils/save-invitation-token.js +2 -2
- package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
- package/dist-server/controllers/utils/save-verification-token.d.ts +1 -1
- package/dist-server/controllers/utils/save-verification-token.js +3 -3
- package/dist-server/controllers/utils/save-verification-token.js.map +1 -1
- package/dist-server/controllers/verification.js +24 -23
- package/dist-server/controllers/verification.js.map +1 -1
- package/dist-server/errors/auth-error.js +1 -1
- package/dist-server/errors/auth-error.js.map +1 -1
- package/dist-server/errors/index.d.ts +2 -2
- package/dist-server/errors/index.js +2 -2
- package/dist-server/errors/index.js.map +1 -1
- package/dist-server/errors/user-domain-not-match-error.d.ts +1 -1
- package/dist-server/errors/user-domain-not-match-error.js +8 -8
- package/dist-server/errors/user-domain-not-match-error.js.map +1 -1
- package/dist-server/index.d.ts +16 -16
- package/dist-server/index.js +18 -18
- package/dist-server/index.js.map +1 -1
- package/dist-server/middlewares/authenticate-401-middleware.js +11 -11
- package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -1
- package/dist-server/middlewares/domain-authenticate-middleware.d.ts +1 -1
- package/dist-server/middlewares/domain-authenticate-middleware.js +9 -9
- package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
- package/dist-server/middlewares/graphql-authenticate-middleware.js +4 -4
- package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -1
- package/dist-server/middlewares/index.d.ts +5 -5
- package/dist-server/middlewares/index.js +18 -18
- package/dist-server/middlewares/index.js.map +1 -1
- package/dist-server/middlewares/jwt-authenticate-middleware.js +15 -15
- package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -1
- package/dist-server/middlewares/signin-middleware.js +7 -6
- package/dist-server/middlewares/signin-middleware.js.map +1 -1
- package/dist-server/middlewares/verify-recaptcha-middleware.d.ts +3 -0
- package/dist-server/middlewares/verify-recaptcha-middleware.js +95 -0
- package/dist-server/middlewares/verify-recaptcha-middleware.js.map +1 -0
- package/dist-server/middlewares/webauthn-middleware.js +16 -13
- package/dist-server/middlewares/webauthn-middleware.js.map +1 -1
- package/dist-server/migrations/1548206416130-SeedUser.js +8 -7
- package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -1
- package/dist-server/migrations/1566805283882-SeedPrivilege.js +2 -2
- package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -1
- package/dist-server/migrations/index.js.map +1 -1
- package/dist-server/router/auth-checkin-router.js +18 -12
- package/dist-server/router/auth-checkin-router.js.map +1 -1
- package/dist-server/router/auth-private-process-router.js +26 -21
- package/dist-server/router/auth-private-process-router.js.map +1 -1
- package/dist-server/router/auth-public-process-router.js +42 -31
- package/dist-server/router/auth-public-process-router.js.map +1 -1
- package/dist-server/router/auth-signin-router.js +16 -16
- package/dist-server/router/auth-signin-router.js.map +1 -1
- package/dist-server/router/auth-signup-router.js +13 -9
- package/dist-server/router/auth-signup-router.js.map +1 -1
- package/dist-server/router/index.d.ts +9 -9
- package/dist-server/router/index.js +9 -9
- package/dist-server/router/index.js.map +1 -1
- package/dist-server/router/oauth2/index.d.ts +2 -2
- package/dist-server/router/oauth2/index.js +2 -2
- package/dist-server/router/oauth2/index.js.map +1 -1
- package/dist-server/router/oauth2/oauth2-authorize-router.js +6 -6
- package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -1
- package/dist-server/router/oauth2/oauth2-router.d.ts +1 -1
- package/dist-server/router/oauth2/oauth2-router.js +21 -21
- package/dist-server/router/oauth2/oauth2-router.js.map +1 -1
- package/dist-server/router/oauth2/oauth2-server.js +21 -21
- package/dist-server/router/oauth2/oauth2-server.js.map +1 -1
- package/dist-server/router/site-root-router.js +4 -4
- package/dist-server/router/site-root-router.js.map +1 -1
- package/dist-server/router/webauthn-router.js +58 -8
- package/dist-server/router/webauthn-router.js.map +1 -1
- package/dist-server/routes.js +19 -19
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/app-binding/app-binding-mutation.js +4 -4
- package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -1
- package/dist-server/service/app-binding/app-binding-query.d.ts +4 -4
- package/dist-server/service/app-binding/app-binding-query.js +22 -22
- package/dist-server/service/app-binding/app-binding-query.js.map +1 -1
- package/dist-server/service/app-binding/app-binding-types.d.ts +1 -1
- package/dist-server/service/app-binding/app-binding-types.js +2 -2
- package/dist-server/service/app-binding/app-binding-types.js.map +1 -1
- package/dist-server/service/app-binding/app-binding.d.ts +2 -2
- package/dist-server/service/app-binding/app-binding.js +4 -4
- package/dist-server/service/app-binding/app-binding.js.map +1 -1
- package/dist-server/service/app-binding/index.d.ts +2 -2
- package/dist-server/service/app-binding/index.js +3 -3
- package/dist-server/service/app-binding/index.js.map +1 -1
- package/dist-server/service/appliance/appliance-mutation.d.ts +2 -2
- package/dist-server/service/appliance/appliance-mutation.js +21 -21
- package/dist-server/service/appliance/appliance-mutation.js.map +1 -1
- package/dist-server/service/appliance/appliance-query.d.ts +3 -3
- package/dist-server/service/appliance/appliance-query.js +17 -17
- package/dist-server/service/appliance/appliance-query.js.map +1 -1
- package/dist-server/service/appliance/appliance-types.d.ts +1 -1
- package/dist-server/service/appliance/appliance-types.js +2 -2
- package/dist-server/service/appliance/appliance-types.js.map +1 -1
- package/dist-server/service/appliance/appliance.d.ts +1 -1
- package/dist-server/service/appliance/appliance.js +8 -8
- package/dist-server/service/appliance/appliance.js.map +1 -1
- package/dist-server/service/appliance/index.d.ts +3 -3
- package/dist-server/service/appliance/index.js +5 -5
- package/dist-server/service/appliance/index.js.map +1 -1
- package/dist-server/service/application/application-mutation.d.ts +8 -8
- package/dist-server/service/application/application-mutation.js +20 -20
- package/dist-server/service/application/application-mutation.js.map +1 -1
- package/dist-server/service/application/application-query.d.ts +2 -2
- package/dist-server/service/application/application-query.js +16 -16
- package/dist-server/service/application/application-query.js.map +1 -1
- package/dist-server/service/application/application-types.d.ts +1 -1
- package/dist-server/service/application/application-types.js +4 -4
- package/dist-server/service/application/application-types.js.map +1 -1
- package/dist-server/service/application/application.d.ts +1 -1
- package/dist-server/service/application/application.js +12 -12
- package/dist-server/service/application/application.js.map +1 -1
- package/dist-server/service/application/index.d.ts +3 -3
- package/dist-server/service/application/index.js +5 -5
- package/dist-server/service/application/index.js.map +1 -1
- package/dist-server/service/auth-provider/auth-provider-mutation.d.ts +2 -2
- package/dist-server/service/auth-provider/auth-provider-mutation.js +20 -20
- package/dist-server/service/auth-provider/auth-provider-mutation.js.map +1 -1
- package/dist-server/service/auth-provider/auth-provider-query.d.ts +3 -3
- package/dist-server/service/auth-provider/auth-provider-query.js +20 -20
- package/dist-server/service/auth-provider/auth-provider-query.js.map +1 -1
- package/dist-server/service/auth-provider/auth-provider-type.d.ts +1 -1
- package/dist-server/service/auth-provider/auth-provider-type.js +2 -2
- package/dist-server/service/auth-provider/auth-provider-type.js.map +1 -1
- package/dist-server/service/auth-provider/auth-provider.d.ts +3 -3
- package/dist-server/service/auth-provider/auth-provider.js +12 -12
- package/dist-server/service/auth-provider/auth-provider.js.map +1 -1
- package/dist-server/service/auth-provider/index.d.ts +3 -3
- package/dist-server/service/auth-provider/index.js +5 -5
- package/dist-server/service/auth-provider/index.js.map +1 -1
- package/dist-server/service/domain-generator/domain-generator-mutation.d.ts +1 -1
- package/dist-server/service/domain-generator/domain-generator-mutation.js +11 -11
- package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -1
- package/dist-server/service/domain-generator/domain-generator-types.d.ts +1 -1
- package/dist-server/service/domain-generator/domain-generator-types.js +3 -3
- package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -1
- package/dist-server/service/domain-generator/index.d.ts +1 -1
- package/dist-server/service/domain-generator/index.js +2 -2
- package/dist-server/service/domain-generator/index.js.map +1 -1
- package/dist-server/service/granted-role/granted-role-mutation.d.ts +3 -3
- package/dist-server/service/granted-role/granted-role-mutation.js +17 -17
- package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -1
- package/dist-server/service/granted-role/granted-role-query.d.ts +2 -2
- package/dist-server/service/granted-role/granted-role-query.js +13 -13
- package/dist-server/service/granted-role/granted-role-query.js.map +1 -1
- package/dist-server/service/granted-role/granted-role.d.ts +1 -1
- package/dist-server/service/granted-role/granted-role.js +3 -3
- package/dist-server/service/granted-role/granted-role.js.map +1 -1
- package/dist-server/service/granted-role/index.d.ts +3 -3
- package/dist-server/service/granted-role/index.js +5 -5
- package/dist-server/service/granted-role/index.js.map +1 -1
- package/dist-server/service/index.d.ts +25 -25
- package/dist-server/service/index.js +70 -70
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/invitation/index.d.ts +3 -3
- package/dist-server/service/invitation/index.js +5 -5
- package/dist-server/service/invitation/index.js.map +1 -1
- package/dist-server/service/invitation/invitation-mutation.d.ts +4 -3
- package/dist-server/service/invitation/invitation-mutation.js +26 -14
- package/dist-server/service/invitation/invitation-mutation.js.map +1 -1
- package/dist-server/service/invitation/invitation-query.d.ts +1 -1
- package/dist-server/service/invitation/invitation-query.js +7 -7
- package/dist-server/service/invitation/invitation-query.js.map +1 -1
- package/dist-server/service/invitation/invitation-types.d.ts +1 -1
- package/dist-server/service/invitation/invitation-types.js +2 -2
- package/dist-server/service/invitation/invitation-types.js.map +1 -1
- package/dist-server/service/invitation/invitation.d.ts +1 -1
- package/dist-server/service/invitation/invitation.js +5 -5
- package/dist-server/service/invitation/invitation.js.map +1 -1
- package/dist-server/service/login-history/index.d.ts +2 -2
- package/dist-server/service/login-history/index.js +4 -4
- package/dist-server/service/login-history/index.js.map +1 -1
- package/dist-server/service/login-history/login-history-query.d.ts +3 -3
- package/dist-server/service/login-history/login-history-query.js +11 -11
- package/dist-server/service/login-history/login-history-query.js.map +1 -1
- package/dist-server/service/login-history/login-history-type.d.ts +1 -1
- package/dist-server/service/login-history/login-history-type.js +2 -2
- package/dist-server/service/login-history/login-history-type.js.map +1 -1
- package/dist-server/service/login-history/login-history.d.ts +1 -1
- package/dist-server/service/login-history/login-history.js +4 -4
- package/dist-server/service/login-history/login-history.js.map +1 -1
- package/dist-server/service/partner/index.d.ts +3 -3
- package/dist-server/service/partner/index.js +5 -5
- package/dist-server/service/partner/index.js.map +1 -1
- package/dist-server/service/partner/partner-mutation.js +8 -8
- package/dist-server/service/partner/partner-mutation.js.map +1 -1
- package/dist-server/service/partner/partner-query.d.ts +3 -3
- package/dist-server/service/partner/partner-query.js +17 -17
- package/dist-server/service/partner/partner-query.js.map +1 -1
- package/dist-server/service/partner/partner-types.d.ts +1 -1
- package/dist-server/service/partner/partner-types.js +2 -2
- package/dist-server/service/partner/partner-types.js.map +1 -1
- package/dist-server/service/partner/partner.d.ts +1 -1
- package/dist-server/service/partner/partner.js +5 -5
- package/dist-server/service/partner/partner.js.map +1 -1
- package/dist-server/service/password-history/index.d.ts +1 -1
- package/dist-server/service/password-history/index.js +2 -2
- package/dist-server/service/password-history/index.js.map +1 -1
- package/dist-server/service/privilege/index.d.ts +3 -3
- package/dist-server/service/privilege/index.js +5 -5
- package/dist-server/service/privilege/index.js.map +1 -1
- package/dist-server/service/privilege/privilege-directive.js +2 -2
- package/dist-server/service/privilege/privilege-directive.js.map +1 -1
- package/dist-server/service/privilege/privilege-mutation.d.ts +2 -2
- package/dist-server/service/privilege/privilege-mutation.js +15 -15
- package/dist-server/service/privilege/privilege-mutation.js.map +1 -1
- package/dist-server/service/privilege/privilege-query.d.ts +4 -4
- package/dist-server/service/privilege/privilege-query.js +20 -20
- package/dist-server/service/privilege/privilege-query.js.map +1 -1
- package/dist-server/service/privilege/privilege-types.d.ts +1 -1
- package/dist-server/service/privilege/privilege-types.js +2 -2
- package/dist-server/service/privilege/privilege-types.js.map +1 -1
- package/dist-server/service/privilege/privilege.d.ts +2 -2
- package/dist-server/service/privilege/privilege.js +10 -10
- package/dist-server/service/privilege/privilege.js.map +1 -1
- package/dist-server/service/role/index.d.ts +3 -3
- package/dist-server/service/role/index.js +5 -5
- package/dist-server/service/role/index.js.map +1 -1
- package/dist-server/service/role/role-mutation.d.ts +2 -2
- package/dist-server/service/role/role-mutation.js +19 -19
- package/dist-server/service/role/role-mutation.js.map +1 -1
- package/dist-server/service/role/role-query.d.ts +4 -4
- package/dist-server/service/role/role-query.js +29 -29
- package/dist-server/service/role/role-query.js.map +1 -1
- package/dist-server/service/role/role-types.d.ts +1 -1
- package/dist-server/service/role/role-types.js +2 -2
- package/dist-server/service/role/role-types.js.map +1 -1
- package/dist-server/service/role/role.d.ts +2 -2
- package/dist-server/service/role/role.js +12 -12
- package/dist-server/service/role/role.js.map +1 -1
- package/dist-server/service/user/domain-query.d.ts +1 -1
- package/dist-server/service/user/domain-query.js +3 -3
- package/dist-server/service/user/domain-query.js.map +1 -1
- package/dist-server/service/user/index.d.ts +4 -4
- package/dist-server/service/user/index.js +6 -6
- package/dist-server/service/user/index.js.map +1 -1
- package/dist-server/service/user/user-mutation.d.ts +13 -12
- package/dist-server/service/user/user-mutation.js +141 -83
- package/dist-server/service/user/user-mutation.js.map +1 -1
- package/dist-server/service/user/user-query.d.ts +3 -3
- package/dist-server/service/user/user-query.js +21 -21
- package/dist-server/service/user/user-query.js.map +1 -1
- package/dist-server/service/user/user-types.d.ts +2 -1
- package/dist-server/service/user/user-types.js +6 -2
- package/dist-server/service/user/user-types.js.map +1 -1
- package/dist-server/service/user/user.d.ts +4 -3
- package/dist-server/service/user/user.js +80 -54
- package/dist-server/service/user/user.js.map +1 -1
- package/dist-server/service/users-auth-providers/index.d.ts +1 -1
- package/dist-server/service/users-auth-providers/index.js +2 -2
- package/dist-server/service/users-auth-providers/index.js.map +1 -1
- package/dist-server/service/users-auth-providers/users-auth-providers.d.ts +2 -2
- package/dist-server/service/users-auth-providers/users-auth-providers.js +8 -8
- package/dist-server/service/users-auth-providers/users-auth-providers.js.map +1 -1
- package/dist-server/service/verification-token/index.d.ts +1 -1
- package/dist-server/service/verification-token/index.js +2 -2
- package/dist-server/service/verification-token/index.js.map +1 -1
- package/dist-server/service/web-auth-credential/index.d.ts +1 -1
- package/dist-server/service/web-auth-credential/index.js +2 -2
- package/dist-server/service/web-auth-credential/index.js.map +1 -1
- package/dist-server/service/web-auth-credential/web-auth-credential.d.ts +1 -1
- package/dist-server/service/web-auth-credential/web-auth-credential.js +10 -10
- package/dist-server/service/web-auth-credential/web-auth-credential.js.map +1 -1
- package/dist-server/templates/account-unlock-email.d.ts +2 -1
- package/dist-server/templates/account-unlock-email.js +1 -1
- package/dist-server/templates/account-unlock-email.js.map +1 -1
- package/dist-server/templates/invitation-email.d.ts +2 -1
- package/dist-server/templates/invitation-email.js +1 -1
- package/dist-server/templates/invitation-email.js.map +1 -1
- package/dist-server/templates/verification-email.d.ts +2 -1
- package/dist-server/templates/verification-email.js +1 -1
- package/dist-server/templates/verification-email.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/dist-server/types.d.ts +1 -1
- package/dist-server/types.js.map +1 -1
- package/dist-server/utils/access-token-cookie.js +2 -2
- package/dist-server/utils/access-token-cookie.js.map +1 -1
- package/dist-server/utils/check-permission.d.ts +2 -2
- package/dist-server/utils/check-permission.js +3 -3
- package/dist-server/utils/check-permission.js.map +1 -1
- package/dist-server/utils/check-user-belongs-domain.d.ts +1 -1
- package/dist-server/utils/check-user-belongs-domain.js +2 -2
- package/dist-server/utils/check-user-belongs-domain.js.map +1 -1
- package/dist-server/utils/check-user-has-role.d.ts +1 -1
- package/dist-server/utils/check-user-has-role.js +2 -2
- package/dist-server/utils/check-user-has-role.js.map +1 -1
- package/dist-server/utils/get-domain-users.d.ts +1 -1
- package/dist-server/utils/get-domain-users.js +2 -2
- package/dist-server/utils/get-domain-users.js.map +1 -1
- package/dist-server/utils/get-user-domains.d.ts +1 -1
- package/dist-server/utils/get-user-domains.js +4 -4
- package/dist-server/utils/get-user-domains.js.map +1 -1
- package/helps/config/recaptcha.ja.md +49 -0
- package/helps/config/recaptcha.ko.md +49 -0
- package/helps/config/recaptcha.md +49 -0
- package/helps/config/recaptcha.ms.md +49 -0
- package/helps/config/recaptcha.zh.md +49 -0
- package/package.json +10 -9
- package/translations/en.json +5 -1
- package/translations/ja.json +5 -1
- package/translations/ko.json +6 -3
- package/translations/ms.json +5 -1
- package/translations/zh.json +5 -1
- package/client/actions/auth.ts +0 -24
- package/client/auth.ts +0 -272
- package/client/bootstrap.ts +0 -47
- package/client/directive/privileged.ts +0 -28
- package/client/index.ts +0 -3
- package/client/profiled.ts +0 -83
- package/client/reducers/auth.ts +0 -31
- package/server/constants/error-code.ts +0 -20
- package/server/constants/error-message.ts +0 -0
- package/server/constants/max-age.ts +0 -1
- package/server/controllers/auth.ts +0 -5
- package/server/controllers/change-pwd.ts +0 -99
- package/server/controllers/checkin.ts +0 -21
- package/server/controllers/delete-user.ts +0 -68
- package/server/controllers/invitation.ts +0 -132
- package/server/controllers/profile.ts +0 -28
- package/server/controllers/reset-password.ts +0 -126
- package/server/controllers/signin.ts +0 -79
- package/server/controllers/signup.ts +0 -60
- package/server/controllers/unlock-user.ts +0 -61
- package/server/controllers/utils/make-invitation-token.ts +0 -5
- package/server/controllers/utils/make-verification-token.ts +0 -4
- package/server/controllers/utils/password-rule.ts +0 -120
- package/server/controllers/utils/save-invitation-token.ts +0 -10
- package/server/controllers/utils/save-verification-token.ts +0 -12
- package/server/controllers/verification.ts +0 -83
- package/server/errors/auth-error.ts +0 -24
- package/server/errors/index.ts +0 -2
- package/server/errors/user-domain-not-match-error.ts +0 -29
- package/server/index.ts +0 -37
- package/server/middlewares/authenticate-401-middleware.ts +0 -114
- package/server/middlewares/domain-authenticate-middleware.ts +0 -78
- package/server/middlewares/graphql-authenticate-middleware.ts +0 -13
- package/server/middlewares/index.ts +0 -67
- package/server/middlewares/jwt-authenticate-middleware.ts +0 -84
- package/server/middlewares/signin-middleware.ts +0 -55
- package/server/middlewares/webauthn-middleware.ts +0 -127
- package/server/migrations/1548206416130-SeedUser.ts +0 -59
- package/server/migrations/1566805283882-SeedPrivilege.ts +0 -28
- package/server/migrations/index.ts +0 -9
- package/server/router/auth-checkin-router.ts +0 -107
- package/server/router/auth-private-process-router.ts +0 -107
- package/server/router/auth-public-process-router.ts +0 -302
- package/server/router/auth-signin-router.ts +0 -65
- package/server/router/auth-signup-router.ts +0 -95
- package/server/router/index.ts +0 -9
- package/server/router/oauth2/index.ts +0 -2
- package/server/router/oauth2/oauth2-authorize-router.ts +0 -81
- package/server/router/oauth2/oauth2-router.ts +0 -165
- package/server/router/oauth2/oauth2-server.ts +0 -262
- package/server/router/oauth2/passport-oauth2-client-password.ts +0 -87
- package/server/router/oauth2/passport-refresh-token.ts +0 -87
- package/server/router/path-base-domain-router.ts +0 -8
- package/server/router/site-root-router.ts +0 -48
- package/server/router/webauthn-router.ts +0 -87
- package/server/routes.ts +0 -80
- package/server/service/app-binding/app-binding-mutation.ts +0 -22
- package/server/service/app-binding/app-binding-query.ts +0 -92
- package/server/service/app-binding/app-binding-types.ts +0 -11
- package/server/service/app-binding/app-binding.ts +0 -17
- package/server/service/app-binding/index.ts +0 -4
- package/server/service/appliance/appliance-mutation.ts +0 -113
- package/server/service/appliance/appliance-query.ts +0 -76
- package/server/service/appliance/appliance-types.ts +0 -56
- package/server/service/appliance/appliance.ts +0 -133
- package/server/service/appliance/index.ts +0 -6
- package/server/service/application/application-mutation.ts +0 -104
- package/server/service/application/application-query.ts +0 -98
- package/server/service/application/application-types.ts +0 -76
- package/server/service/application/application.ts +0 -216
- package/server/service/application/index.ts +0 -6
- package/server/service/auth-provider/auth-provider-mutation.ts +0 -159
- package/server/service/auth-provider/auth-provider-parameter-spec.ts +0 -24
- package/server/service/auth-provider/auth-provider-query.ts +0 -88
- package/server/service/auth-provider/auth-provider-type.ts +0 -67
- package/server/service/auth-provider/auth-provider.ts +0 -155
- package/server/service/auth-provider/index.ts +0 -7
- package/server/service/domain-generator/domain-generator-mutation.ts +0 -117
- package/server/service/domain-generator/domain-generator-types.ts +0 -46
- package/server/service/domain-generator/index.ts +0 -3
- package/server/service/granted-role/granted-role-mutation.ts +0 -156
- package/server/service/granted-role/granted-role-query.ts +0 -60
- package/server/service/granted-role/granted-role.ts +0 -27
- package/server/service/granted-role/index.ts +0 -6
- package/server/service/index.ts +0 -90
- package/server/service/invitation/index.ts +0 -6
- package/server/service/invitation/invitation-mutation.ts +0 -63
- package/server/service/invitation/invitation-query.ts +0 -33
- package/server/service/invitation/invitation-types.ts +0 -11
- package/server/service/invitation/invitation.ts +0 -63
- package/server/service/login-history/index.ts +0 -5
- package/server/service/login-history/login-history-query.ts +0 -51
- package/server/service/login-history/login-history-type.ts +0 -12
- package/server/service/login-history/login-history.ts +0 -45
- package/server/service/partner/index.ts +0 -6
- package/server/service/partner/partner-mutation.ts +0 -61
- package/server/service/partner/partner-query.ts +0 -102
- package/server/service/partner/partner-types.ts +0 -11
- package/server/service/partner/partner.ts +0 -57
- package/server/service/password-history/index.ts +0 -3
- package/server/service/password-history/password-history.ts +0 -16
- package/server/service/privilege/index.ts +0 -6
- package/server/service/privilege/privilege-directive.ts +0 -77
- package/server/service/privilege/privilege-mutation.ts +0 -92
- package/server/service/privilege/privilege-query.ts +0 -94
- package/server/service/privilege/privilege-types.ts +0 -60
- package/server/service/privilege/privilege.ts +0 -102
- package/server/service/role/index.ts +0 -6
- package/server/service/role/role-mutation.ts +0 -109
- package/server/service/role/role-query.ts +0 -155
- package/server/service/role/role-types.ts +0 -81
- package/server/service/role/role.ts +0 -72
- package/server/service/user/domain-query.ts +0 -24
- package/server/service/user/index.ts +0 -7
- package/server/service/user/user-mutation.ts +0 -413
- package/server/service/user/user-query.ts +0 -145
- package/server/service/user/user-types.ts +0 -97
- package/server/service/user/user.ts +0 -354
- package/server/service/users-auth-providers/index.ts +0 -5
- package/server/service/users-auth-providers/users-auth-providers.ts +0 -71
- package/server/service/verification-token/index.ts +0 -3
- package/server/service/verification-token/verification-token.ts +0 -60
- package/server/service/web-auth-credential/index.ts +0 -3
- package/server/service/web-auth-credential/web-auth-credential.ts +0 -67
- package/server/templates/account-unlock-email.ts +0 -65
- package/server/templates/invitation-email.ts +0 -66
- package/server/templates/reset-password-email.ts +0 -65
- package/server/templates/verification-email.ts +0 -66
- package/server/types.ts +0 -21
- package/server/utils/accepts.ts +0 -11
- package/server/utils/access-token-cookie.ts +0 -61
- package/server/utils/check-permission.ts +0 -52
- package/server/utils/check-user-belongs-domain.ts +0 -19
- package/server/utils/check-user-has-role.ts +0 -29
- package/server/utils/encrypt-state.ts +0 -22
- package/server/utils/get-aes-256-key.ts +0 -13
- package/server/utils/get-domain-from-hostname.ts +0 -7
- package/server/utils/get-domain-users.ts +0 -38
- package/server/utils/get-secret.ts +0 -13
- package/server/utils/get-user-domains.ts +0 -112
package/translations/en.json
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
"error.confirm password not matched": "new password and confirm password is not matched",
|
5
5
|
"error.domain mismatch": "certificate is not for this domain",
|
6
6
|
"error.domain not allowed": "user not allowed domain `{subdomain}`",
|
7
|
+
"error.email already exists": "email already used by another user",
|
7
8
|
"error.failed to find x": "failed to find {x}",
|
8
9
|
"error.password should be supported": "initial password or default password should be supported",
|
9
10
|
"error.password should match the rule": "password should match following rule. ${rule}",
|
@@ -11,13 +12,15 @@
|
|
11
12
|
"error.subdomain not found": "domain not found",
|
12
13
|
"error.token or password is invalid": "token or password is invalid",
|
13
14
|
"error.unavailable-domain": "unavailable domain",
|
15
|
+
"error.user credential not found": "user credential not found. You need to register device to use biometric authentication.",
|
14
16
|
"error.user credential registeration failed": "user credential registration failed. It may be an already registered credential.",
|
15
17
|
"error.user credential registration not allowed": "user credential registration failed. The registration timed out or was not allowed.",
|
16
|
-
"error.user duplicated": "user
|
18
|
+
"error.user duplicated.": "there is a user account using same email or user ID.",
|
17
19
|
"error.user not activated": "user is not activated",
|
18
20
|
"error.user not found": "user not found",
|
19
21
|
"error.user or verification token not found": "user or verification token not found",
|
20
22
|
"error.user validation failed": "user validation failed",
|
23
|
+
"error.username already exists": "username already used by another user",
|
21
24
|
"error.x is not a member of y": "{x} is not a member of {y}",
|
22
25
|
"field.active": "active",
|
23
26
|
"field.appliance_id": "appliance id",
|
@@ -56,6 +59,7 @@
|
|
56
59
|
"text.signout successfully": "signout successfully",
|
57
60
|
"text.user activated successfully": "user activated successfully",
|
58
61
|
"text.user credential registered successfully": "device registration has been successfully completed. You can now use biometric authentication.",
|
62
|
+
"text.user inactivated successfully": "user inactivated successfully",
|
59
63
|
"text.user registered successfully": "user registered successfully. find your email to activate account",
|
60
64
|
"text.verification email sent": "verification email sent"
|
61
65
|
}
|
package/translations/ja.json
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
"error.confirm password not matched": "新しいパスワードと確認パスワードが一致しません.",
|
5
5
|
"error.domain mismatch": "証明書のドメインと現在のドメインが一致しません.",
|
6
6
|
"error.domain not allowed": "'{subdomain}' 領域はこのユーザに許可されていません.",
|
7
|
+
"error.email already exists": "メールはすでに他のユーザーによって使用されています.",
|
7
8
|
"error.failed to find x": "{x}が見つかりません.",
|
8
9
|
"error.password should be supported": "初期パスワードまたはデフォルトパスワードがサポートされるべきです",
|
9
10
|
"error.password should match the rule": "パスワードは次の規則を守らなければなりません. {rule}",
|
@@ -11,13 +12,15 @@
|
|
11
12
|
"error.subdomain not found": "サブドメインが見つかりません.",
|
12
13
|
"error.token or password is invalid": "トークンまたはパスワードが無効です.",
|
13
14
|
"error.unavailable-domain": "使用できないドメインです.",
|
15
|
+
"error.user credential not found": "ユーザー資格情報が見つかりません. 生体認証を使用するにはデバイスを登録する必要があります.",
|
14
16
|
"error.user credential registeration failed": "ユーザー資格情報の登録に失敗しました。既に登録されている資格情報の可能性があります。",
|
15
17
|
"error.user credential registration not allowed": "ユーザー資格情報の登録に失敗しました。登録のタイムアウトまたは登録が許可されていません。",
|
16
|
-
"error.user duplicated": "
|
18
|
+
"error.user duplicated.": "ユーザーが重複しています.",
|
17
19
|
"error.user not activated": "ユーザーがアクティブ化されていません.",
|
18
20
|
"error.user not found": "ユーザーが存在しません.",
|
19
21
|
"error.user or verification token not found": "ユーザーまたは確認トークンが見つかりません.",
|
20
22
|
"error.user validation failed": "ユーザー確認に失敗しました.",
|
23
|
+
"error.username already exists": "ユーザー名はすでに他のユーザーによって使用されています.",
|
21
24
|
"error.x is not a member of y": "{x}は{y}のメンバーではありません.",
|
22
25
|
"field.active": "アクティブ",
|
23
26
|
"field.appliance_id": "器具ID",
|
@@ -56,6 +59,7 @@
|
|
56
59
|
"text.signout successfully": "ログアウトに成功しました.",
|
57
60
|
"text.user activated successfully": "ユーザーが正常に活性化されました.",
|
58
61
|
"text.user credential registered successfully": "デバイスの登録が正常に完了しました。今後は生体認証を使用できます。",
|
62
|
+
"text.user inactivated successfully": "ユーザーが正常に非アクティブ化されました.",
|
59
63
|
"text.user registered successfully": "ユーザーが正常に登録されました. 確認メールでアカウントを有効にしてください.",
|
60
64
|
"text.verification email sent": "確認メールを送りました."
|
61
65
|
}
|
package/translations/ko.json
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
"error.confirm password not matched": "새 비밀번호와 확인 비밀번호가 일치하지 않습니다.",
|
5
5
|
"error.domain mismatch": "인증서의 도메인과 현재 도메인이 일치하지 않습니다.",
|
6
6
|
"error.domain not allowed": "'{subdomain}' 영역은 이 사용자에게 허가되지 않았습니다.",
|
7
|
+
"error.email already exists": "이메일이 이미 사용되고 있습니다.",
|
7
8
|
"error.failed to find x": "{x}을(를) 찾을 수 없습니다.",
|
8
9
|
"error.password should be supported": "초기 비밀번호나 디폴트 비밀번호가 제공되어야 합니다.",
|
9
10
|
"error.password should match the rule": "비밀번호는 다음 규칙을 지켜야 합니다. {rule}",
|
@@ -12,13 +13,14 @@
|
|
12
13
|
"error.token or password is invalid": "토큰 또는 비밀번호가 유효하지 않습니다.",
|
13
14
|
"error.unavailable-domain": "사용할 수 없는 도메인입니다.",
|
14
15
|
"error.user credential not found": "사용자 자격 증명을 찾을 수 없습니다. 바이오메트릭 인증을 사용하기 위해서는 먼저 기기를 등록해야 합니다.",
|
15
|
-
"error.user
|
16
|
+
"error.user credential registeration failed": "사용자 인증서 등록이 실패하였습니다. 이미 등록된 인증서일 수 있습니다.",
|
17
|
+
"error.user credential registration not allowed": "사용자 인증서 등록이 실패하였습니다. 등록 시간이 초과되었거나 등록이 허용되지 않았습니다.",
|
18
|
+
"error.user duplicated": "동일한 이메일이나 사용자아이디로 가입된 계정이 이미 존재합니다.",
|
16
19
|
"error.user not activated": "사용자가 활성화되지 않았습니다.",
|
17
20
|
"error.user not found": "사용자가 존재하지 않습니다.",
|
18
21
|
"error.user or verification token not found": "사용자 또는 확인토큰을 찾을 수 없습니다.",
|
19
|
-
"error.user credential registeration failed": "사용자 인증서 등록이 실패하였습니다. 이미 등록된 인증서일 수 있습니다.",
|
20
|
-
"error.user credential registration not allowed": "사용자 인증서 등록이 실패하였습니다. 등록 시간이 초과되었거나 등록이 허용되지 않았습니다.",
|
21
22
|
"error.user validation failed": "사용자 확인에 실패하였습니다.",
|
23
|
+
"error.username already exists": "사용자 아이디가 이미 사용되고 있습니다.",
|
22
24
|
"error.x is not a member of y": "{x}은(는) {y}의 멤버가 아닙니다.",
|
23
25
|
"field.active": "활성화",
|
24
26
|
"field.appliance_id": "기구 아이디",
|
@@ -57,6 +59,7 @@
|
|
57
59
|
"text.signout successfully": "성공적으로 로그아웃 하였습니다.",
|
58
60
|
"text.user activated successfully": "사용자가 성공적으로 활성화되었습니다.",
|
59
61
|
"text.user credential registered successfully": "기기 등록이 성공적으로 완료되었습니다. 이제 바이오메트릭 인증을 사용할 수 있습니다.",
|
62
|
+
"text.user inactivated successfully": "사용자가 성공적으로 비활성화되었습니다.",
|
60
63
|
"text.user registered successfully": "사용자가 성공적으로 등록되었습니다. 확인 이메일을 통해서 계정을 활성화하시기 바랍니다.",
|
61
64
|
"text.verification email sent": "확인 이메일을 보냈습니다."
|
62
65
|
}
|
package/translations/ms.json
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
"error.confirm password not matched": "Kata laluan baru dan pengesahan kata laluan tidak sepadan",
|
5
5
|
"error.domain mismatch": "Sijil tidak sesuai untuk domain ini",
|
6
6
|
"error.domain not allowed": "Pengguna tidak dibenarkan domain `{subdomain}`",
|
7
|
+
"error.email already exists": "Emel telah digunakan oleh pengguna lain",
|
7
8
|
"error.failed to find x": "Gagal mencari {x}",
|
8
9
|
"error.password should be supported": "kata laluan awal atau kata laluan lalai harus disokong",
|
9
10
|
"error.password should match the rule": "Kata laluan harus mematuhi peraturan berikut. ${rule}",
|
@@ -11,13 +12,15 @@
|
|
11
12
|
"error.subdomain not found": "Domain tidak ditemui",
|
12
13
|
"error.token or password is invalid": "Token atau kata laluan tidak sah",
|
13
14
|
"error.unavailable-domain": "Domain tidak tersedia",
|
15
|
+
"error.user credential not found": "kelayakan pengguna tidak ditemui. Anda perlu mendaftarkan peranti untuk menggunakan pengesahan biometrik.",
|
14
16
|
"error.user credential registeration failed": "pendaftaran kelayakan pengguna gagal. Mungkin kelayakan tersebut sudah didaftarkan.",
|
15
17
|
"error.user credential registration not allowed": "pendaftaran kelayakan pengguna gagal. Masa pendaftaran telah tamat atau pendaftaran tidak dibenarkan.",
|
16
|
-
"error.user duplicated": "
|
18
|
+
"error.user duplicated": "terdapat akaun pengguna yang menggunakan e-mel atau ID pengguna yang sama.",
|
17
19
|
"error.user not activated": "Pengguna tidak diaktifkan",
|
18
20
|
"error.user not found": "Pengguna tidak ditemui",
|
19
21
|
"error.user or verification token not found": "Pengguna atau token pengesahan tidak ditemui",
|
20
22
|
"error.user validation failed": "Validasi pengguna gagal",
|
23
|
+
"error.username already exists": "Nama pengguna telah digunakan oleh pengguna lain",
|
21
24
|
"error.x is not a member of y": "{x} bukan ahli {y}",
|
22
25
|
"field.active": "Aktif",
|
23
26
|
"field.appliance_id": "Perkakas",
|
@@ -56,6 +59,7 @@
|
|
56
59
|
"text.signout successfully": "Berjaya keluar",
|
57
60
|
"text.user activated successfully": "Pengguna diaktifkan dengan berjaya",
|
58
61
|
"text.user credential registered successfully": "pendaftaran peranti berjaya diselesaikan. Kini anda boleh menggunakan pengesahan biometrik.",
|
62
|
+
"text.user inactivated successfully": "Pengguna tidak aktif dengan berjaya",
|
59
63
|
"text.user registered successfully": "Pengguna berjaya didaftarkan. Cari e-mel anda untuk mengaktifkan akaun",
|
60
64
|
"text.verification email sent": "E-mel pengesahan telah dihantar"
|
61
65
|
}
|
package/translations/zh.json
CHANGED
@@ -5,6 +5,7 @@
|
|
5
5
|
"error.confirm password not matched": "新密码与确认密码不匹配!",
|
6
6
|
"error.domain mismatch": "证书不适用于该域!",
|
7
7
|
"error.domain not allowed": "用户无权限使用`{subdomain}`域!",
|
8
|
+
"error.email already exists": "电子邮件已被其他用户使用!",
|
8
9
|
"error.failed to find x": "查询{x}失败!",
|
9
10
|
"error.password should be supported": "应支持初始密码或默认密码",
|
10
11
|
"error.password should match the rule": "密码应符合以下规则。${rule}",
|
@@ -12,13 +13,15 @@
|
|
12
13
|
"error.subdomain not found": "用户域查询失败!",
|
13
14
|
"error.token or password is invalid": "令牌或密码无效!",
|
14
15
|
"error.unavailable-domain": "不可用的域名",
|
16
|
+
"error.user credential not found": "用户凭证未找到。您需要注册设备以使用生物识别认证。",
|
15
17
|
"error.user credential registeration failed": "用户凭证注册失败。可能是已注册的凭证。",
|
16
18
|
"error.user credential registration not allowed": "用户凭证注册失败。注册超时或注册不被允许。",
|
17
|
-
"error.user duplicated": "
|
19
|
+
"error.user duplicated": "存在一个用户帐户使用相同的电子邮件或用户ID。",
|
18
20
|
"error.user not activated": "用户未激活!",
|
19
21
|
"error.user not found": "找不到用户",
|
20
22
|
"error.user or verification token not found": "找不到用户或验证令牌。",
|
21
23
|
"error.user validation failed": "用户验证失败!",
|
24
|
+
"error.username already exists": "用户名已被其他用户使用",
|
22
25
|
"error.x is not a member of y": "{x}不是{y}的成员",
|
23
26
|
"field.active": "激活",
|
24
27
|
"field.appliance_id": "终端机ID",
|
@@ -57,6 +60,7 @@
|
|
57
60
|
"text.signout successfully": "登出成功。",
|
58
61
|
"text.user activated successfully": "用户激活成功",
|
59
62
|
"text.user credential registered successfully": "设备注册已成功完成。现在可以使用生物识别认证。",
|
63
|
+
"text.user inactivated successfully": "用户已成功停用",
|
60
64
|
"text.user registered successfully": "用户注册成功。 请查看电子邮件以激活帐户。",
|
61
65
|
"text.verification email sent": "验证邮件已发送"
|
62
66
|
}
|
package/client/actions/auth.ts
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
import { Action, ThunkAction } from '@reduxjs/toolkit'
|
2
|
-
|
3
|
-
export const SET_PROFILE = 'SET-PROFILE'
|
4
|
-
export const SET_AUTH = 'SET-AUTH'
|
5
|
-
|
6
|
-
type RootState = any
|
7
|
-
|
8
|
-
export const updateUser =
|
9
|
-
(user: any): ThunkAction<void, RootState, unknown, Action<any>> =>
|
10
|
-
(dispatch, getState) => {
|
11
|
-
dispatch({
|
12
|
-
type: SET_PROFILE,
|
13
|
-
user
|
14
|
-
})
|
15
|
-
}
|
16
|
-
|
17
|
-
export const updateAuthenticated =
|
18
|
-
(auth: { authenticated: boolean }): ThunkAction<void, RootState, unknown, Action<any>> =>
|
19
|
-
(dispatch, getState) => {
|
20
|
-
dispatch({
|
21
|
-
type: SET_AUTH,
|
22
|
-
auth
|
23
|
-
})
|
24
|
-
}
|
package/client/auth.ts
DELETED
@@ -1,272 +0,0 @@
|
|
1
|
-
/* [ AUTH PATH ]
|
2
|
-
signinPath = '/auth/signin'
|
3
|
-
signoutPath = '/auth/signout'
|
4
|
-
profilePath = '/auth/profile'
|
5
|
-
updateProfilePath = '/auth/update-profile'
|
6
|
-
changepassPath = '/auth/change-pass'
|
7
|
-
deleteUserPath = '/auth/delete-user'
|
8
|
-
*/
|
9
|
-
|
10
|
-
const HEADER_JSON = {
|
11
|
-
'Content-Type': 'application/json',
|
12
|
-
Accept: 'application/json'
|
13
|
-
}
|
14
|
-
type AuthEventName = 'profile' | 'signin' | 'signout' | 'presignout' | 'passwordchange' | 'error'
|
15
|
-
type AuthEventHandler = (e?: {
|
16
|
-
accessToken?: string
|
17
|
-
credential?: string
|
18
|
-
domains: any[]
|
19
|
-
domain: any
|
20
|
-
languages?: { code: string; display: string }[]
|
21
|
-
}) => void
|
22
|
-
type AuthErrorHandler = (err: any) => void
|
23
|
-
|
24
|
-
class ClientAuth {
|
25
|
-
private listeners: {
|
26
|
-
profile: AuthEventHandler[]
|
27
|
-
signout: AuthEventHandler[]
|
28
|
-
signin: AuthEventHandler[]
|
29
|
-
presignout: AuthEventHandler[]
|
30
|
-
passwordchange: AuthEventHandler[]
|
31
|
-
error: AuthErrorHandler[]
|
32
|
-
} = {
|
33
|
-
profile: [],
|
34
|
-
signout: [],
|
35
|
-
signin: [],
|
36
|
-
presignout: [],
|
37
|
-
passwordchange: [],
|
38
|
-
error: []
|
39
|
-
}
|
40
|
-
|
41
|
-
private authRequiredEventListener = this.onAuthRequired.bind(this)
|
42
|
-
private activateRequiredEventListener = this.onActivateRequired.bind(this)
|
43
|
-
|
44
|
-
private _credential: any
|
45
|
-
private accessToken?: string
|
46
|
-
private domains: any[] = []
|
47
|
-
private domain: any
|
48
|
-
private languages: { code: string; display: string }[] = []
|
49
|
-
|
50
|
-
constructor() {
|
51
|
-
document.addEventListener('auth-required', this.authRequiredEventListener)
|
52
|
-
document.addEventListener('activate-required', this.activateRequiredEventListener)
|
53
|
-
}
|
54
|
-
|
55
|
-
on(event: AuthEventName, handler: AuthEventHandler | AuthErrorHandler) {
|
56
|
-
var listeners = this.listeners[event]
|
57
|
-
if (listeners) {
|
58
|
-
listeners.push(handler)
|
59
|
-
} else {
|
60
|
-
console.log('unknown event', event)
|
61
|
-
}
|
62
|
-
|
63
|
-
if (event == 'profile' && this._credential) {
|
64
|
-
/*
|
65
|
-
특별히 event 가 profile 인 경우에는 이미 fetch된 credential이 있다면, 콜백을 해준다.
|
66
|
-
시스템 bootstrap에서 profile 이벤트가 사용되는 경우가 많은데, profile도 매우 초기에 fetch 되므로 레이스컨디션이 발생할 수 있기 때문에, 확실하게 event 콜백을 보장하기 위해서이다.
|
67
|
-
*/
|
68
|
-
handler({ credential: this._credential, domains: this.domains, domain: this.domain, languages: this.languages })
|
69
|
-
}
|
70
|
-
}
|
71
|
-
|
72
|
-
off(event: AuthEventName, handler: AuthEventHandler | AuthErrorHandler) {
|
73
|
-
var listeners = this.listeners[event]
|
74
|
-
if (listeners) {
|
75
|
-
let idx = listeners.indexOf(handler)
|
76
|
-
idx >= 0 && listeners.splice(idx, 1)
|
77
|
-
} else {
|
78
|
-
console.log('unknown event', event)
|
79
|
-
}
|
80
|
-
}
|
81
|
-
|
82
|
-
dispose() {
|
83
|
-
document.removeEventListener('auth-required', this.authRequiredEventListener)
|
84
|
-
document.removeEventListener('activate-required', this.activateRequiredEventListener)
|
85
|
-
|
86
|
-
this.listeners = {
|
87
|
-
profile: [],
|
88
|
-
signin: [],
|
89
|
-
signout: [],
|
90
|
-
presignout: [],
|
91
|
-
passwordchange: [],
|
92
|
-
error: []
|
93
|
-
}
|
94
|
-
}
|
95
|
-
|
96
|
-
private onProfileFetched({ credential, accessToken, domains, domain, languages }) {
|
97
|
-
this._credential = credential
|
98
|
-
this.domains = domains
|
99
|
-
this.domain = domain
|
100
|
-
this.languages = languages
|
101
|
-
|
102
|
-
if (accessToken && !this.accessToken) {
|
103
|
-
/*
|
104
|
-
기존에 세션을 가지거나, 액세스토큰으로 인증된 경우,
|
105
|
-
이 경우는 signin 이벤트리스너들을 호출해서 authenticated 상태로 되도록 유도한다.
|
106
|
-
*/
|
107
|
-
this.accessToken = accessToken
|
108
|
-
this.listeners.signin.forEach(handler => handler({ accessToken, domains, domain, languages }))
|
109
|
-
}
|
110
|
-
accessToken && (this.accessToken = accessToken)
|
111
|
-
this.listeners.profile.forEach(handler => handler({ credential, domains, domain, languages }))
|
112
|
-
}
|
113
|
-
|
114
|
-
private async onPreSignout() {
|
115
|
-
for (let onpresignout of this.listeners.presignout) {
|
116
|
-
await onpresignout()
|
117
|
-
}
|
118
|
-
}
|
119
|
-
|
120
|
-
private onAuthError(error) {
|
121
|
-
/* signin, signup 과정에서 에러가 발생한 경우 */
|
122
|
-
this.listeners?.error.forEach(handler => handler(error))
|
123
|
-
}
|
124
|
-
|
125
|
-
private onPasswordChanged(result) {
|
126
|
-
//event is passwordchange, handler is result
|
127
|
-
this.listeners?.passwordchange.forEach(handler => handler(result))
|
128
|
-
}
|
129
|
-
|
130
|
-
private onAuthRequired(e) {
|
131
|
-
console.warn('authentication required')
|
132
|
-
let url = new URL(window.location.href)
|
133
|
-
url.pathname = '/auth/signin'
|
134
|
-
url.searchParams.append('redirect_to', window.location.href)
|
135
|
-
|
136
|
-
window.location.href = url.href
|
137
|
-
}
|
138
|
-
|
139
|
-
private onActivateRequired(e) {
|
140
|
-
console.warn('activate required')
|
141
|
-
var params = new URLSearchParams()
|
142
|
-
params.append('email', e.email)
|
143
|
-
|
144
|
-
window.location.replace(`/auth/activate?${params}`)
|
145
|
-
}
|
146
|
-
|
147
|
-
get credential() {
|
148
|
-
return this._credential
|
149
|
-
}
|
150
|
-
|
151
|
-
route(path, redirected) {
|
152
|
-
/* history에 남긴다. redirected된 상태임을 남긴다. */
|
153
|
-
const location = window.location
|
154
|
-
const origin = location.origin || location.protocol + '//' + location.host
|
155
|
-
const href = `${origin}${path}`
|
156
|
-
|
157
|
-
if (location.pathname === path) return
|
158
|
-
|
159
|
-
// popstate 이벤트가 history.back() 에서만 발생하므로
|
160
|
-
// 히스토리에 두번을 넣고 back()을 호출하는 편법을 사용함.
|
161
|
-
// forward history가 한번 남는 문제가 있으나 signin 프로세스 중에만 발생하므로 큰 문제는 아님.
|
162
|
-
// 이 로직은 login process가 어플리케이션 구조에 종속되는 것을 최소화하기 위함임.
|
163
|
-
// 예를 들면, redux 구조에 들어가지 않아도 로그인 프로세스가 동작하도록 한 것임.
|
164
|
-
window.history.pushState({ redirected }, '', href)
|
165
|
-
window.history.pushState({}, '', href)
|
166
|
-
|
167
|
-
window.history.back()
|
168
|
-
}
|
169
|
-
|
170
|
-
async updateProfile(formProps) {
|
171
|
-
const response = await fetch('/auth/update-profile', {
|
172
|
-
method: 'POST',
|
173
|
-
credentials: 'include',
|
174
|
-
headers: HEADER_JSON,
|
175
|
-
body: JSON.stringify(formProps)
|
176
|
-
})
|
177
|
-
|
178
|
-
const message = await response.text()
|
179
|
-
if (response.ok) {
|
180
|
-
return message
|
181
|
-
}
|
182
|
-
|
183
|
-
throw new Error(message)
|
184
|
-
}
|
185
|
-
|
186
|
-
async changePassword(formProps) {
|
187
|
-
try {
|
188
|
-
const response = await fetch('/auth/change-pass', {
|
189
|
-
method: 'POST',
|
190
|
-
credentials: 'include',
|
191
|
-
headers: HEADER_JSON,
|
192
|
-
body: JSON.stringify(formProps)
|
193
|
-
})
|
194
|
-
|
195
|
-
const message = await response.text()
|
196
|
-
if (response.ok) {
|
197
|
-
this.onPasswordChanged({ message })
|
198
|
-
} else {
|
199
|
-
this.onAuthError({ message })
|
200
|
-
}
|
201
|
-
} catch (e) {
|
202
|
-
this.onAuthError(e)
|
203
|
-
}
|
204
|
-
}
|
205
|
-
|
206
|
-
async deleteUser(params) {
|
207
|
-
const response = await fetch('/auth/delete-user', {
|
208
|
-
method: 'POST',
|
209
|
-
credentials: 'include',
|
210
|
-
headers: HEADER_JSON,
|
211
|
-
body: JSON.stringify(params)
|
212
|
-
})
|
213
|
-
|
214
|
-
const message = await response.text()
|
215
|
-
if (response.ok) {
|
216
|
-
return message
|
217
|
-
} else {
|
218
|
-
throw new Error(message)
|
219
|
-
}
|
220
|
-
}
|
221
|
-
|
222
|
-
async profile() {
|
223
|
-
if (sessionStorage.getItem('ThingsFactory-UseExternServer')) {
|
224
|
-
return
|
225
|
-
}
|
226
|
-
|
227
|
-
try {
|
228
|
-
var searchParams = new URLSearchParams(location.search)
|
229
|
-
var token = searchParams.get('token')
|
230
|
-
var headers = JSON.parse(JSON.stringify(HEADER_JSON))
|
231
|
-
|
232
|
-
if (token) {
|
233
|
-
headers.authorization = `Bearer ${token}`
|
234
|
-
}
|
235
|
-
|
236
|
-
const response = await fetch('/auth/profile', {
|
237
|
-
method: 'GET',
|
238
|
-
credentials: 'include',
|
239
|
-
headers
|
240
|
-
})
|
241
|
-
|
242
|
-
if (response.ok) {
|
243
|
-
if (response.redirected) {
|
244
|
-
location.href = response.url
|
245
|
-
return
|
246
|
-
}
|
247
|
-
|
248
|
-
const data = await response.json()
|
249
|
-
|
250
|
-
this.onProfileFetched({
|
251
|
-
credential: data.user,
|
252
|
-
accessToken: data.token,
|
253
|
-
domains: data.domains,
|
254
|
-
domain: data.domain,
|
255
|
-
languages: data.languages
|
256
|
-
})
|
257
|
-
|
258
|
-
return
|
259
|
-
}
|
260
|
-
} catch (e) {
|
261
|
-
this.onAuthError(e)
|
262
|
-
}
|
263
|
-
}
|
264
|
-
|
265
|
-
async signout() {
|
266
|
-
await this.onPreSignout()
|
267
|
-
|
268
|
-
window.location.href = '/auth/signout'
|
269
|
-
}
|
270
|
-
}
|
271
|
-
|
272
|
-
export const auth = new ClientAuth()
|
package/client/bootstrap.ts
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
import { store, updateDomains } from '@operato/shell'
|
2
|
-
|
3
|
-
import { updateAuthenticated, updateUser } from './actions/auth'
|
4
|
-
import { auth } from './auth'
|
5
|
-
import reducerAuth from './reducers/auth'
|
6
|
-
|
7
|
-
import './directive/privileged' /* directive 초기화를 보장하기 위해서 호출함. */
|
8
|
-
|
9
|
-
export default function bootstrap() {
|
10
|
-
store.addReducers({
|
11
|
-
auth: reducerAuth
|
12
|
-
})
|
13
|
-
|
14
|
-
auth.on('profile', ({ credential, domains, domain, languages }) => {
|
15
|
-
store.dispatch(
|
16
|
-
updateAuthenticated({
|
17
|
-
authenticated: true
|
18
|
-
}) as any
|
19
|
-
)
|
20
|
-
store.dispatch(updateUser(credential) as any)
|
21
|
-
store.dispatch(updateDomains(domains, domain) as any)
|
22
|
-
})
|
23
|
-
|
24
|
-
auth.on('passwordchange', result => {
|
25
|
-
let message = result.message
|
26
|
-
|
27
|
-
document.dispatchEvent(
|
28
|
-
new CustomEvent('notify', {
|
29
|
-
detail: {
|
30
|
-
level: result.error ? 'error' : 'info',
|
31
|
-
message
|
32
|
-
}
|
33
|
-
})
|
34
|
-
)
|
35
|
-
})
|
36
|
-
|
37
|
-
auth.on('error', ex => {
|
38
|
-
document.dispatchEvent(
|
39
|
-
new CustomEvent('notify', {
|
40
|
-
detail: {
|
41
|
-
level: 'error',
|
42
|
-
message: ex.message
|
43
|
-
}
|
44
|
-
})
|
45
|
-
)
|
46
|
-
})
|
47
|
-
}
|
@@ -1,28 +0,0 @@
|
|
1
|
-
import { nothing } from 'lit'
|
2
|
-
import { directive, AsyncDirective } from 'lit/async-directive.js'
|
3
|
-
import { hasPrivilege } from '../profiled'
|
4
|
-
|
5
|
-
class PrivilegedDirective extends AsyncDirective {
|
6
|
-
render(
|
7
|
-
privilege: {
|
8
|
-
privilege?: string
|
9
|
-
category?: string
|
10
|
-
domainOwnerGranted?: boolean
|
11
|
-
superUserGranted?: boolean
|
12
|
-
},
|
13
|
-
trueResult: any,
|
14
|
-
falseResult: any = nothing
|
15
|
-
) {
|
16
|
-
this.setValue(nothing)
|
17
|
-
|
18
|
-
hasPrivilege(privilege).then(result => {
|
19
|
-
if (result) {
|
20
|
-
this.setValue(trueResult)
|
21
|
-
} else {
|
22
|
-
this.setValue(falseResult)
|
23
|
-
}
|
24
|
-
})
|
25
|
-
}
|
26
|
-
}
|
27
|
-
|
28
|
-
export const privileged = directive(PrivilegedDirective)
|
package/client/index.ts
DELETED
package/client/profiled.ts
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
import { auth } from './auth'
|
2
|
-
|
3
|
-
var profileResolved = false
|
4
|
-
var user
|
5
|
-
var languages
|
6
|
-
var domain
|
7
|
-
var domains
|
8
|
-
|
9
|
-
const profileReady = new Promise<void>(resolve => {
|
10
|
-
auth.on('profile', (data: { credential; domains; domain; languages }) => {
|
11
|
-
profileResolved = true
|
12
|
-
|
13
|
-
user = data.credential
|
14
|
-
languages = data.languages
|
15
|
-
domain = data.domain
|
16
|
-
domains = data.domains
|
17
|
-
|
18
|
-
resolve()
|
19
|
-
})
|
20
|
-
})
|
21
|
-
|
22
|
-
export async function hasPrivilege({
|
23
|
-
privilege,
|
24
|
-
category,
|
25
|
-
domainOwnerGranted,
|
26
|
-
superUserGranted
|
27
|
-
}: {
|
28
|
-
privilege?: string
|
29
|
-
category?: string
|
30
|
-
domainOwnerGranted?: boolean
|
31
|
-
superUserGranted?: boolean
|
32
|
-
}) {
|
33
|
-
if (!profileResolved) {
|
34
|
-
await profileReady
|
35
|
-
}
|
36
|
-
|
37
|
-
const { privileges, owner, super: superUser, unsafeIP } = user
|
38
|
-
|
39
|
-
if (unsafeIP) {
|
40
|
-
if (privilege && category) {
|
41
|
-
// unsafeIP 상황에서는 ownership granted는 적용되지 않는다.
|
42
|
-
return (privileges || []).find(p => p.privilege == privilege && p.category == category)
|
43
|
-
}
|
44
|
-
|
45
|
-
// privileage, category가 설정되지 않은 경우에는 ownership granted가 설정되었다면 허가하지 않는다.
|
46
|
-
return !domainOwnerGranted && !superUserGranted
|
47
|
-
} else {
|
48
|
-
if (!privilege || !category) {
|
49
|
-
// privileage, category가 설정되지 않은 경우에는 ownership granted만을 적용한다.
|
50
|
-
return (domainOwnerGranted && owner) || (superUserGranted && superUser)
|
51
|
-
}
|
52
|
-
|
53
|
-
if ((domainOwnerGranted && owner) || (superUserGranted && superUser)) {
|
54
|
-
return true
|
55
|
-
}
|
56
|
-
|
57
|
-
return (privileges || []).find(p => p.privilege == privilege && p.category == category)
|
58
|
-
}
|
59
|
-
}
|
60
|
-
|
61
|
-
export async function getLanguages() {
|
62
|
-
if (!profileResolved) {
|
63
|
-
await profileReady
|
64
|
-
}
|
65
|
-
|
66
|
-
return languages
|
67
|
-
}
|
68
|
-
|
69
|
-
export async function getDomain() {
|
70
|
-
if (!profileResolved) {
|
71
|
-
await profileReady
|
72
|
-
}
|
73
|
-
|
74
|
-
return domain
|
75
|
-
}
|
76
|
-
|
77
|
-
export async function getDomains() {
|
78
|
-
if (!profileResolved) {
|
79
|
-
await profileReady
|
80
|
-
}
|
81
|
-
|
82
|
-
return domains
|
83
|
-
}
|
package/client/reducers/auth.ts
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
import { SET_AUTH, SET_PROFILE } from '../actions/auth'
|
2
|
-
|
3
|
-
const INITIAL_STATE = {
|
4
|
-
authenticated: false,
|
5
|
-
accessToken: '',
|
6
|
-
user: null
|
7
|
-
}
|
8
|
-
|
9
|
-
const auth = (state = INITIAL_STATE, action) => {
|
10
|
-
switch (action.type) {
|
11
|
-
case SET_AUTH:
|
12
|
-
let auth = action.auth
|
13
|
-
|
14
|
-
return {
|
15
|
-
...state,
|
16
|
-
authenticated: auth.authenticated,
|
17
|
-
accessToken: auth.accessToken
|
18
|
-
}
|
19
|
-
|
20
|
-
case SET_PROFILE:
|
21
|
-
return {
|
22
|
-
...state,
|
23
|
-
user: action.user
|
24
|
-
}
|
25
|
-
|
26
|
-
default:
|
27
|
-
return state
|
28
|
-
}
|
29
|
-
}
|
30
|
-
|
31
|
-
export default auth
|