@things-factory/auth-base 9.0.0-beta.4 → 9.0.0-beta.47

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 (355) hide show
  1. package/config/config.development.js +46 -0
  2. package/config/config.production.js +45 -0
  3. package/dist-client/auth.js +0 -3
  4. package/dist-client/auth.js.map +1 -1
  5. package/dist-client/bootstrap.d.ts +1 -1
  6. package/dist-client/bootstrap.js +4 -4
  7. package/dist-client/bootstrap.js.map +1 -1
  8. package/dist-client/directive/privileged.d.ts +1 -1
  9. package/dist-client/directive/privileged.js +1 -1
  10. package/dist-client/directive/privileged.js.map +1 -1
  11. package/dist-client/index.d.ts +4 -4
  12. package/dist-client/index.js +4 -4
  13. package/dist-client/index.js.map +1 -1
  14. package/dist-client/profiled.js +1 -1
  15. package/dist-client/profiled.js.map +1 -1
  16. package/dist-client/reducers/auth.js +1 -1
  17. package/dist-client/reducers/auth.js.map +1 -1
  18. package/dist-client/tsconfig.tsbuildinfo +1 -1
  19. package/dist-server/controllers/auth.d.ts +5 -5
  20. package/dist-server/controllers/auth.js +5 -5
  21. package/dist-server/controllers/auth.js.map +1 -1
  22. package/dist-server/controllers/change-pwd.js +19 -19
  23. package/dist-server/controllers/change-pwd.js.map +1 -1
  24. package/dist-server/controllers/checkin.js +4 -4
  25. package/dist-server/controllers/checkin.js.map +1 -1
  26. package/dist-server/controllers/delete-user.js +9 -9
  27. package/dist-server/controllers/delete-user.js.map +1 -1
  28. package/dist-server/controllers/invitation.js +19 -19
  29. package/dist-server/controllers/invitation.js.map +1 -1
  30. package/dist-server/controllers/profile.d.ts +5 -5
  31. package/dist-server/controllers/profile.js +10 -10
  32. package/dist-server/controllers/profile.js.map +1 -1
  33. package/dist-server/controllers/reset-password.js +24 -24
  34. package/dist-server/controllers/reset-password.js.map +1 -1
  35. package/dist-server/controllers/signin.d.ts +1 -1
  36. package/dist-server/controllers/signin.js +24 -24
  37. package/dist-server/controllers/signin.js.map +1 -1
  38. package/dist-server/controllers/signup.d.ts +1 -1
  39. package/dist-server/controllers/signup.js +13 -13
  40. package/dist-server/controllers/signup.js.map +1 -1
  41. package/dist-server/controllers/unlock-user.js +17 -17
  42. package/dist-server/controllers/unlock-user.js.map +1 -1
  43. package/dist-server/controllers/utils/password-rule.js +4 -4
  44. package/dist-server/controllers/utils/password-rule.js.map +1 -1
  45. package/dist-server/controllers/utils/save-invitation-token.d.ts +1 -1
  46. package/dist-server/controllers/utils/save-invitation-token.js +2 -2
  47. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
  48. package/dist-server/controllers/utils/save-verification-token.d.ts +1 -1
  49. package/dist-server/controllers/utils/save-verification-token.js +3 -3
  50. package/dist-server/controllers/utils/save-verification-token.js.map +1 -1
  51. package/dist-server/controllers/verification.js +23 -23
  52. package/dist-server/controllers/verification.js.map +1 -1
  53. package/dist-server/errors/auth-error.js +1 -1
  54. package/dist-server/errors/auth-error.js.map +1 -1
  55. package/dist-server/errors/index.d.ts +2 -2
  56. package/dist-server/errors/index.js +2 -2
  57. package/dist-server/errors/index.js.map +1 -1
  58. package/dist-server/errors/user-domain-not-match-error.d.ts +1 -1
  59. package/dist-server/errors/user-domain-not-match-error.js +8 -8
  60. package/dist-server/errors/user-domain-not-match-error.js.map +1 -1
  61. package/dist-server/index.d.ts +16 -16
  62. package/dist-server/index.js +18 -18
  63. package/dist-server/index.js.map +1 -1
  64. package/dist-server/middlewares/authenticate-401-middleware.js +11 -11
  65. package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -1
  66. package/dist-server/middlewares/bypass-signin-middleware.d.ts +1 -0
  67. package/dist-server/middlewares/bypass-signin-middleware.js +20 -0
  68. package/dist-server/middlewares/bypass-signin-middleware.js.map +1 -0
  69. package/dist-server/middlewares/domain-authenticate-middleware.d.ts +1 -1
  70. package/dist-server/middlewares/domain-authenticate-middleware.js +9 -13
  71. package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
  72. package/dist-server/middlewares/graphql-authenticate-middleware.js +4 -4
  73. package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -1
  74. package/dist-server/middlewares/index.d.ts +5 -5
  75. package/dist-server/middlewares/index.js +24 -19
  76. package/dist-server/middlewares/index.js.map +1 -1
  77. package/dist-server/middlewares/jwt-authenticate-middleware.js +15 -15
  78. package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -1
  79. package/dist-server/middlewares/signin-middleware.js +2 -2
  80. package/dist-server/middlewares/signin-middleware.js.map +1 -1
  81. package/dist-server/middlewares/verify-recaptcha-middleware.d.ts +3 -0
  82. package/dist-server/middlewares/verify-recaptcha-middleware.js +95 -0
  83. package/dist-server/middlewares/verify-recaptcha-middleware.js.map +1 -0
  84. package/dist-server/middlewares/webauthn-middleware.js +7 -7
  85. package/dist-server/middlewares/webauthn-middleware.js.map +1 -1
  86. package/dist-server/migrations/1548206416130-SeedUser.js +6 -6
  87. package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -1
  88. package/dist-server/migrations/1566805283882-SeedPrivilege.js +2 -2
  89. package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -1
  90. package/dist-server/migrations/index.js.map +1 -1
  91. package/dist-server/router/auth-checkin-router.js +18 -17
  92. package/dist-server/router/auth-checkin-router.js.map +1 -1
  93. package/dist-server/router/auth-private-process-router.js +27 -19
  94. package/dist-server/router/auth-private-process-router.js.map +1 -1
  95. package/dist-server/router/auth-public-process-router.js +24 -24
  96. package/dist-server/router/auth-public-process-router.js.map +1 -1
  97. package/dist-server/router/auth-signin-router.js +6 -6
  98. package/dist-server/router/auth-signin-router.js.map +1 -1
  99. package/dist-server/router/auth-signup-router.js +11 -8
  100. package/dist-server/router/auth-signup-router.js.map +1 -1
  101. package/dist-server/router/index.d.ts +9 -9
  102. package/dist-server/router/index.js +9 -9
  103. package/dist-server/router/index.js.map +1 -1
  104. package/dist-server/router/oauth2/index.d.ts +2 -2
  105. package/dist-server/router/oauth2/index.js +2 -2
  106. package/dist-server/router/oauth2/index.js.map +1 -1
  107. package/dist-server/router/oauth2/oauth2-authorize-router.js +6 -6
  108. package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -1
  109. package/dist-server/router/oauth2/oauth2-router.d.ts +1 -1
  110. package/dist-server/router/oauth2/oauth2-router.js +21 -21
  111. package/dist-server/router/oauth2/oauth2-router.js.map +1 -1
  112. package/dist-server/router/oauth2/oauth2-server.js +21 -21
  113. package/dist-server/router/oauth2/oauth2-server.js.map +1 -1
  114. package/dist-server/router/site-root-router.js +4 -4
  115. package/dist-server/router/site-root-router.js.map +1 -1
  116. package/dist-server/router/webauthn-router.js +9 -9
  117. package/dist-server/router/webauthn-router.js.map +1 -1
  118. package/dist-server/routes.js +77 -51
  119. package/dist-server/routes.js.map +1 -1
  120. package/dist-server/service/app-binding/app-binding-mutation.js +4 -4
  121. package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -1
  122. package/dist-server/service/app-binding/app-binding-query.d.ts +4 -4
  123. package/dist-server/service/app-binding/app-binding-query.js +22 -22
  124. package/dist-server/service/app-binding/app-binding-query.js.map +1 -1
  125. package/dist-server/service/app-binding/app-binding-types.d.ts +1 -1
  126. package/dist-server/service/app-binding/app-binding-types.js +2 -2
  127. package/dist-server/service/app-binding/app-binding-types.js.map +1 -1
  128. package/dist-server/service/app-binding/app-binding.d.ts +2 -2
  129. package/dist-server/service/app-binding/app-binding.js +4 -4
  130. package/dist-server/service/app-binding/app-binding.js.map +1 -1
  131. package/dist-server/service/app-binding/index.d.ts +2 -2
  132. package/dist-server/service/app-binding/index.js +3 -3
  133. package/dist-server/service/app-binding/index.js.map +1 -1
  134. package/dist-server/service/appliance/appliance-mutation.d.ts +2 -2
  135. package/dist-server/service/appliance/appliance-mutation.js +21 -21
  136. package/dist-server/service/appliance/appliance-mutation.js.map +1 -1
  137. package/dist-server/service/appliance/appliance-query.d.ts +3 -3
  138. package/dist-server/service/appliance/appliance-query.js +17 -17
  139. package/dist-server/service/appliance/appliance-query.js.map +1 -1
  140. package/dist-server/service/appliance/appliance-types.d.ts +1 -1
  141. package/dist-server/service/appliance/appliance-types.js +2 -2
  142. package/dist-server/service/appliance/appliance-types.js.map +1 -1
  143. package/dist-server/service/appliance/appliance.d.ts +1 -1
  144. package/dist-server/service/appliance/appliance.js +8 -8
  145. package/dist-server/service/appliance/appliance.js.map +1 -1
  146. package/dist-server/service/appliance/index.d.ts +3 -3
  147. package/dist-server/service/appliance/index.js +5 -5
  148. package/dist-server/service/appliance/index.js.map +1 -1
  149. package/dist-server/service/application/application-mutation.d.ts +8 -8
  150. package/dist-server/service/application/application-mutation.js +20 -20
  151. package/dist-server/service/application/application-mutation.js.map +1 -1
  152. package/dist-server/service/application/application-query.d.ts +2 -2
  153. package/dist-server/service/application/application-query.js +16 -16
  154. package/dist-server/service/application/application-query.js.map +1 -1
  155. package/dist-server/service/application/application-types.d.ts +1 -1
  156. package/dist-server/service/application/application-types.js +4 -4
  157. package/dist-server/service/application/application-types.js.map +1 -1
  158. package/dist-server/service/application/application.d.ts +1 -1
  159. package/dist-server/service/application/application.js +12 -12
  160. package/dist-server/service/application/application.js.map +1 -1
  161. package/dist-server/service/application/index.d.ts +3 -3
  162. package/dist-server/service/application/index.js +5 -5
  163. package/dist-server/service/application/index.js.map +1 -1
  164. package/dist-server/service/auth-provider/auth-provider-mutation.d.ts +2 -2
  165. package/dist-server/service/auth-provider/auth-provider-mutation.js +20 -20
  166. package/dist-server/service/auth-provider/auth-provider-mutation.js.map +1 -1
  167. package/dist-server/service/auth-provider/auth-provider-query.d.ts +3 -3
  168. package/dist-server/service/auth-provider/auth-provider-query.js +20 -20
  169. package/dist-server/service/auth-provider/auth-provider-query.js.map +1 -1
  170. package/dist-server/service/auth-provider/auth-provider-type.d.ts +1 -1
  171. package/dist-server/service/auth-provider/auth-provider-type.js +2 -2
  172. package/dist-server/service/auth-provider/auth-provider-type.js.map +1 -1
  173. package/dist-server/service/auth-provider/auth-provider.d.ts +3 -3
  174. package/dist-server/service/auth-provider/auth-provider.js +12 -12
  175. package/dist-server/service/auth-provider/auth-provider.js.map +1 -1
  176. package/dist-server/service/auth-provider/index.d.ts +3 -3
  177. package/dist-server/service/auth-provider/index.js +5 -5
  178. package/dist-server/service/auth-provider/index.js.map +1 -1
  179. package/dist-server/service/domain-generator/domain-generator-mutation.d.ts +1 -1
  180. package/dist-server/service/domain-generator/domain-generator-mutation.js +11 -11
  181. package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -1
  182. package/dist-server/service/domain-generator/domain-generator-types.d.ts +1 -1
  183. package/dist-server/service/domain-generator/domain-generator-types.js +3 -3
  184. package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -1
  185. package/dist-server/service/domain-generator/index.d.ts +1 -1
  186. package/dist-server/service/domain-generator/index.js +2 -2
  187. package/dist-server/service/domain-generator/index.js.map +1 -1
  188. package/dist-server/service/domain-link/domain-link-mutation.d.ts +9 -0
  189. package/dist-server/service/domain-link/domain-link-mutation.js +116 -0
  190. package/dist-server/service/domain-link/domain-link-mutation.js.map +1 -0
  191. package/dist-server/service/domain-link/domain-link-query.d.ts +11 -0
  192. package/dist-server/service/domain-link/domain-link-query.js +75 -0
  193. package/dist-server/service/domain-link/domain-link-query.js.map +1 -0
  194. package/dist-server/service/domain-link/domain-link-types.d.ts +18 -0
  195. package/dist-server/service/domain-link/domain-link-types.js +66 -0
  196. package/dist-server/service/domain-link/domain-link-types.js.map +1 -0
  197. package/dist-server/service/domain-link/domain-link.d.ts +28 -0
  198. package/dist-server/service/domain-link/domain-link.js +105 -0
  199. package/dist-server/service/domain-link/domain-link.js.map +1 -0
  200. package/dist-server/service/domain-link/index.d.ts +6 -0
  201. package/dist-server/service/domain-link/index.js +10 -0
  202. package/dist-server/service/domain-link/index.js.map +1 -0
  203. package/dist-server/service/granted-role/granted-role-mutation.d.ts +3 -3
  204. package/dist-server/service/granted-role/granted-role-mutation.js +17 -17
  205. package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -1
  206. package/dist-server/service/granted-role/granted-role-query.d.ts +2 -2
  207. package/dist-server/service/granted-role/granted-role-query.js +13 -13
  208. package/dist-server/service/granted-role/granted-role-query.js.map +1 -1
  209. package/dist-server/service/granted-role/granted-role.d.ts +1 -1
  210. package/dist-server/service/granted-role/granted-role.js +3 -3
  211. package/dist-server/service/granted-role/granted-role.js.map +1 -1
  212. package/dist-server/service/granted-role/index.d.ts +3 -3
  213. package/dist-server/service/granted-role/index.js +5 -5
  214. package/dist-server/service/granted-role/index.js.map +1 -1
  215. package/dist-server/service/index.d.ts +27 -25
  216. package/dist-server/service/index.js +75 -70
  217. package/dist-server/service/index.js.map +1 -1
  218. package/dist-server/service/invitation/index.d.ts +3 -3
  219. package/dist-server/service/invitation/index.js +5 -5
  220. package/dist-server/service/invitation/index.js.map +1 -1
  221. package/dist-server/service/invitation/invitation-mutation.d.ts +2 -2
  222. package/dist-server/service/invitation/invitation-mutation.js +10 -10
  223. package/dist-server/service/invitation/invitation-mutation.js.map +1 -1
  224. package/dist-server/service/invitation/invitation-query.d.ts +1 -1
  225. package/dist-server/service/invitation/invitation-query.js +7 -7
  226. package/dist-server/service/invitation/invitation-query.js.map +1 -1
  227. package/dist-server/service/invitation/invitation-types.d.ts +1 -1
  228. package/dist-server/service/invitation/invitation-types.js +2 -2
  229. package/dist-server/service/invitation/invitation-types.js.map +1 -1
  230. package/dist-server/service/invitation/invitation.d.ts +1 -1
  231. package/dist-server/service/invitation/invitation.js +5 -5
  232. package/dist-server/service/invitation/invitation.js.map +1 -1
  233. package/dist-server/service/login-history/index.d.ts +2 -2
  234. package/dist-server/service/login-history/index.js +4 -4
  235. package/dist-server/service/login-history/index.js.map +1 -1
  236. package/dist-server/service/login-history/login-history-query.d.ts +3 -3
  237. package/dist-server/service/login-history/login-history-query.js +11 -11
  238. package/dist-server/service/login-history/login-history-query.js.map +1 -1
  239. package/dist-server/service/login-history/login-history-type.d.ts +1 -1
  240. package/dist-server/service/login-history/login-history-type.js +2 -2
  241. package/dist-server/service/login-history/login-history-type.js.map +1 -1
  242. package/dist-server/service/login-history/login-history.d.ts +1 -1
  243. package/dist-server/service/login-history/login-history.js +4 -4
  244. package/dist-server/service/login-history/login-history.js.map +1 -1
  245. package/dist-server/service/partner/index.d.ts +3 -3
  246. package/dist-server/service/partner/index.js +5 -5
  247. package/dist-server/service/partner/index.js.map +1 -1
  248. package/dist-server/service/partner/partner-mutation.js +8 -8
  249. package/dist-server/service/partner/partner-mutation.js.map +1 -1
  250. package/dist-server/service/partner/partner-query.d.ts +3 -3
  251. package/dist-server/service/partner/partner-query.js +17 -17
  252. package/dist-server/service/partner/partner-query.js.map +1 -1
  253. package/dist-server/service/partner/partner-types.d.ts +1 -1
  254. package/dist-server/service/partner/partner-types.js +2 -2
  255. package/dist-server/service/partner/partner-types.js.map +1 -1
  256. package/dist-server/service/partner/partner.d.ts +1 -1
  257. package/dist-server/service/partner/partner.js +5 -5
  258. package/dist-server/service/partner/partner.js.map +1 -1
  259. package/dist-server/service/password-history/index.d.ts +1 -1
  260. package/dist-server/service/password-history/index.js +2 -2
  261. package/dist-server/service/password-history/index.js.map +1 -1
  262. package/dist-server/service/privilege/index.d.ts +3 -3
  263. package/dist-server/service/privilege/index.js +5 -5
  264. package/dist-server/service/privilege/index.js.map +1 -1
  265. package/dist-server/service/privilege/privilege-directive.js +2 -2
  266. package/dist-server/service/privilege/privilege-directive.js.map +1 -1
  267. package/dist-server/service/privilege/privilege-mutation.d.ts +2 -2
  268. package/dist-server/service/privilege/privilege-mutation.js +15 -15
  269. package/dist-server/service/privilege/privilege-mutation.js.map +1 -1
  270. package/dist-server/service/privilege/privilege-query.d.ts +4 -4
  271. package/dist-server/service/privilege/privilege-query.js +20 -20
  272. package/dist-server/service/privilege/privilege-query.js.map +1 -1
  273. package/dist-server/service/privilege/privilege-types.d.ts +1 -1
  274. package/dist-server/service/privilege/privilege-types.js +2 -2
  275. package/dist-server/service/privilege/privilege-types.js.map +1 -1
  276. package/dist-server/service/privilege/privilege.d.ts +2 -2
  277. package/dist-server/service/privilege/privilege.js +10 -10
  278. package/dist-server/service/privilege/privilege.js.map +1 -1
  279. package/dist-server/service/role/index.d.ts +3 -3
  280. package/dist-server/service/role/index.js +5 -5
  281. package/dist-server/service/role/index.js.map +1 -1
  282. package/dist-server/service/role/role-mutation.d.ts +2 -2
  283. package/dist-server/service/role/role-mutation.js +19 -19
  284. package/dist-server/service/role/role-mutation.js.map +1 -1
  285. package/dist-server/service/role/role-query.d.ts +9 -5
  286. package/dist-server/service/role/role-query.js +38 -31
  287. package/dist-server/service/role/role-query.js.map +1 -1
  288. package/dist-server/service/role/role-types.d.ts +1 -1
  289. package/dist-server/service/role/role-types.js +2 -2
  290. package/dist-server/service/role/role-types.js.map +1 -1
  291. package/dist-server/service/role/role.d.ts +2 -2
  292. package/dist-server/service/role/role.js +12 -12
  293. package/dist-server/service/role/role.js.map +1 -1
  294. package/dist-server/service/user/domain-query.d.ts +1 -1
  295. package/dist-server/service/user/domain-query.js +3 -3
  296. package/dist-server/service/user/domain-query.js.map +1 -1
  297. package/dist-server/service/user/index.d.ts +4 -4
  298. package/dist-server/service/user/index.js +6 -6
  299. package/dist-server/service/user/index.js.map +1 -1
  300. package/dist-server/service/user/user-mutation.d.ts +3 -3
  301. package/dist-server/service/user/user-mutation.js +42 -42
  302. package/dist-server/service/user/user-mutation.js.map +1 -1
  303. package/dist-server/service/user/user-query.d.ts +3 -3
  304. package/dist-server/service/user/user-query.js +21 -21
  305. package/dist-server/service/user/user-query.js.map +1 -1
  306. package/dist-server/service/user/user-types.d.ts +1 -1
  307. package/dist-server/service/user/user-types.js +2 -2
  308. package/dist-server/service/user/user-types.js.map +1 -1
  309. package/dist-server/service/user/user.d.ts +3 -3
  310. package/dist-server/service/user/user.js +40 -40
  311. package/dist-server/service/user/user.js.map +1 -1
  312. package/dist-server/service/users-auth-providers/index.d.ts +1 -1
  313. package/dist-server/service/users-auth-providers/index.js +2 -2
  314. package/dist-server/service/users-auth-providers/index.js.map +1 -1
  315. package/dist-server/service/users-auth-providers/users-auth-providers.d.ts +2 -2
  316. package/dist-server/service/users-auth-providers/users-auth-providers.js +8 -8
  317. package/dist-server/service/users-auth-providers/users-auth-providers.js.map +1 -1
  318. package/dist-server/service/verification-token/index.d.ts +1 -1
  319. package/dist-server/service/verification-token/index.js +2 -2
  320. package/dist-server/service/verification-token/index.js.map +1 -1
  321. package/dist-server/service/web-auth-credential/index.d.ts +1 -1
  322. package/dist-server/service/web-auth-credential/index.js +2 -2
  323. package/dist-server/service/web-auth-credential/index.js.map +1 -1
  324. package/dist-server/service/web-auth-credential/web-auth-credential.d.ts +1 -1
  325. package/dist-server/service/web-auth-credential/web-auth-credential.js +10 -10
  326. package/dist-server/service/web-auth-credential/web-auth-credential.js.map +1 -1
  327. package/dist-server/tsconfig.tsbuildinfo +1 -1
  328. package/dist-server/types.d.ts +1 -1
  329. package/dist-server/types.js.map +1 -1
  330. package/dist-server/utils/access-token-cookie.js +2 -11
  331. package/dist-server/utils/access-token-cookie.js.map +1 -1
  332. package/dist-server/utils/check-permission.d.ts +2 -2
  333. package/dist-server/utils/check-permission.js +3 -3
  334. package/dist-server/utils/check-permission.js.map +1 -1
  335. package/dist-server/utils/check-user-belongs-domain.d.ts +1 -1
  336. package/dist-server/utils/check-user-belongs-domain.js +2 -2
  337. package/dist-server/utils/check-user-belongs-domain.js.map +1 -1
  338. package/dist-server/utils/check-user-has-role.d.ts +1 -1
  339. package/dist-server/utils/check-user-has-role.js +2 -2
  340. package/dist-server/utils/check-user-has-role.js.map +1 -1
  341. package/dist-server/utils/get-domain-users.d.ts +1 -1
  342. package/dist-server/utils/get-domain-users.js +2 -2
  343. package/dist-server/utils/get-domain-users.js.map +1 -1
  344. package/dist-server/utils/get-user-domains.d.ts +2 -3
  345. package/dist-server/utils/get-user-domains.js +30 -26
  346. package/dist-server/utils/get-user-domains.js.map +1 -1
  347. package/helps/config/recaptcha.ja.md +49 -0
  348. package/helps/config/recaptcha.ko.md +49 -0
  349. package/helps/config/recaptcha.md +49 -0
  350. package/helps/config/recaptcha.ms.md +49 -0
  351. package/helps/config/recaptcha.zh.md +49 -0
  352. package/package.json +7 -6
  353. package/dist-server/utils/get-domain-from-hostname.d.ts +0 -1
  354. package/dist-server/utils/get-domain-from-hostname.js +0 -9
  355. package/dist-server/utils/get-domain-from-hostname.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./auth-error"), exports);
5
- tslib_1.__exportStar(require("./user-domain-not-match-error"), exports);
4
+ tslib_1.__exportStar(require("./auth-error.js"), exports);
5
+ tslib_1.__exportStar(require("./user-domain-not-match-error.js"), exports);
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/errors/index.ts"],"names":[],"mappings":";;;AAAA,uDAA4B;AAC5B,wEAA6C","sourcesContent":["export * from './auth-error'\nexport * from './user-domain-not-match-error'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/errors/index.ts"],"names":[],"mappings":";;;AAAA,0DAA+B;AAC/B,2EAAgD","sourcesContent":["export * from './auth-error.js'\nexport * from './user-domain-not-match-error.js'\n"]}
@@ -1,4 +1,4 @@
1
- import { AuthError } from './auth-error';
1
+ import { AuthError } from './auth-error.js';
2
2
  export declare class DomainError extends AuthError {
3
3
  static get ERROR_CODES(): any;
4
4
  domains: any;
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DomainError = void 0;
4
- const error_code_1 = require("../constants/error-code");
5
- const auth_error_1 = require("./auth-error");
6
- class DomainError extends auth_error_1.AuthError {
4
+ const error_code_js_1 = require("../constants/error-code.js");
5
+ const auth_error_js_1 = require("./auth-error.js");
6
+ class DomainError extends auth_error_js_1.AuthError {
7
7
  static get ERROR_CODES() {
8
8
  return {
9
- UNAVAILABLE_DOMAIN: error_code_1.UNAVAILABLE_DOMAIN,
10
- NO_AVAILABLE_DOMAIN: error_code_1.NO_AVAILABLE_DOMAIN,
11
- NO_SELECTED_DOMAIN: error_code_1.NO_SELECTED_DOMAIN,
12
- REDIRECT_TO_DEFAULT_DOMAIN: error_code_1.REDIRECT_TO_DEFAULT_DOMAIN
9
+ UNAVAILABLE_DOMAIN: error_code_js_1.UNAVAILABLE_DOMAIN,
10
+ NO_AVAILABLE_DOMAIN: error_code_js_1.NO_AVAILABLE_DOMAIN,
11
+ NO_SELECTED_DOMAIN: error_code_js_1.NO_SELECTED_DOMAIN,
12
+ REDIRECT_TO_DEFAULT_DOMAIN: error_code_js_1.REDIRECT_TO_DEFAULT_DOMAIN
13
13
  };
14
14
  }
15
- constructor({ errorCode = error_code_1.UNAVAILABLE_DOMAIN, domains }) {
15
+ constructor({ errorCode = error_code_js_1.UNAVAILABLE_DOMAIN, domains }) {
16
16
  super({
17
17
  errorCode
18
18
  });
@@ -1 +1 @@
1
- {"version":3,"file":"user-domain-not-match-error.js","sourceRoot":"","sources":["../../server/errors/user-domain-not-match-error.ts"],"names":[],"mappings":";;;AAAA,wDAKgC;AAChC,6CAAwC;AAExC,MAAa,WAAY,SAAQ,sBAAS;IACxC,MAAM,KAAK,WAAW;QACpB,OAAO;YACL,kBAAkB,EAAlB,+BAAkB;YAClB,mBAAmB,EAAnB,gCAAmB;YACnB,kBAAkB,EAAlB,+BAAkB;YAClB,0BAA0B,EAA1B,uCAA0B;SAC3B,CAAA;IACH,CAAC;IAID,YAAY,EAAE,SAAS,GAAG,+BAAkB,EAAE,OAAO,EAAE;QACrD,KAAK,CAAC;YACJ,SAAS;SACV,CAAC,CAAA;QAEF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CACF;AApBD,kCAoBC","sourcesContent":["import {\n NO_AVAILABLE_DOMAIN,\n NO_SELECTED_DOMAIN,\n REDIRECT_TO_DEFAULT_DOMAIN,\n UNAVAILABLE_DOMAIN\n} from '../constants/error-code'\nimport { AuthError } from './auth-error'\n\nexport class DomainError extends AuthError {\n static get ERROR_CODES(): any {\n return {\n UNAVAILABLE_DOMAIN,\n NO_AVAILABLE_DOMAIN,\n NO_SELECTED_DOMAIN,\n REDIRECT_TO_DEFAULT_DOMAIN\n }\n }\n\n domains: any\n\n constructor({ errorCode = UNAVAILABLE_DOMAIN, domains }) {\n super({\n errorCode\n })\n\n this.name = 'user-domain-not-match'\n this.domains = domains\n }\n}\n"]}
1
+ {"version":3,"file":"user-domain-not-match-error.js","sourceRoot":"","sources":["../../server/errors/user-domain-not-match-error.ts"],"names":[],"mappings":";;;AAAA,8DAKmC;AACnC,mDAA2C;AAE3C,MAAa,WAAY,SAAQ,yBAAS;IACxC,MAAM,KAAK,WAAW;QACpB,OAAO;YACL,kBAAkB,EAAlB,kCAAkB;YAClB,mBAAmB,EAAnB,mCAAmB;YACnB,kBAAkB,EAAlB,kCAAkB;YAClB,0BAA0B,EAA1B,0CAA0B;SAC3B,CAAA;IACH,CAAC;IAID,YAAY,EAAE,SAAS,GAAG,kCAAkB,EAAE,OAAO,EAAE;QACrD,KAAK,CAAC;YACJ,SAAS;SACV,CAAC,CAAA;QAEF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CACF;AApBD,kCAoBC","sourcesContent":["import {\n NO_AVAILABLE_DOMAIN,\n NO_SELECTED_DOMAIN,\n REDIRECT_TO_DEFAULT_DOMAIN,\n UNAVAILABLE_DOMAIN\n} from '../constants/error-code.js'\nimport { AuthError } from './auth-error.js'\n\nexport class DomainError extends AuthError {\n static get ERROR_CODES(): any {\n return {\n UNAVAILABLE_DOMAIN,\n NO_AVAILABLE_DOMAIN,\n NO_SELECTED_DOMAIN,\n REDIRECT_TO_DEFAULT_DOMAIN\n }\n }\n\n domains: any\n\n constructor({ errorCode = UNAVAILABLE_DOMAIN, domains }) {\n super({\n errorCode\n })\n\n this.name = 'user-domain-not-match'\n this.domains = domains\n }\n}\n"]}
@@ -1,16 +1,16 @@
1
- import './routes';
2
- export * from './service';
3
- export * from './migrations';
4
- export * from './middlewares';
5
- export * from './routes';
6
- export * from './router';
7
- export * from './utils/get-domain-users';
8
- export * from './utils/get-user-domains';
9
- export * from './utils/get-secret';
10
- export * from './utils/check-user-belongs-domain';
11
- export * from './utils/access-token-cookie';
12
- export * from './utils/encrypt-state';
13
- export * from './utils/check-permission';
14
- export * from './utils/check-user-has-role';
15
- export * from './errors';
16
- export * from './types';
1
+ import './routes.js';
2
+ export * from './service/index.js';
3
+ export * from './migrations/index.js';
4
+ export * from './middlewares/index.js';
5
+ export * from './router/index.js';
6
+ export * from './routes.js';
7
+ export * from './utils/get-domain-users.js';
8
+ export * from './utils/get-user-domains.js';
9
+ export * from './utils/get-secret.js';
10
+ export * from './utils/check-user-belongs-domain.js';
11
+ export * from './utils/access-token-cookie.js';
12
+ export * from './utils/encrypt-state.js';
13
+ export * from './utils/check-permission.js';
14
+ export * from './utils/check-user-has-role.js';
15
+ export * from './errors/index.js';
16
+ export * from './types.js';
@@ -2,26 +2,26 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const shell_1 = require("@things-factory/shell");
5
- const privilege_1 = require("./service/privilege/privilege");
6
- require("./routes");
7
- tslib_1.__exportStar(require("./service"), exports);
8
- tslib_1.__exportStar(require("./migrations"), exports);
9
- tslib_1.__exportStar(require("./middlewares"), exports);
10
- tslib_1.__exportStar(require("./routes"), exports);
11
- tslib_1.__exportStar(require("./router"), exports);
12
- tslib_1.__exportStar(require("./utils/get-domain-users"), exports);
13
- tslib_1.__exportStar(require("./utils/get-user-domains"), exports);
14
- tslib_1.__exportStar(require("./utils/get-secret"), exports);
15
- tslib_1.__exportStar(require("./utils/check-user-belongs-domain"), exports);
16
- tslib_1.__exportStar(require("./utils/access-token-cookie"), exports);
17
- tslib_1.__exportStar(require("./utils/encrypt-state"), exports);
18
- tslib_1.__exportStar(require("./utils/check-permission"), exports);
19
- tslib_1.__exportStar(require("./utils/check-user-has-role"), exports);
20
- tslib_1.__exportStar(require("./errors"), exports);
21
- tslib_1.__exportStar(require("./types"), exports);
5
+ const privilege_js_1 = require("./service/privilege/privilege.js");
6
+ require("./routes.js");
7
+ tslib_1.__exportStar(require("./service/index.js"), exports);
8
+ tslib_1.__exportStar(require("./migrations/index.js"), exports);
9
+ tslib_1.__exportStar(require("./middlewares/index.js"), exports);
10
+ tslib_1.__exportStar(require("./router/index.js"), exports);
11
+ tslib_1.__exportStar(require("./routes.js"), exports);
12
+ tslib_1.__exportStar(require("./utils/get-domain-users.js"), exports);
13
+ tslib_1.__exportStar(require("./utils/get-user-domains.js"), exports);
14
+ tslib_1.__exportStar(require("./utils/get-secret.js"), exports);
15
+ tslib_1.__exportStar(require("./utils/check-user-belongs-domain.js"), exports);
16
+ tslib_1.__exportStar(require("./utils/access-token-cookie.js"), exports);
17
+ tslib_1.__exportStar(require("./utils/encrypt-state.js"), exports);
18
+ tslib_1.__exportStar(require("./utils/check-permission.js"), exports);
19
+ tslib_1.__exportStar(require("./utils/check-user-has-role.js"), exports);
20
+ tslib_1.__exportStar(require("./errors/index.js"), exports);
21
+ tslib_1.__exportStar(require("./types.js"), exports);
22
22
  process.on('bootstrap-module-start', async ({ app, config, client }) => {
23
23
  const privileges = process['PRIVILEGES'];
24
- const privilegeRepository = (0, shell_1.getRepository)(privilege_1.Privilege);
24
+ const privilegeRepository = (0, shell_1.getRepository)(privilege_js_1.Privilege);
25
25
  for (const [category, name] of Object.values(privileges)) {
26
26
  if (0 == (await privilegeRepository.count({ where: { category, name } }))) {
27
27
  await privilegeRepository.save({ category, name });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AACrD,6DAAyD;AAEzD,oBAAiB;AAEjB,oDAAyB;AACzB,uDAA4B;AAE5B,wDAA6B;AAC7B,mDAAwB;AACxB,mDAAwB;AAExB,mEAAwC;AACxC,mEAAwC;AACxC,6DAAkC;AAClC,4EAAiD;AACjD,sEAA2C;AAC3C,gEAAqC;AACrC,mEAAwC;AACxC,sEAA2C;AAE3C,mDAAwB;AAExB,kDAAuB;AAEvB,OAAO,CAAC,EAAE,CAAC,wBAA+B,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAO,EAAE,EAAE;IACjF,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACxC,MAAM,mBAAmB,GAAG,IAAA,qBAAa,EAAC,qBAAS,CAAC,CAAA;IAEpD,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,UAA8B,CAAC,EAAE,CAAC;QAC7E,IAAI,CAAC,IAAI,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;YAC1E,MAAM,mBAAmB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAA;AAC1F,CAAC,CAAC,CAAA","sourcesContent":["import { getRepository } from '@things-factory/shell'\nimport { Privilege } from './service/privilege/privilege'\n\nimport './routes'\n\nexport * from './service'\nexport * from './migrations'\n\nexport * from './middlewares'\nexport * from './routes'\nexport * from './router'\n\nexport * from './utils/get-domain-users'\nexport * from './utils/get-user-domains'\nexport * from './utils/get-secret'\nexport * from './utils/check-user-belongs-domain'\nexport * from './utils/access-token-cookie'\nexport * from './utils/encrypt-state'\nexport * from './utils/check-permission'\nexport * from './utils/check-user-has-role'\n\nexport * from './errors'\n\nexport * from './types'\n\nprocess.on('bootstrap-module-start' as any, async ({ app, config, client }: any) => {\n const privileges = process['PRIVILEGES']\n const privilegeRepository = getRepository(Privilege)\n\n for (const [category, name] of Object.values(privileges as [string, string])) {\n if (0 == (await privilegeRepository.count({ where: { category, name } }))) {\n await privilegeRepository.save({ category, name })\n }\n }\n\n console.log('[auth-base:bootstrap] Synchronization for privilege master has just done.')\n})\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AACrD,mEAA4D;AAE5D,uBAAoB;AAEpB,6DAAkC;AAClC,gEAAqC;AAErC,iEAAsC;AACtC,4DAAiC;AACjC,sDAA2B;AAE3B,sEAA2C;AAC3C,sEAA2C;AAC3C,gEAAqC;AACrC,+EAAoD;AACpD,yEAA8C;AAC9C,mEAAwC;AACxC,sEAA2C;AAC3C,yEAA8C;AAE9C,4DAAiC;AAEjC,qDAA0B;AAE1B,OAAO,CAAC,EAAE,CAAC,wBAA+B,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAO,EAAE,EAAE;IACjF,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACxC,MAAM,mBAAmB,GAAG,IAAA,qBAAa,EAAC,wBAAS,CAAC,CAAA;IAEpD,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,UAA8B,CAAC,EAAE,CAAC;QAC7E,IAAI,CAAC,IAAI,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;YAC1E,MAAM,mBAAmB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAA;AAC1F,CAAC,CAAC,CAAA","sourcesContent":["import { getRepository } from '@things-factory/shell'\nimport { Privilege } from './service/privilege/privilege.js'\n\nimport './routes.js'\n\nexport * from './service/index.js'\nexport * from './migrations/index.js'\n\nexport * from './middlewares/index.js'\nexport * from './router/index.js'\nexport * from './routes.js'\n\nexport * from './utils/get-domain-users.js'\nexport * from './utils/get-user-domains.js'\nexport * from './utils/get-secret.js'\nexport * from './utils/check-user-belongs-domain.js'\nexport * from './utils/access-token-cookie.js'\nexport * from './utils/encrypt-state.js'\nexport * from './utils/check-permission.js'\nexport * from './utils/check-user-has-role.js'\n\nexport * from './errors/index.js'\n\nexport * from './types.js'\n\nprocess.on('bootstrap-module-start' as any, async ({ app, config, client }: any) => {\n const privileges = process['PRIVILEGES']\n const privilegeRepository = getRepository(Privilege)\n\n for (const [category, name] of Object.values(privileges as [string, string])) {\n if (0 == (await privilegeRepository.count({ where: { category, name } }))) {\n await privilegeRepository.save({ category, name })\n }\n }\n\n console.log('[auth-base:bootstrap] Synchronization for privilege master has just done.')\n})\n"]}
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.authenticate401Middleware = authenticate401Middleware;
4
4
  const env_1 = require("@things-factory/env");
5
- const error_code_1 = require("../constants/error-code");
6
- const auth_error_1 = require("../errors/auth-error");
7
- const accepts_1 = require("../utils/accepts");
5
+ const error_code_js_1 = require("../constants/error-code.js");
6
+ const auth_error_js_1 = require("../errors/auth-error.js");
7
+ const accepts_js_1 = require("../utils/accepts.js");
8
8
  const disableUserSignupProcess = env_1.config.get('disableUserSignupProcess', false);
9
9
  const disableUserFavoredLanguage = env_1.config.get('i18n/disableUserFavoredLanguage', false);
10
10
  const languages = env_1.config.get('i18n/languages', false);
@@ -14,7 +14,7 @@ async function authenticate401Middleware(context, next) {
14
14
  }
15
15
  catch (err) {
16
16
  var message;
17
- if (err instanceof auth_error_1.AuthError) {
17
+ if (err instanceof auth_error_js_1.AuthError) {
18
18
  message = (context.t && context.t(`error.${err.errorCode}`, err.detail || {})) || err.errorCode;
19
19
  }
20
20
  else {
@@ -32,21 +32,21 @@ async function authenticate401Middleware(context, next) {
32
32
  */
33
33
  const { method, header, path, originalUrl } = context;
34
34
  if (method == 'POST' && path.startsWith('/graphql')) {
35
- if (err.errorCode == error_code_1.SUBDOMAIN_NOTFOUND) {
35
+ if (err.errorCode == error_code_js_1.SUBDOMAIN_NOTFOUND) {
36
36
  context.status = 403;
37
37
  }
38
38
  return;
39
39
  }
40
- if (!(0, accepts_1.accepts)(header.accept, ['text/html', '*/*'])) {
40
+ if (!(0, accepts_js_1.accepts)(header.accept, ['text/html', '*/*'])) {
41
41
  return;
42
42
  }
43
43
  const { redirect_to } = context.query;
44
44
  const { redirectTo = redirect_to || originalUrl } = context.request.body || {};
45
45
  switch (err.errorCode) {
46
- case error_code_1.SUBDOMAIN_NOTFOUND:
46
+ case error_code_js_1.SUBDOMAIN_NOTFOUND:
47
47
  context.redirect(`/auth/checkin?redirect_to=${encodeURIComponent(redirectTo)}`);
48
48
  break;
49
- case error_code_1.USER_LOCKED:
49
+ case error_code_js_1.USER_LOCKED:
50
50
  return await context.render('auth-page', {
51
51
  pageElement: 'auth-activate',
52
52
  elementScript: '/auth/activate.js',
@@ -56,7 +56,7 @@ async function authenticate401Middleware(context, next) {
56
56
  disableUserFavoredLanguage,
57
57
  languages })
58
58
  });
59
- case error_code_1.USER_NOT_ACTIVATED:
59
+ case error_code_js_1.USER_NOT_ACTIVATED:
60
60
  return await context.render('auth-page', {
61
61
  pageElement: 'auth-activate',
62
62
  elementScript: '/auth/activate.js',
@@ -66,7 +66,7 @@ async function authenticate401Middleware(context, next) {
66
66
  disableUserFavoredLanguage,
67
67
  languages })
68
68
  });
69
- case error_code_1.USER_DUPLICATED:
69
+ case error_code_js_1.USER_DUPLICATED:
70
70
  return await context.render('auth-page', {
71
71
  pageElement: 'auth-signup',
72
72
  elementScript: '/auth/signup.js',
@@ -80,7 +80,7 @@ async function authenticate401Middleware(context, next) {
80
80
  return await context.render('auth-page', {
81
81
  pageElement: 'auth-signin',
82
82
  elementScript: '/auth/signin.js',
83
- data: Object.assign(Object.assign({}, err.detail), { message: err instanceof auth_error_1.AuthError ? message : '', redirectTo,
83
+ data: Object.assign(Object.assign({}, err.detail), { message: err instanceof auth_error_js_1.AuthError ? message : '', redirectTo,
84
84
  disableUserSignupProcess,
85
85
  disableUserFavoredLanguage,
86
86
  languages })
@@ -1 +1 @@
1
- {"version":3,"file":"authenticate-401-middleware.js","sourceRoot":"","sources":["../../server/middlewares/authenticate-401-middleware.ts"],"names":[],"mappings":";;AAUA,8DAuGC;AAjHD,6CAA4C;AAE5C,wDAA8G;AAC9G,qDAAgD;AAChD,8CAA0C;AAE1C,MAAM,wBAAwB,GAAG,YAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;AAC9E,MAAM,0BAA0B,GAAG,YAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAA;AACvF,MAAM,SAAS,GAAG,YAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;AAE9C,KAAK,UAAU,yBAAyB,CAAC,OAAO,EAAE,IAAI;IAC3D,IAAI,CAAC;QACH,MAAM,IAAI,EAAE,CAAA;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,OAAO,CAAA;QAEX,IAAI,GAAG,YAAY,sBAAS,EAAE,CAAC;YAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAA;QACjG,CAAC;aAAM,CAAC;YACN,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,MAAK,GAAG,EAAE,CAAC;gBACxB,MAAM,GAAG,CAAA;YACX,CAAC;YAED,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;QACvB,CAAC;QAED,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;QACpB,OAAO,CAAC,IAAI,GAAG,OAAO,CAAA;QAEtB;;;;WAIG;QAEH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;QAErD,IAAI,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACpD,IAAI,GAAG,CAAC,SAAS,IAAI,+BAAkB,EAAE,CAAC;gBACxC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;YACtB,CAAC;YACD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,IAAA,iBAAO,EAAC,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YAClD,OAAM;QACR,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACrC,MAAM,EAAE,UAAU,GAAG,WAAW,IAAI,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;QAE9E,QAAQ,GAAG,CAAC,SAAS,EAAE,CAAC;YACtB,KAAK,+BAAkB;gBACrB,OAAO,CAAC,QAAQ,CAAC,6BAA6B,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;gBAC/E,MAAK;YAEP,KAAK,wBAAW;gBACd,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;oBACvC,WAAW,EAAE,eAAe;oBAC5B,aAAa,EAAE,mBAAmB;oBAClC,IAAI,kCACC,GAAG,CAAC,MAAM,KACb,OAAO;wBACP,UAAU;wBACV,wBAAwB;wBACxB,0BAA0B;wBAC1B,SAAS,GACV;iBACF,CAAC,CAAA;YAEJ,KAAK,+BAAkB;gBACrB,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;oBACvC,WAAW,EAAE,eAAe;oBAC5B,aAAa,EAAE,mBAAmB;oBAClC,IAAI,kCACC,GAAG,CAAC,MAAM,KACb,OAAO;wBACP,UAAU;wBACV,wBAAwB;wBACxB,0BAA0B;wBAC1B,SAAS,GACV;iBACF,CAAC,CAAA;YAEJ,KAAK,4BAAe;gBAClB,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;oBACvC,WAAW,EAAE,aAAa;oBAC1B,aAAa,EAAE,iBAAiB;oBAChC,IAAI,kCACC,GAAG,CAAC,MAAM,KACb,OAAO;wBACP,UAAU;wBACV,wBAAwB;wBACxB,0BAA0B;wBAC1B,SAAS,GACV;iBACF,CAAC,CAAA;YAEJ;gBACE,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;oBACvC,WAAW,EAAE,aAAa;oBAC1B,aAAa,EAAE,iBAAiB;oBAChC,IAAI,kCACC,GAAG,CAAC,MAAM,KACb,OAAO,EAAE,GAAG,YAAY,sBAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAChD,UAAU;wBACV,wBAAwB;wBACxB,0BAA0B;wBAC1B,SAAS,GACV;iBACF,CAAC,CAAA;QACN,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import { config } from '@things-factory/env'\n\nimport { SUBDOMAIN_NOTFOUND, USER_DUPLICATED, USER_LOCKED, USER_NOT_ACTIVATED } from '../constants/error-code'\nimport { AuthError } from '../errors/auth-error'\nimport { accepts } from '../utils/accepts'\n\nconst disableUserSignupProcess = config.get('disableUserSignupProcess', false)\nconst disableUserFavoredLanguage = config.get('i18n/disableUserFavoredLanguage', false)\nconst languages = config.get('i18n/languages', false)\n\nexport async function authenticate401Middleware(context, next) {\n try {\n await next()\n } catch (err) {\n var message\n\n if (err instanceof AuthError) {\n message = (context.t && context.t(`error.${err.errorCode}`, err.detail || {})) || err.errorCode\n } else {\n if (err?.status !== 401) {\n throw err\n }\n\n message = err.message\n }\n\n context.status = 401\n context.body = message\n\n /*\n * 클라이언트 라우팅을 위한 ApiHistoryFallback의 상황과,\n * 서버라우팅의 상황에서 발생하는 던져지는 401 에러인 경우에는\n * error code에 맞춰서 적절하게 rewriting 되도록 한다.\n */\n\n const { method, header, path, originalUrl } = context\n\n if (method == 'POST' && path.startsWith('/graphql')) {\n if (err.errorCode == SUBDOMAIN_NOTFOUND) {\n context.status = 403\n }\n return\n }\n\n if (!accepts(header.accept, ['text/html', '*/*'])) {\n return\n }\n\n const { redirect_to } = context.query\n const { redirectTo = redirect_to || originalUrl } = context.request.body || {}\n\n switch (err.errorCode) {\n case SUBDOMAIN_NOTFOUND:\n context.redirect(`/auth/checkin?redirect_to=${encodeURIComponent(redirectTo)}`)\n break\n\n case USER_LOCKED:\n return await context.render('auth-page', {\n pageElement: 'auth-activate',\n elementScript: '/auth/activate.js',\n data: {\n ...err.detail,\n message,\n redirectTo,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n\n case USER_NOT_ACTIVATED:\n return await context.render('auth-page', {\n pageElement: 'auth-activate',\n elementScript: '/auth/activate.js',\n data: {\n ...err.detail,\n message,\n redirectTo,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n\n case USER_DUPLICATED:\n return await context.render('auth-page', {\n pageElement: 'auth-signup',\n elementScript: '/auth/signup.js',\n data: {\n ...err.detail,\n message,\n redirectTo,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n\n default:\n return await context.render('auth-page', {\n pageElement: 'auth-signin',\n elementScript: '/auth/signin.js',\n data: {\n ...err.detail,\n message: err instanceof AuthError ? message : '',\n redirectTo,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n }\n}\n"]}
1
+ {"version":3,"file":"authenticate-401-middleware.js","sourceRoot":"","sources":["../../server/middlewares/authenticate-401-middleware.ts"],"names":[],"mappings":"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","sourcesContent":["import { config } from '@things-factory/env'\n\nimport { SUBDOMAIN_NOTFOUND, USER_DUPLICATED, USER_LOCKED, USER_NOT_ACTIVATED } from '../constants/error-code.js'\nimport { AuthError } from '../errors/auth-error.js'\nimport { accepts } from '../utils/accepts.js'\n\nconst disableUserSignupProcess = config.get('disableUserSignupProcess', false)\nconst disableUserFavoredLanguage = config.get('i18n/disableUserFavoredLanguage', false)\nconst languages = config.get('i18n/languages', false)\n\nexport async function authenticate401Middleware(context, next) {\n try {\n await next()\n } catch (err) {\n var message\n\n if (err instanceof AuthError) {\n message = (context.t && context.t(`error.${err.errorCode}`, err.detail || {})) || err.errorCode\n } else {\n if (err?.status !== 401) {\n throw err\n }\n\n message = err.message\n }\n\n context.status = 401\n context.body = message\n\n /*\n * 클라이언트 라우팅을 위한 ApiHistoryFallback의 상황과,\n * 서버라우팅의 상황에서 발생하는 던져지는 401 에러인 경우에는\n * error code에 맞춰서 적절하게 rewriting 되도록 한다.\n */\n\n const { method, header, path, originalUrl } = context\n\n if (method == 'POST' && path.startsWith('/graphql')) {\n if (err.errorCode == SUBDOMAIN_NOTFOUND) {\n context.status = 403\n }\n return\n }\n\n if (!accepts(header.accept, ['text/html', '*/*'])) {\n return\n }\n\n const { redirect_to } = context.query\n const { redirectTo = redirect_to || originalUrl } = context.request.body || {}\n\n switch (err.errorCode) {\n case SUBDOMAIN_NOTFOUND:\n context.redirect(`/auth/checkin?redirect_to=${encodeURIComponent(redirectTo)}`)\n break\n\n case USER_LOCKED:\n return await context.render('auth-page', {\n pageElement: 'auth-activate',\n elementScript: '/auth/activate.js',\n data: {\n ...err.detail,\n message,\n redirectTo,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n\n case USER_NOT_ACTIVATED:\n return await context.render('auth-page', {\n pageElement: 'auth-activate',\n elementScript: '/auth/activate.js',\n data: {\n ...err.detail,\n message,\n redirectTo,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n\n case USER_DUPLICATED:\n return await context.render('auth-page', {\n pageElement: 'auth-signup',\n elementScript: '/auth/signup.js',\n data: {\n ...err.detail,\n message,\n redirectTo,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n\n default:\n return await context.render('auth-page', {\n pageElement: 'auth-signin',\n elementScript: '/auth/signin.js',\n data: {\n ...err.detail,\n message: err instanceof AuthError ? message : '',\n redirectTo,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare function bypassSigninMiddleware(context: any, next: any): Promise<void>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bypassSigninMiddleware = bypassSigninMiddleware;
4
+ const shell_1 = require("@things-factory/shell");
5
+ const user_js_1 = require("../service/user/user.js");
6
+ const access_token_cookie_js_1 = require("../utils/access-token-cookie.js");
7
+ async function bypassSigninMiddleware(context, next) {
8
+ const systemDomain = await (0, shell_1.getRepository)(shell_1.Domain).findOne({
9
+ where: { systemFlag: true }
10
+ });
11
+ const admin = await (0, shell_1.getRepository)(user_js_1.User).findOne({
12
+ where: { id: systemDomain.owner },
13
+ relations: ['domains']
14
+ });
15
+ context.state.user = admin;
16
+ const token = await admin.sign();
17
+ (0, access_token_cookie_js_1.setAccessTokenCookie)(context, token);
18
+ await next();
19
+ }
20
+ //# sourceMappingURL=bypass-signin-middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bypass-signin-middleware.js","sourceRoot":"","sources":["../../server/middlewares/bypass-signin-middleware.ts"],"names":[],"mappings":";;AAKA,wDAgBC;AArBD,iDAA6D;AAE7D,qDAA8C;AAC9C,4EAAsE;AAE/D,KAAK,UAAU,sBAAsB,CAAC,OAAO,EAAE,IAAI;IACxD,MAAM,YAAY,GAAG,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,OAAO,CAAC;QACvD,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;KAC5B,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,MAAM,IAAA,qBAAa,EAAC,cAAI,CAAC,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,KAAK,EAAE;QACjC,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAA;IAE1B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;IAChC,IAAA,6CAAoB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAEpC,MAAM,IAAI,EAAE,CAAA;AACd,CAAC","sourcesContent":["import { Domain, getRepository } from '@things-factory/shell'\n\nimport { User } from '../service/user/user.js'\nimport { setAccessTokenCookie } from '../utils/access-token-cookie.js'\n\nexport async function bypassSigninMiddleware(context, next) {\n const systemDomain = await getRepository(Domain).findOne({\n where: { systemFlag: true }\n })\n\n const admin = await getRepository(User).findOne({\n where: { id: systemDomain.owner },\n relations: ['domains']\n })\n\n context.state.user = admin\n\n const token = await admin.sign()\n setAccessTokenCookie(context, token)\n\n await next()\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Domain } from '@things-factory/shell';
2
- import { User } from '../service/user/user';
2
+ import { User } from '../service/user/user.js';
3
3
  declare global {
4
4
  namespace NodeJS {
5
5
  interface Process {
@@ -1,14 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.domainAuthenticateMiddleware = domainAuthenticateMiddleware;
4
- const env_1 = require("@things-factory/env");
5
4
  const shell_1 = require("@things-factory/shell");
6
- const auth_error_1 = require("../errors/auth-error");
7
- const user_1 = require("../service/user/user");
8
- const get_user_domains_1 = require("../utils/get-user-domains");
9
- const useVirtualHostBasedDomain = !!env_1.config.get('useVirtualHostBasedDomain');
10
- const fixed = env_1.config.get('subdomain');
11
- const subdomainOffset = env_1.config.getNumber('subdomainOffset', 2);
5
+ const auth_error_js_1 = require("../errors/auth-error.js");
6
+ const user_js_1 = require("../service/user/user.js");
7
+ const get_user_domains_js_1 = require("../utils/get-user-domains.js");
12
8
  process.domainOwnerGranted = async (domain, user) => {
13
9
  return user && domain && domain.owner === user.id;
14
10
  };
@@ -17,7 +13,7 @@ process.superUserGranted = async (domain, user) => {
17
13
  return false;
18
14
  }
19
15
  if (!user.domains.length) {
20
- user = await (0, shell_1.getRepository)(user_1.User).findOne({
16
+ user = await (0, shell_1.getRepository)(user_js_1.User).findOne({
21
17
  where: { id: user.id },
22
18
  relations: ['domains']
23
19
  });
@@ -44,17 +40,17 @@ async function domainAuthenticateMiddleware(context, next) {
44
40
  // 1. 현재 subdomain 이 결정되지 않은 경우.
45
41
  // - checkin로 이동한다.
46
42
  if (!subdomain) {
47
- throw new auth_error_1.AuthError({
48
- errorCode: auth_error_1.AuthError.ERROR_CODES.SUBDOMAIN_NOTFOUND
43
+ throw new auth_error_js_1.AuthError({
44
+ errorCode: auth_error_js_1.AuthError.ERROR_CODES.SUBDOMAIN_NOTFOUND
49
45
  });
50
46
  }
51
47
  // 2. 현재 subdomain 이 결정된 경우.
52
- const userDomains = await (0, get_user_domains_1.getUserDomains)(user);
48
+ const userDomains = await (0, get_user_domains_js_1.getUserDomains)(user);
53
49
  if (userDomains.find(domain => domain.subdomain == subdomain) || (await process.superUserGranted(domain, user))) {
54
50
  return await next();
55
51
  }
56
- throw new auth_error_1.AuthError({
57
- errorCode: auth_error_1.AuthError.ERROR_CODES.SUBDOMAIN_NOTFOUND
52
+ throw new auth_error_js_1.AuthError({
53
+ errorCode: auth_error_js_1.AuthError.ERROR_CODES.SUBDOMAIN_NOTFOUND
58
54
  });
59
55
  }
60
56
  //# sourceMappingURL=domain-authenticate-middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"domain-authenticate-middleware.js","sourceRoot":"","sources":["../../server/middlewares/domain-authenticate-middleware.ts"],"names":[],"mappings":";;AAsDA,oEAuBC;AA7ED,6CAA4C;AAC5C,iDAA6D;AAE7D,qDAAgD;AAChD,+CAA2C;AAC3C,gEAA0D;AAE1D,MAAM,yBAAyB,GAAG,CAAC,CAAC,YAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;AAC3E,MAAM,KAAK,GAAG,YAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AACrC,MAAM,eAAe,GAAG,YAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;AAW9D,OAAO,CAAC,kBAAkB,GAAG,KAAK,EAAE,MAAc,EAAE,IAAU,EAAoB,EAAE;IAClF,OAAO,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAA;AACnD,CAAC,CAAA;AAED,OAAO,CAAC,gBAAgB,GAAG,KAAK,EAAE,MAAc,EAAE,IAAU,EAAoB,EAAE;IAChF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,GAAG,MAAM,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAC,OAAO,CAAC;YACvC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;YACtB,SAAS,EAAE,CAAC,SAAS,CAAC;SACvB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,YAAY,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAA;IACjG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAA;AACvC,CAAC,CAAA;AAED;;;;;;;;GAQG;AAEI,KAAK,UAAU,4BAA4B,CAAC,OAAY,EAAE,IAAS;IACxE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAA;IACrB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAEtC,MAAM,SAAS,GAAW,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAA;IAE3C,gCAAgC;IAChC,mBAAmB;IACnB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,sBAAS,CAAC;YAClB,SAAS,EAAE,sBAAS,CAAC,WAAW,CAAC,kBAAkB;SACpD,CAAC,CAAA;IACJ,CAAC;IAED,4BAA4B;IAC5B,MAAM,WAAW,GAAsB,MAAM,IAAA,iCAAc,EAAC,IAAI,CAAC,CAAA;IACjE,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAChH,OAAO,MAAM,IAAI,EAAE,CAAA;IACrB,CAAC;IAED,MAAM,IAAI,sBAAS,CAAC;QAClB,SAAS,EAAE,sBAAS,CAAC,WAAW,CAAC,kBAAkB;KACpD,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { config } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { AuthError } from '../errors/auth-error'\nimport { User } from '../service/user/user'\nimport { getUserDomains } from '../utils/get-user-domains'\n\nconst useVirtualHostBasedDomain = !!config.get('useVirtualHostBasedDomain')\nconst fixed = config.get('subdomain')\nconst subdomainOffset = config.getNumber('subdomainOffset', 2)\n\ndeclare global {\n namespace NodeJS {\n interface Process {\n domainOwnerGranted: (domain: Domain, user: User) => Promise<boolean>\n superUserGranted: (domain: Domain, user: User) => Promise<boolean>\n }\n }\n}\n\nprocess.domainOwnerGranted = async (domain: Domain, user: User): Promise<boolean> => {\n return user && domain && domain.owner === user.id\n}\n\nprocess.superUserGranted = async (domain: Domain, user: User): Promise<boolean> => {\n if (!user) {\n return false\n }\n\n if (!user.domains.length) {\n user = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['domains']\n })\n }\n\n const systemDomain: Domain = user.domains.find((domain: Domain) => domain.subdomain === 'system')\n if (!systemDomain) {\n return false\n }\n\n return systemDomain.owner === user.id\n}\n\n/*\n * 현재 subdomain 과 user의 domain list와의 비교를 통해서,\n * 인증 성공 또는 인증 에러를 발생시킬 것인지를 결정한다.\n * 1. 현재 subdomain 이 결정되지 않은 경우.\n * - checkin로 이동한다.\n * 2. superUser 판단\n * 3. 현재 subdomain 이 결정된 경우.\n * - user의 domains 리스트에 해당 subdomain이 없다면, 인증 오류를 발생한다.\n */\n\nexport async function domainAuthenticateMiddleware(context: any, next: any) {\n const { t } = context\n const { domain, user } = context.state\n\n const subdomain: string = domain?.subdomain\n\n // 1. 현재 subdomain 이 결정되지 않은 경우.\n // - checkin로 이동한다.\n if (!subdomain) {\n throw new AuthError({\n errorCode: AuthError.ERROR_CODES.SUBDOMAIN_NOTFOUND\n })\n }\n\n // 2. 현재 subdomain 이 결정된 경우.\n const userDomains: Partial<Domain>[] = await getUserDomains(user)\n if (userDomains.find(domain => domain.subdomain == subdomain) || (await process.superUserGranted(domain, user))) {\n return await next()\n }\n\n throw new AuthError({\n errorCode: AuthError.ERROR_CODES.SUBDOMAIN_NOTFOUND\n })\n}\n"]}
1
+ {"version":3,"file":"domain-authenticate-middleware.js","sourceRoot":"","sources":["../../server/middlewares/domain-authenticate-middleware.ts"],"names":[],"mappings":";;AAiDA,oEAuBC;AAxED,iDAA6D;AAE7D,2DAAmD;AACnD,qDAA8C;AAC9C,sEAA6D;AAW7D,OAAO,CAAC,kBAAkB,GAAG,KAAK,EAAE,MAAc,EAAE,IAAU,EAAoB,EAAE;IAClF,OAAO,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAA;AACnD,CAAC,CAAA;AAED,OAAO,CAAC,gBAAgB,GAAG,KAAK,EAAE,MAAc,EAAE,IAAU,EAAoB,EAAE;IAChF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,GAAG,MAAM,IAAA,qBAAa,EAAC,cAAI,CAAC,CAAC,OAAO,CAAC;YACvC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;YACtB,SAAS,EAAE,CAAC,SAAS,CAAC;SACvB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,YAAY,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAA;IACjG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAA;AACvC,CAAC,CAAA;AAED;;;;;;;;GAQG;AAEI,KAAK,UAAU,4BAA4B,CAAC,OAAY,EAAE,IAAS;IACxE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAA;IACrB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAEtC,MAAM,SAAS,GAAW,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAA;IAE3C,gCAAgC;IAChC,mBAAmB;IACnB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,yBAAS,CAAC;YAClB,SAAS,EAAE,yBAAS,CAAC,WAAW,CAAC,kBAAkB;SACpD,CAAC,CAAA;IACJ,CAAC;IAED,4BAA4B;IAC5B,MAAM,WAAW,GAAsB,MAAM,IAAA,oCAAc,EAAC,IAAI,CAAC,CAAA;IACjE,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAChH,OAAO,MAAM,IAAI,EAAE,CAAA;IACrB,CAAC;IAED,MAAM,IAAI,yBAAS,CAAC;QAClB,SAAS,EAAE,yBAAS,CAAC,WAAW,CAAC,kBAAkB;KACpD,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { Domain, getRepository } from '@things-factory/shell'\n\nimport { AuthError } from '../errors/auth-error.js'\nimport { User } from '../service/user/user.js'\nimport { getUserDomains } from '../utils/get-user-domains.js'\n\ndeclare global {\n namespace NodeJS {\n interface Process {\n domainOwnerGranted: (domain: Domain, user: User) => Promise<boolean>\n superUserGranted: (domain: Domain, user: User) => Promise<boolean>\n }\n }\n}\n\nprocess.domainOwnerGranted = async (domain: Domain, user: User): Promise<boolean> => {\n return user && domain && domain.owner === user.id\n}\n\nprocess.superUserGranted = async (domain: Domain, user: User): Promise<boolean> => {\n if (!user) {\n return false\n }\n\n if (!user.domains.length) {\n user = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['domains']\n })\n }\n\n const systemDomain: Domain = user.domains.find((domain: Domain) => domain.subdomain === 'system')\n if (!systemDomain) {\n return false\n }\n\n return systemDomain.owner === user.id\n}\n\n/*\n * 현재 subdomain 과 user의 domain list와의 비교를 통해서,\n * 인증 성공 또는 인증 에러를 발생시킬 것인지를 결정한다.\n * 1. 현재 subdomain 이 결정되지 않은 경우.\n * - checkin로 이동한다.\n * 2. superUser 판단\n * 3. 현재 subdomain 이 결정된 경우.\n * - user의 domains 리스트에 해당 subdomain이 없다면, 인증 오류를 발생한다.\n */\n\nexport async function domainAuthenticateMiddleware(context: any, next: any) {\n const { t } = context\n const { domain, user } = context.state\n\n const subdomain: string = domain?.subdomain\n\n // 1. 현재 subdomain 이 결정되지 않은 경우.\n // - checkin로 이동한다.\n if (!subdomain) {\n throw new AuthError({\n errorCode: AuthError.ERROR_CODES.SUBDOMAIN_NOTFOUND\n })\n }\n\n // 2. 현재 subdomain 이 결정된 경우.\n const userDomains: Partial<Domain>[] = await getUserDomains(user)\n if (userDomains.find(domain => domain.subdomain == subdomain) || (await process.superUserGranted(domain, user))) {\n return await next()\n }\n\n throw new AuthError({\n errorCode: AuthError.ERROR_CODES.SUBDOMAIN_NOTFOUND\n })\n}\n"]}
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.graphqlAuthenticateMiddleware = graphqlAuthenticateMiddleware;
4
- const domain_authenticate_middleware_1 = require("./domain-authenticate-middleware");
5
- const jwt_authenticate_middleware_1 = require("./jwt-authenticate-middleware");
4
+ const domain_authenticate_middleware_js_1 = require("./domain-authenticate-middleware.js");
5
+ const jwt_authenticate_middleware_js_1 = require("./jwt-authenticate-middleware.js");
6
6
  async function graphqlAuthenticateMiddleware(context, next) {
7
7
  const { method, path } = context;
8
8
  if (method == 'POST' && path.startsWith('/graphql')) {
9
- await (0, jwt_authenticate_middleware_1.jwtAuthenticateMiddleware)(context, () => { });
10
- await (0, domain_authenticate_middleware_1.domainAuthenticateMiddleware)(context, () => { });
9
+ await (0, jwt_authenticate_middleware_js_1.jwtAuthenticateMiddleware)(context, () => { });
10
+ await (0, domain_authenticate_middleware_js_1.domainAuthenticateMiddleware)(context, () => { });
11
11
  }
12
12
  await next();
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-authenticate-middleware.js","sourceRoot":"","sources":["../../server/middlewares/graphql-authenticate-middleware.ts"],"names":[],"mappings":";;AAGA,sEASC;AAZD,qFAA+E;AAC/E,+EAAyE;AAElE,KAAK,UAAU,6BAA6B,CAAC,OAAO,EAAE,IAAI;IAC/D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAEhC,IAAI,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,MAAM,IAAA,uDAAyB,EAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAClD,MAAM,IAAA,6DAA4B,EAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,IAAI,EAAE,CAAA;AACd,CAAC","sourcesContent":["import { domainAuthenticateMiddleware } from './domain-authenticate-middleware'\nimport { jwtAuthenticateMiddleware } from './jwt-authenticate-middleware'\n\nexport async function graphqlAuthenticateMiddleware(context, next) {\n const { method, path } = context\n\n if (method == 'POST' && path.startsWith('/graphql')) {\n await jwtAuthenticateMiddleware(context, () => {})\n await domainAuthenticateMiddleware(context, () => {})\n }\n\n await next()\n}\n"]}
1
+ {"version":3,"file":"graphql-authenticate-middleware.js","sourceRoot":"","sources":["../../server/middlewares/graphql-authenticate-middleware.ts"],"names":[],"mappings":";;AAGA,sEASC;AAZD,2FAAkF;AAClF,qFAA4E;AAErE,KAAK,UAAU,6BAA6B,CAAC,OAAO,EAAE,IAAI;IAC/D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAEhC,IAAI,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,MAAM,IAAA,0DAAyB,EAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAClD,MAAM,IAAA,gEAA4B,EAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,IAAI,EAAE,CAAA;AACd,CAAC","sourcesContent":["import { domainAuthenticateMiddleware } from './domain-authenticate-middleware.js'\nimport { jwtAuthenticateMiddleware } from './jwt-authenticate-middleware.js'\n\nexport async function graphqlAuthenticateMiddleware(context, next) {\n const { method, path } = context\n\n if (method == 'POST' && path.startsWith('/graphql')) {\n await jwtAuthenticateMiddleware(context, () => {})\n await domainAuthenticateMiddleware(context, () => {})\n }\n\n await next()\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  export declare function initMiddlewares(app: any): void;
2
- export * from './jwt-authenticate-middleware';
3
- export * from './domain-authenticate-middleware';
4
- export * from './signin-middleware';
5
- export * from './webauthn-middleware';
6
- export * from './authenticate-401-middleware';
2
+ export * from './jwt-authenticate-middleware.js';
3
+ export * from './domain-authenticate-middleware.js';
4
+ export * from './signin-middleware.js';
5
+ export * from './webauthn-middleware.js';
6
+ export * from './authenticate-401-middleware.js';
@@ -5,20 +5,25 @@ const tslib_1 = require("tslib");
5
5
  const koa_session_1 = tslib_1.__importDefault(require("koa-session"));
6
6
  const koa_passport_1 = tslib_1.__importDefault(require("koa-passport"));
7
7
  const env_1 = require("@things-factory/env");
8
- const get_secret_1 = require("../utils/get-secret");
9
- const authenticate_401_middleware_1 = require("./authenticate-401-middleware");
10
- const domain_authenticate_middleware_1 = require("./domain-authenticate-middleware");
11
- const graphql_authenticate_middleware_1 = require("./graphql-authenticate-middleware");
12
- const jwt_authenticate_middleware_1 = require("./jwt-authenticate-middleware");
13
- const user_1 = require("../service/user/user");
14
- const max_age_1 = require("../constants/max-age");
15
- const accessTokenCookieKey = env_1.config.get('accessTokenCookieKey', 'access_token');
8
+ const get_secret_js_1 = require("../utils/get-secret.js");
9
+ const authenticate_401_middleware_js_1 = require("./authenticate-401-middleware.js");
10
+ const domain_authenticate_middleware_js_1 = require("./domain-authenticate-middleware.js");
11
+ const graphql_authenticate_middleware_js_1 = require("./graphql-authenticate-middleware.js");
12
+ const jwt_authenticate_middleware_js_1 = require("./jwt-authenticate-middleware.js");
13
+ const bypass_signin_middleware_js_1 = require("./bypass-signin-middleware.js");
14
+ const user_js_1 = require("../service/user/user.js");
15
+ const max_age_js_1 = require("../constants/max-age.js");
16
+ const bypassUserSigninProcess = env_1.config.get('bypassUserSigninProcess', false);
16
17
  function initMiddlewares(app) {
18
+ if (bypassUserSigninProcess) {
19
+ app.use(bypass_signin_middleware_js_1.bypassSigninMiddleware);
20
+ return;
21
+ }
17
22
  /* oauth2orize-koa 에서 oauth 트랜잭션 관리를 위해서 session을 사용함. */
18
- app.keys = [get_secret_1.SECRET];
23
+ app.keys = [get_secret_js_1.SECRET];
19
24
  app.use((0, koa_session_1.default)({
20
25
  key: 'tfsession',
21
- maxAge: max_age_1.MAX_AGE,
26
+ maxAge: max_age_js_1.MAX_AGE,
22
27
  overwrite: true,
23
28
  httpOnly: true,
24
29
  signed: true,
@@ -29,26 +34,26 @@ function initMiddlewares(app) {
29
34
  done(null, profile);
30
35
  });
31
36
  koa_passport_1.default.deserializeUser(async (profile, done) => {
32
- done(null, await user_1.User.checkAuth(profile));
37
+ done(null, await user_js_1.User.checkAuth(profile));
33
38
  });
34
39
  /* passport initialize */
35
40
  app.use(koa_passport_1.default.initialize());
36
41
  /* passport use session - for oauth transaction */
37
42
  app.use(koa_passport_1.default.session());
38
43
  /* authentication error handling */
39
- app.use(authenticate_401_middleware_1.authenticate401Middleware);
44
+ app.use(authenticate_401_middleware_js_1.authenticate401Middleware);
40
45
  /*
41
46
  * post:graphql 에 대해서는 graphqlAuthenticationMiddleware를 적용한다.
42
47
  * graphql app을 router에 적용하지 못하기 때문임.
43
48
  */
44
- app.use(graphql_authenticate_middleware_1.graphqlAuthenticateMiddleware);
49
+ app.use(graphql_authenticate_middleware_js_1.graphqlAuthenticateMiddleware);
45
50
  }
46
51
  process.on('bootstrap-module-subscription', (app, subscriptionMiddleware) => {
47
- subscriptionMiddleware.push(jwt_authenticate_middleware_1.jwtAuthenticateMiddleware, domain_authenticate_middleware_1.domainAuthenticateMiddleware);
52
+ subscriptionMiddleware.push(jwt_authenticate_middleware_js_1.jwtAuthenticateMiddleware, domain_authenticate_middleware_js_1.domainAuthenticateMiddleware);
48
53
  });
49
- tslib_1.__exportStar(require("./jwt-authenticate-middleware"), exports);
50
- tslib_1.__exportStar(require("./domain-authenticate-middleware"), exports);
51
- tslib_1.__exportStar(require("./signin-middleware"), exports);
52
- tslib_1.__exportStar(require("./webauthn-middleware"), exports);
53
- tslib_1.__exportStar(require("./authenticate-401-middleware"), exports);
54
+ tslib_1.__exportStar(require("./jwt-authenticate-middleware.js"), exports);
55
+ tslib_1.__exportStar(require("./domain-authenticate-middleware.js"), exports);
56
+ tslib_1.__exportStar(require("./signin-middleware.js"), exports);
57
+ tslib_1.__exportStar(require("./webauthn-middleware.js"), exports);
58
+ tslib_1.__exportStar(require("./authenticate-401-middleware.js"), exports);
54
59
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/middlewares/index.ts"],"names":[],"mappings":";;AAgBA,0CAwCC;;AAxDD,sEAAiC;AACjC,wEAAmC;AAEnC,6CAA4C;AAC5C,oDAA4C;AAE5C,+EAAyE;AACzE,qFAA+E;AAC/E,uFAAiF;AACjF,+EAAyE;AAEzE,+CAA2C;AAC3C,kDAA8C;AAE9C,MAAM,oBAAoB,GAAG,YAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAA;AAE/E,SAAgB,eAAe,CAAC,GAAQ;IACtC,yDAAyD;IACzD,GAAG,CAAC,IAAI,GAAG,CAAC,mBAAM,CAAC,CAAA;IACnB,GAAG,CAAC,GAAG,CACL,IAAA,qBAAO,EACL;QACE,GAAG,EAAE,WAAW;QAChB,MAAM,EAAE,iBAAO;QACf,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,KAAK;KACb,EACD,GAAG,CACJ,CACF,CAAA;IAED,sBAAQ,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QACvC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,sBAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/C,IAAI,CAAC,IAAI,EAAE,MAAM,WAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,yBAAyB;IACzB,GAAG,CAAC,GAAG,CAAC,sBAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;IAE9B,kDAAkD;IAClD,GAAG,CAAC,GAAG,CAAC,sBAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAE3B,mCAAmC;IACnC,GAAG,CAAC,GAAG,CAAC,uDAAyB,CAAC,CAAA;IAElC;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,+DAA6B,CAAC,CAAA;AACxC,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,+BAAsC,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE;IACjF,sBAAsB,CAAC,IAAI,CAAC,uDAAyB,EAAE,6DAA4B,CAAC,CAAA;AACtF,CAAC,CAAC,CAAA;AAEF,wEAA6C;AAC7C,2EAAgD;AAChD,8DAAmC;AACnC,gEAAqC;AACrC,wEAA6C","sourcesContent":["import session from 'koa-session'\nimport passport from 'koa-passport'\n\nimport { config } from '@things-factory/env'\nimport { SECRET } from '../utils/get-secret'\n\nimport { authenticate401Middleware } from './authenticate-401-middleware'\nimport { domainAuthenticateMiddleware } from './domain-authenticate-middleware'\nimport { graphqlAuthenticateMiddleware } from './graphql-authenticate-middleware'\nimport { jwtAuthenticateMiddleware } from './jwt-authenticate-middleware'\n\nimport { User } from '../service/user/user'\nimport { MAX_AGE } from '../constants/max-age'\n\nconst accessTokenCookieKey = config.get('accessTokenCookieKey', 'access_token')\n\nexport function initMiddlewares(app: any) {\n /* oauth2orize-koa 에서 oauth 트랜잭션 관리를 위해서 session을 사용함. */\n app.keys = [SECRET]\n app.use(\n session(\n {\n key: 'tfsession',\n maxAge: MAX_AGE,\n overwrite: true,\n httpOnly: true,\n signed: true,\n rolling: false,\n renew: false\n },\n app\n )\n )\n\n passport.serializeUser((profile, done) => {\n done(null, profile)\n })\n\n passport.deserializeUser(async (profile, done) => {\n done(null, await User.checkAuth(profile))\n })\n\n /* passport initialize */\n app.use(passport.initialize())\n\n /* passport use session - for oauth transaction */\n app.use(passport.session())\n\n /* authentication error handling */\n app.use(authenticate401Middleware)\n\n /*\n * post:graphql 에 대해서는 graphqlAuthenticationMiddleware를 적용한다.\n * graphql app을 router에 적용하지 못하기 때문임.\n */\n app.use(graphqlAuthenticateMiddleware)\n}\n\nprocess.on('bootstrap-module-subscription' as any, (app, subscriptionMiddleware) => {\n subscriptionMiddleware.push(jwtAuthenticateMiddleware, domainAuthenticateMiddleware)\n})\n\nexport * from './jwt-authenticate-middleware'\nexport * from './domain-authenticate-middleware'\nexport * from './signin-middleware'\nexport * from './webauthn-middleware'\nexport * from './authenticate-401-middleware'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/middlewares/index.ts"],"names":[],"mappings":";;AAiBA,0CA6CC;;AA9DD,sEAAiC;AACjC,wEAAmC;AAEnC,6CAA4C;AAC5C,0DAA+C;AAE/C,qFAA4E;AAC5E,2FAAkF;AAClF,6FAAoF;AACpF,qFAA4E;AAC5E,+EAAsE;AAEtE,qDAA8C;AAC9C,wDAAiD;AAEjD,MAAM,uBAAuB,GAAG,YAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;AAE5E,SAAgB,eAAe,CAAC,GAAQ;IACtC,IAAI,uBAAuB,EAAE,CAAC;QAC5B,GAAG,CAAC,GAAG,CAAC,oDAAsB,CAAC,CAAA;QAC/B,OAAM;IACR,CAAC;IAED,yDAAyD;IACzD,GAAG,CAAC,IAAI,GAAG,CAAC,sBAAM,CAAC,CAAA;IACnB,GAAG,CAAC,GAAG,CACL,IAAA,qBAAO,EACL;QACE,GAAG,EAAE,WAAW;QAChB,MAAM,EAAE,oBAAO;QACf,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,KAAK;KACb,EACD,GAAG,CACJ,CACF,CAAA;IAED,sBAAQ,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QACvC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,sBAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/C,IAAI,CAAC,IAAI,EAAE,MAAM,cAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,yBAAyB;IACzB,GAAG,CAAC,GAAG,CAAC,sBAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;IAE9B,kDAAkD;IAClD,GAAG,CAAC,GAAG,CAAC,sBAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAE3B,mCAAmC;IACnC,GAAG,CAAC,GAAG,CAAC,0DAAyB,CAAC,CAAA;IAElC;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,kEAA6B,CAAC,CAAA;AACxC,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,+BAAsC,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE;IACjF,sBAAsB,CAAC,IAAI,CAAC,0DAAyB,EAAE,gEAA4B,CAAC,CAAA;AACtF,CAAC,CAAC,CAAA;AAEF,2EAAgD;AAChD,8EAAmD;AACnD,iEAAsC;AACtC,mEAAwC;AACxC,2EAAgD","sourcesContent":["import session from 'koa-session'\nimport passport from 'koa-passport'\n\nimport { config } from '@things-factory/env'\nimport { SECRET } from '../utils/get-secret.js'\n\nimport { authenticate401Middleware } from './authenticate-401-middleware.js'\nimport { domainAuthenticateMiddleware } from './domain-authenticate-middleware.js'\nimport { graphqlAuthenticateMiddleware } from './graphql-authenticate-middleware.js'\nimport { jwtAuthenticateMiddleware } from './jwt-authenticate-middleware.js'\nimport { bypassSigninMiddleware } from './bypass-signin-middleware.js'\n\nimport { User } from '../service/user/user.js'\nimport { MAX_AGE } from '../constants/max-age.js'\n\nconst bypassUserSigninProcess = config.get('bypassUserSigninProcess', false)\n\nexport function initMiddlewares(app: any) {\n if (bypassUserSigninProcess) {\n app.use(bypassSigninMiddleware)\n return\n }\n\n /* oauth2orize-koa 에서 oauth 트랜잭션 관리를 위해서 session을 사용함. */\n app.keys = [SECRET]\n app.use(\n session(\n {\n key: 'tfsession',\n maxAge: MAX_AGE,\n overwrite: true,\n httpOnly: true,\n signed: true,\n rolling: false,\n renew: false\n },\n app\n )\n )\n\n passport.serializeUser((profile, done) => {\n done(null, profile)\n })\n\n passport.deserializeUser(async (profile, done) => {\n done(null, await User.checkAuth(profile))\n })\n\n /* passport initialize */\n app.use(passport.initialize())\n\n /* passport use session - for oauth transaction */\n app.use(passport.session())\n\n /* authentication error handling */\n app.use(authenticate401Middleware)\n\n /*\n * post:graphql 에 대해서는 graphqlAuthenticationMiddleware를 적용한다.\n * graphql app을 router에 적용하지 못하기 때문임.\n */\n app.use(graphqlAuthenticateMiddleware)\n}\n\nprocess.on('bootstrap-module-subscription' as any, (app, subscriptionMiddleware) => {\n subscriptionMiddleware.push(jwtAuthenticateMiddleware, domainAuthenticateMiddleware)\n})\n\nexport * from './jwt-authenticate-middleware.js'\nexport * from './domain-authenticate-middleware.js'\nexport * from './signin-middleware.js'\nexport * from './webauthn-middleware.js'\nexport * from './authenticate-401-middleware.js'\n"]}
@@ -5,15 +5,15 @@ const tslib_1 = require("tslib");
5
5
  const koa_passport_1 = tslib_1.__importDefault(require("koa-passport"));
6
6
  const passport_jwt_1 = require("passport-jwt");
7
7
  const env_1 = require("@things-factory/env");
8
- const make_verification_token_1 = require("../controllers/utils/make-verification-token");
9
- const save_verification_token_1 = require("../controllers/utils/save-verification-token");
10
- const user_1 = require("../service/user/user");
11
- const verification_token_1 = require("../service/verification-token/verification-token");
12
- const access_token_cookie_1 = require("../utils/access-token-cookie");
13
- const get_secret_1 = require("../utils/get-secret");
8
+ const make_verification_token_js_1 = require("../controllers/utils/make-verification-token.js");
9
+ const save_verification_token_js_1 = require("../controllers/utils/save-verification-token.js");
10
+ const user_js_1 = require("../service/user/user.js");
11
+ const verification_token_js_1 = require("../service/verification-token/verification-token.js");
12
+ const access_token_cookie_js_1 = require("../utils/access-token-cookie.js");
13
+ const get_secret_js_1 = require("../utils/get-secret.js");
14
14
  const sessionExpiryPolicy = env_1.config.get('session/expiryPolicy', 'fixed');
15
15
  koa_passport_1.default.use(new passport_jwt_1.Strategy({
16
- secretOrKey: get_secret_1.SECRET,
16
+ secretOrKey: get_secret_js_1.SECRET,
17
17
  passReqToCallback: true,
18
18
  jwtFromRequest: passport_jwt_1.ExtractJwt.fromExtractors([
19
19
  passport_jwt_1.ExtractJwt.fromAuthHeaderAsBearerToken(),
@@ -23,7 +23,7 @@ koa_passport_1.default.use(new passport_jwt_1.Strategy({
23
23
  passport_jwt_1.ExtractJwt.fromBodyField('access_token'),
24
24
  req => {
25
25
  var token = null;
26
- token = (0, access_token_cookie_1.getAccessTokenCookie)(req === null || req === void 0 ? void 0 : req.ctx);
26
+ token = (0, access_token_cookie_js_1.getAccessTokenCookie)(req === null || req === void 0 ? void 0 : req.ctx);
27
27
  return token;
28
28
  }
29
29
  ])
@@ -44,16 +44,16 @@ async function jwtAuthenticateMiddleware(context, next) {
44
44
  return await koa_passport_1.default.authenticate('jwt', { session: false }, async (err, decoded, info) => {
45
45
  if (err || !decoded) {
46
46
  const e = (context.state.error = err || info);
47
- (0, access_token_cookie_1.clearAccessTokenCookie)(context);
47
+ (0, access_token_cookie_js_1.clearAccessTokenCookie)(context);
48
48
  context.throw(401, e.message);
49
49
  }
50
50
  else {
51
- const userEntity = await user_1.User.checkAuth(decoded);
52
- if (userEntity.status === user_1.UserStatus.PWD_RESET_REQUIRED) {
51
+ const userEntity = await user_js_1.User.checkAuth(decoded);
52
+ if (userEntity.status === user_js_1.UserStatus.PWD_RESET_REQUIRED) {
53
53
  try {
54
- const token = (0, make_verification_token_1.makeVerificationToken)();
55
- await (0, save_verification_token_1.saveVerificationToken)(userEntity.id, token, verification_token_1.VerificationTokenType.PASSWORD_RESET);
56
- (0, access_token_cookie_1.clearAccessTokenCookie)(context);
54
+ const token = (0, make_verification_token_js_1.makeVerificationToken)();
55
+ await (0, save_verification_token_js_1.saveVerificationToken)(userEntity.id, token, verification_token_js_1.VerificationTokenType.PASSWORD_RESET);
56
+ (0, access_token_cookie_js_1.clearAccessTokenCookie)(context);
57
57
  context.redirect(`/auth/reset-password?token=${token}`);
58
58
  }
59
59
  catch (e) {
@@ -66,7 +66,7 @@ async function jwtAuthenticateMiddleware(context, next) {
66
66
  if (sessionExpiryPolicy == 'rolling') {
67
67
  /* To renew the expiry time on each request, a token is issued and the session is updated. */
68
68
  const token = await userEntity.sign();
69
- (0, access_token_cookie_1.setAccessTokenCookie)(context, token);
69
+ (0, access_token_cookie_js_1.setAccessTokenCookie)(context, token);
70
70
  }
71
71
  await next();
72
72
  }