@things-factory/auth-base 7.0.1-beta.8 → 7.0.1-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/dist-client/auth.js.map +1 -1
  2. package/dist-client/directive/privileged.d.ts +5 -5
  3. package/dist-client/directive/privileged.js.map +1 -1
  4. package/dist-client/profiled.js.map +1 -1
  5. package/dist-client/reducers/auth.js.map +1 -1
  6. package/dist-client/tsconfig.tsbuildinfo +1 -1
  7. package/dist-server/constants/error-code.d.ts +1 -0
  8. package/dist-server/constants/error-code.js +2 -1
  9. package/dist-server/constants/error-code.js.map +1 -1
  10. package/dist-server/controllers/change-pwd.js +1 -2
  11. package/dist-server/controllers/change-pwd.js.map +1 -1
  12. package/dist-server/controllers/checkin.js +1 -2
  13. package/dist-server/controllers/checkin.js.map +1 -1
  14. package/dist-server/controllers/delete-user.js +2 -3
  15. package/dist-server/controllers/delete-user.js.map +1 -1
  16. package/dist-server/controllers/invitation.js +4 -5
  17. package/dist-server/controllers/invitation.js.map +1 -1
  18. package/dist-server/controllers/profile.js +1 -2
  19. package/dist-server/controllers/profile.js.map +1 -1
  20. package/dist-server/controllers/reset-password.js +2 -3
  21. package/dist-server/controllers/reset-password.js.map +1 -1
  22. package/dist-server/controllers/signin.js +1 -2
  23. package/dist-server/controllers/signin.js.map +1 -1
  24. package/dist-server/controllers/signup.js +1 -2
  25. package/dist-server/controllers/signup.js.map +1 -1
  26. package/dist-server/controllers/unlock-user.js +2 -3
  27. package/dist-server/controllers/unlock-user.js.map +1 -1
  28. package/dist-server/controllers/utils/make-invitation-token.js +1 -2
  29. package/dist-server/controllers/utils/make-invitation-token.js.map +1 -1
  30. package/dist-server/controllers/utils/make-verification-token.js +1 -2
  31. package/dist-server/controllers/utils/make-verification-token.js.map +1 -1
  32. package/dist-server/controllers/utils/password-rule.js +10 -10
  33. package/dist-server/controllers/utils/password-rule.js.map +1 -1
  34. package/dist-server/controllers/utils/save-invitation-token.js +1 -2
  35. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
  36. package/dist-server/controllers/utils/save-verification-token.js +1 -2
  37. package/dist-server/controllers/utils/save-verification-token.js.map +1 -1
  38. package/dist-server/controllers/verification.js +3 -4
  39. package/dist-server/controllers/verification.js.map +1 -1
  40. package/dist-server/index.js.map +1 -1
  41. package/dist-server/middlewares/authenticate-401-middleware.js +1 -2
  42. package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -1
  43. package/dist-server/middlewares/domain-authenticate-middleware.js +1 -2
  44. package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
  45. package/dist-server/middlewares/graphql-authenticate-middleware.js +1 -2
  46. package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -1
  47. package/dist-server/middlewares/index.js +1 -2
  48. package/dist-server/middlewares/index.js.map +1 -1
  49. package/dist-server/middlewares/jwt-authenticate-middleware.js +1 -2
  50. package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -1
  51. package/dist-server/middlewares/signin-middleware.js +1 -2
  52. package/dist-server/middlewares/signin-middleware.js.map +1 -1
  53. package/dist-server/middlewares/webauthn-middleware.js +9 -3
  54. package/dist-server/middlewares/webauthn-middleware.js.map +1 -1
  55. package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -1
  56. package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -1
  57. package/dist-server/router/auth-checkin-router.js.map +1 -1
  58. package/dist-server/router/auth-private-process-router.js.map +1 -1
  59. package/dist-server/router/auth-public-process-router.js.map +1 -1
  60. package/dist-server/router/auth-signin-router.js.map +1 -1
  61. package/dist-server/router/auth-signup-router.js.map +1 -1
  62. package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -1
  63. package/dist-server/router/oauth2/oauth2-router.js.map +1 -1
  64. package/dist-server/router/oauth2/oauth2-server.js.map +1 -1
  65. package/dist-server/router/oauth2/passport-oauth2-client-password.js +1 -2
  66. package/dist-server/router/oauth2/passport-oauth2-client-password.js.map +1 -1
  67. package/dist-server/router/oauth2/passport-refresh-token.js +1 -2
  68. package/dist-server/router/oauth2/passport-refresh-token.js.map +1 -1
  69. package/dist-server/router/site-root-router.js.map +1 -1
  70. package/dist-server/routes.js.map +1 -1
  71. package/dist-server/service/app-binding/app-binding-mutation.js +2 -2
  72. package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -1
  73. package/dist-server/service/app-binding/app-binding-query.js +3 -3
  74. package/dist-server/service/app-binding/app-binding-query.js.map +1 -1
  75. package/dist-server/service/app-binding/app-binding-types.js +2 -2
  76. package/dist-server/service/app-binding/app-binding-types.js.map +1 -1
  77. package/dist-server/service/app-binding/app-binding.js +2 -2
  78. package/dist-server/service/app-binding/app-binding.js.map +1 -1
  79. package/dist-server/service/appliance/appliance-mutation.js +2 -2
  80. package/dist-server/service/appliance/appliance-mutation.js.map +1 -1
  81. package/dist-server/service/appliance/appliance-query.js +4 -4
  82. package/dist-server/service/appliance/appliance-query.js.map +1 -1
  83. package/dist-server/service/appliance/appliance-types.js +6 -6
  84. package/dist-server/service/appliance/appliance-types.js.map +1 -1
  85. package/dist-server/service/appliance/appliance.js +2 -2
  86. package/dist-server/service/appliance/appliance.js.map +1 -1
  87. package/dist-server/service/application/application-mutation.js +2 -2
  88. package/dist-server/service/application/application-mutation.js.map +1 -1
  89. package/dist-server/service/application/application-query.js +3 -3
  90. package/dist-server/service/application/application-query.js.map +1 -1
  91. package/dist-server/service/application/application-types.js +8 -8
  92. package/dist-server/service/application/application-types.js.map +1 -1
  93. package/dist-server/service/application/application.js +6 -6
  94. package/dist-server/service/application/application.js.map +1 -1
  95. package/dist-server/service/auth-provider/auth-provider-mutation.js +2 -2
  96. package/dist-server/service/auth-provider/auth-provider-mutation.js.map +1 -1
  97. package/dist-server/service/auth-provider/auth-provider-parameter-spec.js +2 -2
  98. package/dist-server/service/auth-provider/auth-provider-parameter-spec.js.map +1 -1
  99. package/dist-server/service/auth-provider/auth-provider-query.js +3 -3
  100. package/dist-server/service/auth-provider/auth-provider-query.js.map +1 -1
  101. package/dist-server/service/auth-provider/auth-provider-type.js +6 -6
  102. package/dist-server/service/auth-provider/auth-provider-type.js.map +1 -1
  103. package/dist-server/service/auth-provider/auth-provider.js +6 -6
  104. package/dist-server/service/auth-provider/auth-provider.js.map +1 -1
  105. package/dist-server/service/domain-generator/domain-generator-mutation.js +2 -2
  106. package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -1
  107. package/dist-server/service/domain-generator/domain-generator-types.js +6 -6
  108. package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -1
  109. package/dist-server/service/granted-role/granted-role-mutation.js +6 -6
  110. package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -1
  111. package/dist-server/service/granted-role/granted-role-query.js +2 -2
  112. package/dist-server/service/granted-role/granted-role-query.js.map +1 -1
  113. package/dist-server/service/granted-role/granted-role.js +2 -2
  114. package/dist-server/service/granted-role/granted-role.js.map +1 -1
  115. package/dist-server/service/invitation/invitation-mutation.js +2 -2
  116. package/dist-server/service/invitation/invitation-mutation.js.map +1 -1
  117. package/dist-server/service/invitation/invitation-query.js +2 -2
  118. package/dist-server/service/invitation/invitation-query.js.map +1 -1
  119. package/dist-server/service/invitation/invitation-types.js +2 -2
  120. package/dist-server/service/invitation/invitation-types.js.map +1 -1
  121. package/dist-server/service/invitation/invitation.js +2 -2
  122. package/dist-server/service/invitation/invitation.js.map +1 -1
  123. package/dist-server/service/login-history/login-history-query.js +3 -3
  124. package/dist-server/service/login-history/login-history-query.js.map +1 -1
  125. package/dist-server/service/login-history/login-history-type.js +2 -2
  126. package/dist-server/service/login-history/login-history-type.js.map +1 -1
  127. package/dist-server/service/login-history/login-history.js +2 -2
  128. package/dist-server/service/login-history/login-history.js.map +1 -1
  129. package/dist-server/service/partner/partner-mutation.js +2 -2
  130. package/dist-server/service/partner/partner-mutation.js.map +1 -1
  131. package/dist-server/service/partner/partner-query.js +4 -4
  132. package/dist-server/service/partner/partner-query.js.map +1 -1
  133. package/dist-server/service/partner/partner-types.js +2 -2
  134. package/dist-server/service/partner/partner-types.js.map +1 -1
  135. package/dist-server/service/partner/partner.js +2 -2
  136. package/dist-server/service/partner/partner.js.map +1 -1
  137. package/dist-server/service/password-history/password-history.js +2 -2
  138. package/dist-server/service/password-history/password-history.js.map +1 -1
  139. package/dist-server/service/privilege/privilege-directive.js.map +1 -1
  140. package/dist-server/service/privilege/privilege-mutation.js +2 -2
  141. package/dist-server/service/privilege/privilege-mutation.js.map +1 -1
  142. package/dist-server/service/privilege/privilege-query.js +3 -3
  143. package/dist-server/service/privilege/privilege-query.js.map +1 -1
  144. package/dist-server/service/privilege/privilege-types.js +8 -8
  145. package/dist-server/service/privilege/privilege-types.js.map +1 -1
  146. package/dist-server/service/privilege/privilege.js +6 -6
  147. package/dist-server/service/privilege/privilege.js.map +1 -1
  148. package/dist-server/service/role/role-mutation.js +2 -2
  149. package/dist-server/service/role/role-mutation.js.map +1 -1
  150. package/dist-server/service/role/role-query.js +3 -3
  151. package/dist-server/service/role/role-query.js.map +1 -1
  152. package/dist-server/service/role/role-types.js +10 -10
  153. package/dist-server/service/role/role-types.js.map +1 -1
  154. package/dist-server/service/role/role.js +2 -2
  155. package/dist-server/service/role/role.js.map +1 -1
  156. package/dist-server/service/user/domain-query.js +2 -2
  157. package/dist-server/service/user/domain-query.js.map +1 -1
  158. package/dist-server/service/user/user-mutation.js +2 -2
  159. package/dist-server/service/user/user-mutation.js.map +1 -1
  160. package/dist-server/service/user/user-query.js +3 -3
  161. package/dist-server/service/user/user-query.js.map +1 -1
  162. package/dist-server/service/user/user-types.js +6 -6
  163. package/dist-server/service/user/user-types.js.map +1 -1
  164. package/dist-server/service/user/user.js +5 -5
  165. package/dist-server/service/user/user.js.map +1 -1
  166. package/dist-server/service/users-auth-providers/users-auth-providers.js +2 -2
  167. package/dist-server/service/users-auth-providers/users-auth-providers.js.map +1 -1
  168. package/dist-server/service/verification-token/verification-token.js +3 -3
  169. package/dist-server/service/verification-token/verification-token.js.map +1 -1
  170. package/dist-server/service/web-auth-credential/web-auth-credential.js +2 -2
  171. package/dist-server/service/web-auth-credential/web-auth-credential.js.map +1 -1
  172. package/dist-server/templates/account-unlock-email.js +1 -2
  173. package/dist-server/templates/account-unlock-email.js.map +1 -1
  174. package/dist-server/templates/invitation-email.js +1 -2
  175. package/dist-server/templates/invitation-email.js.map +1 -1
  176. package/dist-server/templates/reset-password-email.js +1 -2
  177. package/dist-server/templates/reset-password-email.js.map +1 -1
  178. package/dist-server/templates/verification-email.js +1 -2
  179. package/dist-server/templates/verification-email.js.map +1 -1
  180. package/dist-server/tsconfig.tsbuildinfo +1 -1
  181. package/dist-server/utils/accepts.js +1 -2
  182. package/dist-server/utils/accepts.js.map +1 -1
  183. package/dist-server/utils/access-token-cookie.js +4 -5
  184. package/dist-server/utils/access-token-cookie.js.map +1 -1
  185. package/dist-server/utils/check-permission.js +1 -2
  186. package/dist-server/utils/check-permission.js.map +1 -1
  187. package/dist-server/utils/check-user-belongs-domain.js +1 -2
  188. package/dist-server/utils/check-user-belongs-domain.js.map +1 -1
  189. package/dist-server/utils/encrypt-state.js +2 -3
  190. package/dist-server/utils/encrypt-state.js.map +1 -1
  191. package/dist-server/utils/get-aes-256-key.js.map +1 -1
  192. package/dist-server/utils/get-domain-from-hostname.js +1 -2
  193. package/dist-server/utils/get-domain-from-hostname.js.map +1 -1
  194. package/dist-server/utils/get-domain-users.js +2 -3
  195. package/dist-server/utils/get-domain-users.js.map +1 -1
  196. package/dist-server/utils/get-secret.js.map +1 -1
  197. package/dist-server/utils/get-user-domains.js +4 -5
  198. package/dist-server/utils/get-user-domains.js.map +1 -1
  199. package/helps/config/SECRET.ja.md +13 -0
  200. package/helps/config/SECRET.ko.md +13 -0
  201. package/helps/config/SECRET.md +3 -3
  202. package/helps/config/SECRET.ms.md +13 -0
  203. package/helps/config/SECRET.zh.md +13 -0
  204. package/helps/config/accessTokenCookieKey.ja.md +11 -0
  205. package/helps/config/accessTokenCookieKey.ko.md +11 -0
  206. package/helps/config/accessTokenCookieKey.md +1 -1
  207. package/helps/config/accessTokenCookieKey.ms.md +11 -0
  208. package/helps/config/accessTokenCookieKey.zh.md +11 -0
  209. package/helps/config/applianceJwtExpiresIn.ja.md +26 -0
  210. package/helps/config/applianceJwtExpiresIn.ko.md +26 -0
  211. package/helps/config/applianceJwtExpiresIn.md +18 -15
  212. package/helps/config/applianceJwtExpiresIn.ms.md +30 -0
  213. package/helps/config/applianceJwtExpiresIn.zh.md +26 -0
  214. package/helps/config/disableUserSignupProcess.ja.md +22 -0
  215. package/helps/config/disableUserSignupProcess.ko.md +22 -0
  216. package/helps/config/disableUserSignupProcess.md +3 -3
  217. package/helps/config/disableUserSignupProcess.ms.md +22 -0
  218. package/helps/config/disableUserSignupProcess.zh.md +22 -0
  219. package/helps/config/i18n.ja.md +44 -0
  220. package/helps/config/i18n.ko.md +44 -0
  221. package/helps/config/i18n.md +6 -6
  222. package/helps/config/i18n.ms.md +44 -0
  223. package/helps/config/i18n.zh.md +44 -0
  224. package/helps/config/password.ja.md +53 -0
  225. package/helps/config/password.ko.md +65 -0
  226. package/helps/config/password.md +8 -36
  227. package/helps/config/password.ms.md +65 -0
  228. package/helps/config/password.zh.md +65 -0
  229. package/helps/config/publicHomeRoute.ja.md +14 -0
  230. package/helps/config/publicHomeRoute.ko.md +14 -0
  231. package/helps/config/publicHomeRoute.md +3 -3
  232. package/helps/config/publicHomeRoute.ms.md +14 -0
  233. package/helps/config/publicHomeRoute.zh.md +14 -0
  234. package/helps/config/session.ja.md +45 -0
  235. package/helps/config/session.ko.md +49 -0
  236. package/helps/config/session.md +10 -10
  237. package/helps/config/session.ms.md +46 -0
  238. package/helps/config/session.zh.md +49 -0
  239. package/package.json +6 -6
  240. package/server/constants/error-code.ts +1 -0
  241. package/server/middlewares/webauthn-middleware.ts +6 -1
  242. package/server/service/app-binding/app-binding-query.ts +1 -1
  243. package/server/service/appliance/appliance-query.ts +5 -2
  244. package/server/service/application/application-query.ts +1 -1
  245. package/server/service/application/application.ts +2 -2
  246. package/server/service/auth-provider/auth-provider-query.ts +4 -1
  247. package/server/service/login-history/login-history-query.ts +4 -1
  248. package/server/service/partner/partner-query.ts +5 -2
  249. package/server/service/privilege/privilege-query.ts +14 -3
  250. package/server/service/role/role-query.ts +1 -1
  251. package/server/service/user/user-query.ts +1 -1
  252. package/translations/en.json +1 -0
  253. package/translations/ja.json +1 -0
  254. package/translations/ko.json +1 -0
  255. package/translations/ms.json +1 -0
  256. package/translations/zh.json +1 -0
@@ -1,9 +1,9 @@
1
1
  # publicHomeRoute
2
2
 
3
- 로그인되지 않은 사용자가 어플리케이션 URL에 처음 접근했을 때, 보여지게 페이지의 path를 지정한다.
3
+ specifies the path of the page to be displayed when a user who is not logged in first accesses the application URL.
4
4
 
5
- 보통 '/public/home' 패스로 라우팅되어 인트로 화면을 수 있다.
6
- 만약, 로그인 페이지로 바로 이동하고 싶다면, 설정을 '/auth/signin' 으로 설정하면 된다.
5
+ usually routed to the '/public/home' path to display the intro screen.
6
+ if you want to go directly to the login page, set this to '/auth/signin'.
7
7
 
8
8
  ## default
9
9
 
@@ -0,0 +1,14 @@
1
+ # publicHomeRoute
2
+
3
+ menentukan laluan halaman yang akan dipaparkan apabila pengguna yang belum log masuk mengakses URL aplikasi buat kali pertama.
4
+
5
+ biasanya akan dilalukan ke laluan '/public/home' untuk memaparkan skrin pengenalan.
6
+ jika ingin terus ke halaman log masuk, tetapkan ini ke '/auth/signin'.
7
+
8
+ ## default
9
+
10
+ ```
11
+ module.exports = {
12
+ publicHomeRoute: '/public/home',
13
+ }
14
+ ```
@@ -0,0 +1,14 @@
1
+ # publicHomeRoute
2
+
3
+ 指定未登录用户首次访问应用程序URL时显示的页面路径。
4
+
5
+ 通常会路由到 '/public/home' 路径,以显示介绍页面。
6
+ 如果希望直接跳转到登录页面,可以将此设置为 '/auth/signin'。
7
+
8
+ ## default
9
+
10
+ ```
11
+ module.exports = {
12
+ publicHomeRoute: '/public/home',
13
+ }
14
+ ```
@@ -0,0 +1,45 @@
1
+ # session
2
+
3
+ セッション有効期間に関する設定を行うことができます。
4
+
5
+ - expirySeconds: セッション有効時間(秒単位)
6
+
7
+ - この値は、ユーザーセッションが非アクティブの後に何秒で期限切れになるかを定義します。
8
+ - これを1800に設定すると、30分の非アクティブ後にセッションが期限切れになります。
9
+
10
+ - expiryPolicy: セッション有効期限ポリシー
11
+
12
+ - この設定は、セッションのタイムアウトをどのように管理するかを決定します。
13
+ - オプション:
14
+
15
+ - 'rolling' - セッションのタイムアウトはユーザーのアクティビティに基づいて延長されます。
16
+ 各新しいリクエストは、タイマーを指定されたタイムアウト期間にリセットします。
17
+ - 'fixed' - セッションのタイムアウトは固定されて
18
+
19
+ ## default
20
+
21
+ ```
22
+ module.exports = {
23
+ session: {
24
+ /*
25
+ Session Expiry Time in Seconds
26
+ This value defines the duration in seconds after which a user session will expire due to inactivity.
27
+ Setting this to 1800 means the session will expire after 30 minutes of inactivity.
28
+ */
29
+ expirySeconds: 60 * 60 * 24 * 7,
30
+ /*
31
+ Session Expiry Policy
32
+ This setting determines how the session timeout is managed.
33
+ Options:
34
+ 'rolling' - The session timeout is extended based on user activity.
35
+ Each new request resets the timer to the specified timeout duration.
36
+ 'fixed' - The session timeout is fixed and based on the initial login time.
37
+ The session will expire after the specified duration, regardless of user activity.
38
+
39
+ Example:
40
+ expiryPolicy: 'rolling' or 'fixed'
41
+ */
42
+ expiryPolicy: 'fixed'
43
+ },
44
+ }
45
+ ```
@@ -0,0 +1,49 @@
1
+ # session
2
+
3
+ 세션 유효기간과 관련한 설정을 할 수 있다.
4
+
5
+ - expirySeconds: Session Expiry Time in Seconds
6
+
7
+ - This value defines the duration in seconds after which a user session will expire due to inactivity.
8
+ - Setting this to 1800 means the session will expire after 30 minutes of inactivity.
9
+
10
+ - expiryPolicy: Session Expiry Policy
11
+
12
+ - This setting determines how the session timeout is managed.
13
+ - Options:
14
+
15
+ - 'rolling' - The session timeout is extended based on user activity.
16
+ Each new request resets the timer to the specified timeout duration.
17
+ - 'fixed' - The session timeout is fixed and based on the initial login time.
18
+ The session will expire after the specified duration, regardless of user activity.
19
+
20
+ Example:
21
+ expiryPolicy: 'rolling' or 'fixed'
22
+
23
+ ## default
24
+
25
+ ```
26
+ module.exports = {
27
+ session: {
28
+ /*
29
+ Session Expiry Time in Seconds
30
+ This value defines the duration in seconds after which a user session will expire due to inactivity.
31
+ Setting this to 1800 means the session will expire after 30 minutes of inactivity.
32
+ */
33
+ expirySeconds: 60 * 60 * 24 * 7,
34
+ /*
35
+ Session Expiry Policy
36
+ This setting determines how the session timeout is managed.
37
+ Options:
38
+ 'rolling' - The session timeout is extended based on user activity.
39
+ Each new request resets the timer to the specified timeout duration.
40
+ 'fixed' - The session timeout is fixed and based on the initial login time.
41
+ The session will expire after the specified duration, regardless of user activity.
42
+
43
+ Example:
44
+ expiryPolicy: 'rolling' or 'fixed'
45
+ */
46
+ expiryPolicy: 'fixed'
47
+ },
48
+ }
49
+ ```
@@ -1,23 +1,23 @@
1
1
  # session
2
2
 
3
- 세션 유효기간과 관련한 설정을 있다.
3
+ you can set the session expiration settings.
4
4
 
5
5
  - expirySeconds: Session Expiry Time in Seconds
6
6
 
7
- - This value defines the duration in seconds after which a user session will expire due to inactivity.
8
- - Setting this to 1800 means the session will expire after 30 minutes of inactivity.
7
+ - this value defines the duration in seconds after which a user session will expire due to inactivity.
8
+ - setting this to 1800 means the session will expire after 30 minutes of inactivity.
9
9
 
10
10
  - expiryPolicy: Session Expiry Policy
11
11
 
12
- - This setting determines how the session timeout is managed.
13
- - Options:
12
+ - this setting determines how the session timeout is managed.
13
+ - options:
14
14
 
15
- - 'rolling' - The session timeout is extended based on user activity.
16
- Each new request resets the timer to the specified timeout duration.
17
- - 'fixed' - The session timeout is fixed and based on the initial login time.
18
- The session will expire after the specified duration, regardless of user activity.
15
+ - 'rolling' - the session timeout is extended based on user activity.
16
+ each new request resets the timer to the specified timeout duration.
17
+ - 'fixed' - the session timeout is fixed and based on the initial login time.
18
+ the session will expire after the specified duration, regardless of user activity.
19
19
 
20
- Example:
20
+ example:
21
21
  expiryPolicy: 'rolling' or 'fixed'
22
22
 
23
23
  ## default
@@ -0,0 +1,46 @@
1
+ # session
2
+
3
+ boleh menetapkan tetapan berkaitan tempoh sah sesi.
4
+
5
+ - expirySeconds: Masa Tamat Sesi dalam Detik
6
+
7
+ - nilai ini menentukan tempoh dalam detik selepas mana sesi pengguna akan tamat akibat ketidakaktifan.
8
+ - menetapkan ini kepada 1800 bermaksud sesi akan tamat selepas 30 minit ketidakaktifan.
9
+
10
+ - expiryPolicy: Polisi Tamat Sesi
11
+
12
+ - tetapan ini menentukan bagaimana masa tamat sesi diuruskan.
13
+ - pilihan:
14
+
15
+ - 'rolling' - masa tamat sesi dilanjutkan berdasarkan aktiviti pengguna.
16
+ setiap permintaan baru menetapkan semula pemasa kepada tempoh tamat yang ditentukan.
17
+ - 'fixed' - masa tamat sesi adalah tetap dan berdasarkan masa log masuk awal.
18
+ sesi akan tamat selepas tempoh yang dit
19
+
20
+ ## default
21
+
22
+ ```
23
+ module.exports = {
24
+ session: {
25
+ /*
26
+ Session Expiry Time in Seconds
27
+ This value defines the duration in seconds after which a user session will expire due to inactivity.
28
+ Setting this to 1800 means the session will expire after 30 minutes of inactivity.
29
+ */
30
+ expirySeconds: 60 * 60 * 24 * 7,
31
+ /*
32
+ Session Expiry Policy
33
+ This setting determines how the session timeout is managed.
34
+ Options:
35
+ 'rolling' - The session timeout is extended based on user activity.
36
+ Each new request resets the timer to the specified timeout duration.
37
+ 'fixed' - The session timeout is fixed and based on the initial login time.
38
+ The session will expire after the specified duration, regardless of user activity.
39
+
40
+ Example:
41
+ expiryPolicy: 'rolling' or 'fixed'
42
+ */
43
+ expiryPolicy: 'fixed'
44
+ },
45
+ }
46
+ ```
@@ -0,0 +1,49 @@
1
+ # session
2
+
3
+ 可以设置与会话有效期相关的设置。
4
+
5
+ - expirySeconds: Session Expiry Time in Seconds
6
+
7
+ - 此值定义由于不活动,用户会话将在多少秒后过期。
8
+ - 将此值设置为1800意味着会话将在30分钟不活动后过期。
9
+
10
+ - expiryPolicy: Session Expiry Policy
11
+
12
+ - 此设置确定如何管理会话超时。
13
+ - 选项:
14
+
15
+ - 'rolling' - 会话超时基于用户活动延长。
16
+ 每个新请求将计时器重置为指定的超时持续时间。
17
+ - 'fixed' - 会话超时是固定的,基于初始登录时间。
18
+ 无论用户活动如何,会话将在指定的持续时间后过期。
19
+
20
+ 例子:
21
+ expiryPolicy: 'rolling' or 'fixed'
22
+
23
+ ## default
24
+
25
+ ```
26
+ module.exports = {
27
+ session: {
28
+ /*
29
+ Session Expiry Time in Seconds
30
+ This value defines the duration in seconds after which a user session will expire due to inactivity.
31
+ Setting this to 1800 means the session will expire after 30 minutes of inactivity.
32
+ */
33
+ expirySeconds: 60 * 60 * 24 * 7,
34
+ /*
35
+ Session Expiry Policy
36
+ This setting determines how the session timeout is managed.
37
+ Options:
38
+ 'rolling' - The session timeout is extended based on user activity.
39
+ Each new request resets the timer to the specified timeout duration.
40
+ 'fixed' - The session timeout is fixed and based on the initial login time.
41
+ The session will expire after the specified duration, regardless of user activity.
42
+
43
+ Example:
44
+ expiryPolicy: 'rolling' or 'fixed'
45
+ */
46
+ expiryPolicy: 'fixed'
47
+ },
48
+ }
49
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/auth-base",
3
- "version": "7.0.1-beta.8",
3
+ "version": "7.0.1-rc.0",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -30,10 +30,10 @@
30
30
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
31
31
  },
32
32
  "dependencies": {
33
- "@things-factory/email-base": "^7.0.1-beta.8",
34
- "@things-factory/env": "^7.0.1-beta.6",
35
- "@things-factory/shell": "^7.0.1-beta.8",
36
- "@things-factory/utils": "^7.0.1-beta.6",
33
+ "@things-factory/email-base": "^7.0.1-rc.0",
34
+ "@things-factory/env": "^7.0.1-rc.0",
35
+ "@things-factory/shell": "^7.0.1-rc.0",
36
+ "@things-factory/utils": "^7.0.1-rc.0",
37
37
  "@types/webappsec-credential-management": "^0.6.8",
38
38
  "jsonwebtoken": "^9.0.0",
39
39
  "koa-passport": "^6.0.0",
@@ -45,5 +45,5 @@
45
45
  "passport-local": "^1.0.0",
46
46
  "popsicle-cookie-jar": "^1.0.0"
47
47
  },
48
- "gitHead": "d2ca60f7fca6feb2b7cb86b4f825378573fcc335"
48
+ "gitHead": "45476b164b69aef2c211d9a5257897f42d8e2f5f"
49
49
  }
@@ -17,3 +17,4 @@ export const PASSWORD_USED_PAST = 'password used in the past'
17
17
  export const VERIFICATION_ERROR = 'user or verification token not found'
18
18
  export const USER_CREDENTIAL_NOT_FOUND = 'user credential not found'
19
19
  export const AUTH_ERROR = 'auth error'
20
+ export const FIDO2_CERT_UNSUPPORTED = 'fido2 certificate unsupported'
@@ -24,7 +24,12 @@ passport.use(
24
24
  return cb(null, false, { errorCode: AuthError.ERROR_CODES.USER_CREDENTIAL_NOT_FOUND })
25
25
  }
26
26
 
27
- return cb(null, user, credential.publicKey)
27
+ try {
28
+ return cb(null, user, credential.publicKey)
29
+ } catch (error) {
30
+ console.error(error)
31
+ return cb(null, false, { errorCode: AuthError.ERROR_CODES.FIDO2_CERT_UNSUPPORTED })
32
+ }
28
33
  },
29
34
  async function register(user, id, publicKey, cb) {
30
35
  const userObject = await getRepository(User).findOne({ where: { id: user.id.toString() } })
@@ -22,7 +22,7 @@ export class AppBindingQuery {
22
22
 
23
23
  /* TODO optimize query */
24
24
  @Query(returns => AppBindingList)
25
- async appBindings(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<UserList> {
25
+ async appBindings(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<UserList> {
26
26
  const { domain } = context.state
27
27
 
28
28
  // const convertedParams = convertListParams(params)
@@ -17,7 +17,10 @@ export class ApplianceQuery {
17
17
 
18
18
  @Directive('@privilege(category: "user", privilege: "query", domainOwnerGranted: true, superUserGranted: true)')
19
19
  @Query(returns => ApplianceList, { description: 'To fetch multiple appliance' })
20
- async appliances(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ApplianceList> {
20
+ async appliances(
21
+ @Args(type => ListParam) params: ListParam,
22
+ @Ctx() context: ResolverContext
23
+ ): Promise<ApplianceList> {
21
24
  const { domain } = context.state
22
25
 
23
26
  const queryBuilder = getQueryBuilderFromListParams({
@@ -35,7 +38,7 @@ export class ApplianceQuery {
35
38
 
36
39
  @Directive('@privilege(category: "user", privilege: "query", domainOwnerGranted: true, superUserGranted: true)')
37
40
  @Query(returns => ApplianceList, { description: 'To fetch multiple appliance' })
38
- async edges(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ApplianceList> {
41
+ async edges(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<ApplianceList> {
39
42
  const { domain } = context.state
40
43
 
41
44
  const queryBuilder = getQueryBuilderFromListParams({
@@ -24,7 +24,7 @@ export class ApplicationQuery {
24
24
 
25
25
  @Directive('@privilege(category: "user", privilege: "query", domainOwnerGranted: true, superUserGranted: true)')
26
26
  @Query(returns => ApplicationList, { description: 'To fetch multiple application' })
27
- async applications(@Args() params: ListParam, @Ctx() context: ResolverContext) {
27
+ async applications(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext) {
28
28
  const { domain } = context.state
29
29
 
30
30
  const queryBuilder = getQueryBuilderFromListParams({
@@ -131,14 +131,14 @@ export class Application {
131
131
  updatedAt?: Date
132
132
 
133
133
  @ManyToOne(type => User, { nullable: true })
134
- @Field({ nullable: true })
134
+ @Field(type => User, { nullable: true })
135
135
  creator?: User
136
136
 
137
137
  @RelationId((application: Application) => application.creator)
138
138
  creatorId?: string
139
139
 
140
140
  @ManyToOne(type => User, { nullable: true })
141
- @Field({ nullable: true })
141
+ @Field(type => User, { nullable: true })
142
142
  updater?: User
143
143
 
144
144
  @RelationId((application: Application) => application.updater)
@@ -25,7 +25,10 @@ export class AuthProviderQuery {
25
25
 
26
26
  @Directive('@privilege(category: "user", privilege: "query", domainOwnerGranted: true, superUserGranted: true)')
27
27
  @Query(returns => AuthProviderList, { description: 'To fetch multiple AuthProviders' })
28
- async authProviders(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<AuthProviderList> {
28
+ async authProviders(
29
+ @Args(type => ListParam) params: ListParam,
30
+ @Ctx() context: ResolverContext
31
+ ): Promise<AuthProviderList> {
29
32
  const { domain } = context.state
30
33
 
31
34
  const queryBuilder = getQueryBuilderFromListParams({
@@ -9,7 +9,10 @@ import { LoginHistoryList } from './login-history-type'
9
9
  @Resolver(LoginHistory)
10
10
  export class LoginHistoryQuery {
11
11
  @Query(returns => LoginHistoryList, { description: 'To fetch multiple LoginHistories' })
12
- async loginHistories(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<LoginHistoryList> {
12
+ async loginHistories(
13
+ @Args(type => ListParam) params: ListParam,
14
+ @Ctx() context: ResolverContext
15
+ ): Promise<LoginHistoryList> {
13
16
  const { domain } = context.state
14
17
 
15
18
  const queryBuilder = getQueryBuilderFromListParams({
@@ -12,7 +12,7 @@ import { PartnerList } from './partner-types'
12
12
  export class PartnerQuery {
13
13
  @Directive('@privilege(category: "partner", privilege: "query", domainOwnerGranted: true)')
14
14
  @Query(returns => PartnerList)
15
- async partners(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<PartnerList> {
15
+ async partners(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<PartnerList> {
16
16
  if (await checkUserBelongsDomain(context.state.domain, context.state.user)) {
17
17
  const { domain } = context.state
18
18
 
@@ -45,7 +45,10 @@ export class PartnerQuery {
45
45
 
46
46
  @Directive('@privilege(category: "partner", privilege: "query")')
47
47
  @Query(returns => DomainList)
48
- async searchCustomers(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<DomainList> {
48
+ async searchCustomers(
49
+ @Args(type => ListParam) params: ListParam,
50
+ @Ctx() context: ResolverContext
51
+ ): Promise<DomainList> {
49
52
  const { domain } = context.state
50
53
  const partners: Partner[] = await getRepository(Partner).find({
51
54
  where: { domain: { id: domain.id } },
@@ -10,7 +10,10 @@ import { PrivilegeList } from './privilege-types'
10
10
  export class PrivilegeQuery {
11
11
  @Directive('@privilege(category: "privilege", privilege: "query", domainOwnerGranted: true, superUserGranted: true)')
12
12
  @Query(returns => PrivilegeList, { description: 'To fetch multiple privileges' })
13
- async privileges(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<PrivilegeList> {
13
+ async privileges(
14
+ @Args(type => ListParam) params: ListParam,
15
+ @Ctx() context: ResolverContext
16
+ ): Promise<PrivilegeList> {
14
17
  const [items, total] = await getQueryBuilderFromListParams({
15
18
  params,
16
19
  repository: getRepository(Privilege),
@@ -29,13 +32,21 @@ export class PrivilegeQuery {
29
32
  }
30
33
 
31
34
  @Query(returns => Boolean, { description: 'To query whether I have the given permission' })
32
- async hasPrivilege(@Arg('privilege') privilege: string, @Arg('category') category: string, @Ctx() context: ResolverContext): Promise<Boolean> {
35
+ async hasPrivilege(
36
+ @Arg('privilege') privilege: string,
37
+ @Arg('category') category: string,
38
+ @Ctx() context: ResolverContext
39
+ ): Promise<Boolean> {
33
40
  const { domain, user } = context.state
34
41
  return await User.hasPrivilege(privilege, category, domain, user)
35
42
  }
36
43
 
37
44
  @Query(returns => [Domain], { description: 'To fetch domains with given privilege for user' })
38
- async domainsWithPrivilege(@Arg('privilege') privilege: string, @Arg('category') category: string, @Ctx() context: ResolverContext): Promise<Partial<Domain>[]> {
45
+ async domainsWithPrivilege(
46
+ @Arg('privilege') privilege: string,
47
+ @Arg('category') category: string,
48
+ @Ctx() context: ResolverContext
49
+ ): Promise<Partial<Domain>[]> {
39
50
  const { user } = context.state
40
51
  return await User.getDomainsWithPrivilege(privilege, category, user)
41
52
  }
@@ -24,7 +24,7 @@ export class RoleQuery {
24
24
 
25
25
  @Directive('@privilege(category: "user", privilege: "query", domainOwnerGranted: true, superUserGranted: true)')
26
26
  @Query(returns => RoleList, { description: 'To fetch multiple users' })
27
- async roles(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<RoleList> {
27
+ async roles(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<RoleList> {
28
28
  const { domain } = context.state
29
29
 
30
30
  const [items, total] = await getQueryBuilderFromListParams({
@@ -27,7 +27,7 @@ export class UserQuery {
27
27
 
28
28
  @Directive('@privilege(category: "user", privilege: "query", domainOwnerGranted: true, superUserGranted: true)')
29
29
  @Query(returns => UserList, { description: 'To fetch multiple users' })
30
- async users(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<UserList> {
30
+ async users(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<UserList> {
31
31
  const { domain } = context.state
32
32
 
33
33
  const qb = getQueryBuilderFromListParams({
@@ -4,6 +4,7 @@
4
4
  "error.domain mismatch": "certificate is not for this domain",
5
5
  "error.domain not allowed": "user not allowed domain `{subdomain}`",
6
6
  "error.failed to find x": "failed to find {x}",
7
+ "error.fido2 certificate unsupported": "FIDO2 certificate unsupported",
7
8
  "error.password should match the rule": "password should match following rule. ${rule}",
8
9
  "error.password used in the past": "password used in the past",
9
10
  "error.subdomain not found": "domain not found",
@@ -4,6 +4,7 @@
4
4
  "error.domain mismatch": "証明書のドメインと現在のドメインが一致しません.",
5
5
  "error.domain not allowed": "'{subdomain}' 領域はこのユーザに許可されていません.",
6
6
  "error.failed to find x": "{x}が見つかりません.",
7
+ "error.fido2 certificate unsupported": "fido2証明書はサポートされていません",
7
8
  "error.password should match the rule": "パスワードは次の規則を守らなければなりません. {rule}",
8
9
  "error.password used in the past": "過去に使用されたパスワードです.",
9
10
  "error.subdomain not found": "サブドメインが見つかりません.",
@@ -4,6 +4,7 @@
4
4
  "error.domain mismatch": "인증서의 도메인과 현재 도메인이 일치하지 않습니다.",
5
5
  "error.domain not allowed": "'{subdomain}' 영역은 이 사용자에게 허가되지 않았습니다.",
6
6
  "error.failed to find x": "{x}을(를) 찾을 수 없습니다.",
7
+ "error.fido2 certificate unsupported": "제공된 인증서가 올바르지 않거나 지원되지 않는 형식입니다. 다른 로그인 방법을 사용하세요.",
7
8
  "error.password should match the rule": "비밀번호는 다음 규칙을 지켜야 합니다. {rule}",
8
9
  "error.password used in the past": "과거에 사용된 비밀번호입니다.",
9
10
  "error.subdomain not found": "서브도메인을 찾을 수 없습니다.",
@@ -4,6 +4,7 @@
4
4
  "error.domain mismatch": "Sijil tidak sesuai untuk domain ini",
5
5
  "error.domain not allowed": "Pengguna tidak dibenarkan domain `{subdomain}`",
6
6
  "error.failed to find x": "Gagal mencari {x}",
7
+ "error.fido2 certificate unsupported": "sijil fido2 tidak disokong",
7
8
  "error.password should match the rule": "Kata laluan harus mematuhi peraturan berikut. ${rule}",
8
9
  "error.password used in the past": "Kata laluan telah digunakan dalam masa lampau",
9
10
  "error.subdomain not found": "Domain tidak ditemui",
@@ -4,6 +4,7 @@
4
4
  "error.domain mismatch": "证书不适用于该域!",
5
5
  "error.domain not allowed": "用户无权限使用`{subdomain}`域!",
6
6
  "error.failed to find x": "查询{x}失败!",
7
+ "error.fido2 certificate unsupported": "fido2证书不支持",
7
8
  "error.password should match the rule": "密码应符合以下规则。${rule}",
8
9
  "error.password used in the past": "使用过的密码!",
9
10
  "error.subdomain not found": "用户域查询失败!",