@things-factory/auth-base 5.0.7 → 6.0.0-alpha.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 (411) hide show
  1. package/client/actions/auth.ts +23 -0
  2. package/client/{auth.js → auth.ts} +66 -59
  3. package/client/{bootstrap.js → bootstrap.ts} +5 -4
  4. package/client/index.ts +1 -0
  5. package/client/reducers/{auth.js → auth.ts} +1 -1
  6. package/config/config.development.js +2 -1
  7. package/dist-client/actions/auth.d.ts +8 -0
  8. package/dist-client/actions/auth.js +15 -0
  9. package/dist-client/actions/auth.js.map +1 -0
  10. package/dist-client/auth.d.ts +34 -0
  11. package/dist-client/auth.js +209 -0
  12. package/dist-client/auth.js.map +1 -0
  13. package/dist-client/bootstrap.d.ts +1 -0
  14. package/dist-client/bootstrap.js +34 -0
  15. package/dist-client/bootstrap.js.map +1 -0
  16. package/dist-client/index.d.ts +1 -0
  17. package/dist-client/index.js +2 -0
  18. package/dist-client/index.js.map +1 -0
  19. package/dist-client/reducers/auth.d.ts +14 -0
  20. package/dist-client/reducers/auth.js +19 -0
  21. package/dist-client/reducers/auth.js.map +1 -0
  22. package/dist-client/tsconfig.tsbuildinfo +1 -0
  23. package/dist-server/constants/error-code.d.ts +17 -0
  24. package/dist-server/constants/error-code.js.map +1 -1
  25. package/dist-server/constants/error-message.d.ts +0 -0
  26. package/dist-server/constants/error-message.js.map +1 -1
  27. package/dist-server/constants/max-age.d.ts +1 -0
  28. package/dist-server/constants/max-age.js.map +1 -1
  29. package/dist-server/controllers/auth.d.ts +5 -0
  30. package/dist-server/controllers/auth.js +6 -18
  31. package/dist-server/controllers/auth.js.map +1 -1
  32. package/dist-server/controllers/change-pwd.d.ts +1 -0
  33. package/dist-server/controllers/change-pwd.js +11 -12
  34. package/dist-server/controllers/change-pwd.js.map +1 -1
  35. package/dist-server/controllers/checkin.d.ts +4 -0
  36. package/dist-server/controllers/checkin.js +3 -3
  37. package/dist-server/controllers/checkin.js.map +1 -1
  38. package/dist-server/controllers/delete-user.d.ts +3 -0
  39. package/dist-server/controllers/delete-user.js.map +1 -1
  40. package/dist-server/controllers/invitation.d.ts +11 -0
  41. package/dist-server/controllers/invitation.js +14 -20
  42. package/dist-server/controllers/invitation.js.map +1 -1
  43. package/dist-server/controllers/profile.d.ts +26 -0
  44. package/dist-server/controllers/profile.js +4 -4
  45. package/dist-server/controllers/profile.js.map +1 -1
  46. package/dist-server/controllers/reset-password.d.ts +5 -0
  47. package/dist-server/controllers/reset-password.js +14 -16
  48. package/dist-server/controllers/reset-password.js.map +1 -1
  49. package/dist-server/controllers/signin.d.ts +6 -0
  50. package/dist-server/controllers/signin.js +4 -3
  51. package/dist-server/controllers/signin.js.map +1 -1
  52. package/dist-server/controllers/signup.d.ts +8 -0
  53. package/dist-server/controllers/signup.js +13 -9
  54. package/dist-server/controllers/signup.js.map +1 -1
  55. package/dist-server/controllers/unlock-user.d.ts +5 -0
  56. package/dist-server/controllers/unlock-user.js +6 -6
  57. package/dist-server/controllers/unlock-user.js.map +1 -1
  58. package/dist-server/controllers/utils/make-invitation-token.d.ts +1 -0
  59. package/dist-server/controllers/utils/make-invitation-token.js +2 -4
  60. package/dist-server/controllers/utils/make-invitation-token.js.map +1 -1
  61. package/dist-server/controllers/utils/make-verification-token.d.ts +1 -0
  62. package/dist-server/controllers/utils/make-verification-token.js +2 -4
  63. package/dist-server/controllers/utils/make-verification-token.js.map +1 -1
  64. package/dist-server/controllers/utils/password-rule.d.ts +14 -0
  65. package/dist-server/controllers/utils/password-rule.js +2 -5
  66. package/dist-server/controllers/utils/password-rule.js.map +1 -1
  67. package/dist-server/controllers/utils/save-invitation-token.d.ts +5 -0
  68. package/dist-server/controllers/utils/save-invitation-token.js +2 -2
  69. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
  70. package/dist-server/controllers/utils/save-verification-token.d.ts +6 -0
  71. package/dist-server/controllers/utils/save-verification-token.js +2 -2
  72. package/dist-server/controllers/utils/save-verification-token.js.map +1 -1
  73. package/dist-server/controllers/verification.d.ts +6 -0
  74. package/dist-server/controllers/verification.js +8 -8
  75. package/dist-server/controllers/verification.js.map +1 -1
  76. package/dist-server/errors/auth-error.d.ts +11 -0
  77. package/dist-server/errors/auth-error.js +2 -24
  78. package/dist-server/errors/auth-error.js.map +1 -1
  79. package/dist-server/errors/index.d.ts +2 -0
  80. package/dist-server/errors/index.js +3 -16
  81. package/dist-server/errors/index.js.map +1 -1
  82. package/dist-server/errors/user-domain-not-match-error.d.ts +9 -0
  83. package/dist-server/errors/user-domain-not-match-error.js.map +1 -1
  84. package/dist-server/index.d.ts +13 -0
  85. package/dist-server/index.js +13 -25
  86. package/dist-server/index.js.map +1 -1
  87. package/dist-server/middlewares/authenticate-401-middleware.d.ts +1 -0
  88. package/dist-server/middlewares/authenticate-401-middleware.js +12 -20
  89. package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -1
  90. package/dist-server/middlewares/domain-authenticate-middleware.d.ts +11 -0
  91. package/dist-server/middlewares/domain-authenticate-middleware.js +8 -8
  92. package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
  93. package/dist-server/middlewares/graphql-authenticate-middleware.d.ts +1 -0
  94. package/dist-server/middlewares/graphql-authenticate-middleware.js +1 -3
  95. package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -1
  96. package/dist-server/middlewares/index.d.ts +5 -0
  97. package/dist-server/middlewares/index.js +6 -24
  98. package/dist-server/middlewares/index.js.map +1 -1
  99. package/dist-server/middlewares/jwt-authenticate-middleware.d.ts +1 -0
  100. package/dist-server/middlewares/jwt-authenticate-middleware.js +5 -11
  101. package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -1
  102. package/dist-server/middlewares/signin-middleware.d.ts +1 -0
  103. package/dist-server/middlewares/signin-middleware.js +2 -6
  104. package/dist-server/middlewares/signin-middleware.js.map +1 -1
  105. package/dist-server/migrations/1548206416130-SeedUser.d.ts +5 -0
  106. package/dist-server/migrations/1548206416130-SeedUser.js +4 -5
  107. package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -1
  108. package/dist-server/migrations/1566805283882-SeedPrivilege.d.ts +5 -0
  109. package/dist-server/migrations/1566805283882-SeedPrivilege.js +2 -2
  110. package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -1
  111. package/dist-server/migrations/index.d.ts +1 -0
  112. package/dist-server/migrations/index.js.map +1 -1
  113. package/dist-server/router/auth-checkin-router.d.ts +1 -0
  114. package/dist-server/router/auth-checkin-router.js +3 -8
  115. package/dist-server/router/auth-checkin-router.js.map +1 -1
  116. package/dist-server/router/auth-private-process-router.d.ts +1 -0
  117. package/dist-server/router/auth-private-process-router.js +16 -21
  118. package/dist-server/router/auth-private-process-router.js.map +1 -1
  119. package/dist-server/router/auth-public-process-router.d.ts +1 -0
  120. package/dist-server/router/auth-public-process-router.js +6 -25
  121. package/dist-server/router/auth-public-process-router.js.map +1 -1
  122. package/dist-server/router/auth-signin-router.d.ts +1 -0
  123. package/dist-server/router/auth-signin-router.js +2 -7
  124. package/dist-server/router/auth-signin-router.js.map +1 -1
  125. package/dist-server/router/auth-signup-router.d.ts +1 -0
  126. package/dist-server/router/auth-signup-router.js +34 -40
  127. package/dist-server/router/auth-signup-router.js.map +1 -1
  128. package/dist-server/router/index.d.ts +8 -0
  129. package/dist-server/router/index.js +9 -22
  130. package/dist-server/router/index.js.map +1 -1
  131. package/dist-server/router/oauth2/index.d.ts +2 -0
  132. package/dist-server/router/oauth2/index.js +3 -16
  133. package/dist-server/router/oauth2/index.js.map +1 -1
  134. package/dist-server/router/oauth2/oauth2-authorize-router.d.ts +1 -0
  135. package/dist-server/router/oauth2/oauth2-authorize-router.js +4 -11
  136. package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -1
  137. package/dist-server/router/oauth2/oauth2-router.d.ts +9 -0
  138. package/dist-server/router/oauth2/oauth2-router.js +11 -17
  139. package/dist-server/router/oauth2/oauth2-router.js.map +1 -1
  140. package/dist-server/router/oauth2/oauth2-server.d.ts +5 -0
  141. package/dist-server/router/oauth2/oauth2-server.js +25 -35
  142. package/dist-server/router/oauth2/oauth2-server.js.map +1 -1
  143. package/dist-server/router/oauth2/passport-oauth2-client-password.d.ts +7 -0
  144. package/dist-server/router/oauth2/passport-oauth2-client-password.js +3 -5
  145. package/dist-server/router/oauth2/passport-oauth2-client-password.js.map +1 -1
  146. package/dist-server/router/oauth2/passport-refresh-token.d.ts +7 -0
  147. package/dist-server/router/oauth2/passport-refresh-token.js +3 -5
  148. package/dist-server/router/oauth2/passport-refresh-token.js.map +1 -1
  149. package/dist-server/router/path-base-domain-router.d.ts +1 -0
  150. package/dist-server/router/path-base-domain-router.js +2 -6
  151. package/dist-server/router/path-base-domain-router.js.map +1 -1
  152. package/dist-server/router/site-root-router.d.ts +1 -0
  153. package/dist-server/router/site-root-router.js +4 -13
  154. package/dist-server/router/site-root-router.js.map +1 -1
  155. package/dist-server/routes.d.ts +1 -0
  156. package/dist-server/routes.js +2 -9
  157. package/dist-server/routes.js.map +1 -1
  158. package/dist-server/service/app-binding/app-binding-mutation.d.ts +3 -0
  159. package/dist-server/service/app-binding/app-binding-mutation.js +11 -24
  160. package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -1
  161. package/dist-server/service/app-binding/app-binding-query.d.ts +14 -0
  162. package/dist-server/service/app-binding/app-binding-query.js +51 -60
  163. package/dist-server/service/app-binding/app-binding-query.js.map +1 -1
  164. package/dist-server/service/app-binding/app-binding-types.d.ts +5 -0
  165. package/dist-server/service/app-binding/app-binding-types.js +6 -14
  166. package/dist-server/service/app-binding/app-binding-types.js.map +1 -1
  167. package/dist-server/service/app-binding/app-binding.d.ts +7 -0
  168. package/dist-server/service/app-binding/app-binding.js +8 -16
  169. package/dist-server/service/app-binding/app-binding.js.map +1 -1
  170. package/dist-server/service/app-binding/index.d.ts +3 -0
  171. package/dist-server/service/app-binding/index.js.map +1 -1
  172. package/dist-server/service/appliance/appliance-mutation.d.ts +8 -0
  173. package/dist-server/service/appliance/appliance-mutation.js +40 -53
  174. package/dist-server/service/appliance/appliance-mutation.js.map +1 -1
  175. package/dist-server/service/appliance/appliance-query.d.ts +11 -0
  176. package/dist-server/service/appliance/appliance-query.js +35 -48
  177. package/dist-server/service/appliance/appliance-query.js.map +1 -1
  178. package/dist-server/service/appliance/appliance-types.d.ts +22 -0
  179. package/dist-server/service/appliance/appliance-types.js +34 -42
  180. package/dist-server/service/appliance/appliance-types.js.map +1 -1
  181. package/dist-server/service/appliance/appliance.d.ts +22 -0
  182. package/dist-server/service/appliance/appliance.js +35 -47
  183. package/dist-server/service/appliance/appliance.js.map +1 -1
  184. package/dist-server/service/appliance/index.d.ts +5 -0
  185. package/dist-server/service/appliance/index.js.map +1 -1
  186. package/dist-server/service/application/application-mutation.d.ts +66 -0
  187. package/dist-server/service/application/application-mutation.js +47 -61
  188. package/dist-server/service/application/application-mutation.js.map +1 -1
  189. package/dist-server/service/application/application-query.d.ts +16 -0
  190. package/dist-server/service/application/application-query.js +54 -67
  191. package/dist-server/service/application/application-query.js.map +1 -1
  192. package/dist-server/service/application/application-types.d.ts +27 -0
  193. package/dist-server/service/application/application-types.js +41 -49
  194. package/dist-server/service/application/application-types.js.map +1 -1
  195. package/dist-server/service/application/application.d.ts +35 -0
  196. package/dist-server/service/application/application.js +42 -54
  197. package/dist-server/service/application/application.js.map +1 -1
  198. package/dist-server/service/application/index.d.ts +5 -0
  199. package/dist-server/service/application/index.js.map +1 -1
  200. package/dist-server/service/domain-generator/domain-generator-mutation.d.ts +6 -0
  201. package/dist-server/service/domain-generator/domain-generator-mutation.js +21 -32
  202. package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -1
  203. package/dist-server/service/domain-generator/domain-generator-types.d.ts +19 -0
  204. package/dist-server/service/domain-generator/domain-generator-types.js +26 -35
  205. package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -1
  206. package/dist-server/service/domain-generator/index.d.ts +2 -0
  207. package/dist-server/service/domain-generator/index.js.map +1 -1
  208. package/dist-server/service/granted-role/granted-role-mutation.d.ts +11 -0
  209. package/dist-server/service/granted-role/granted-role-mutation.js +23 -29
  210. package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -1
  211. package/dist-server/service/granted-role/granted-role-query.d.ts +16 -0
  212. package/dist-server/service/granted-role/granted-role-query.js +31 -43
  213. package/dist-server/service/granted-role/granted-role-query.js.map +1 -1
  214. package/dist-server/service/granted-role/granted-role.d.ts +9 -0
  215. package/dist-server/service/granted-role/granted-role.js +12 -21
  216. package/dist-server/service/granted-role/granted-role.js.map +1 -1
  217. package/dist-server/service/granted-role/index.d.ts +5 -0
  218. package/dist-server/service/granted-role/index.js.map +1 -1
  219. package/dist-server/service/index.d.ts +31 -0
  220. package/dist-server/service/index.js +22 -35
  221. package/dist-server/service/index.js.map +1 -1
  222. package/dist-server/service/invitation/index.d.ts +5 -0
  223. package/dist-server/service/invitation/index.js.map +1 -1
  224. package/dist-server/service/invitation/invitation-mutation.d.ts +17 -0
  225. package/dist-server/service/invitation/invitation-mutation.js +26 -37
  226. package/dist-server/service/invitation/invitation-mutation.js.map +1 -1
  227. package/dist-server/service/invitation/invitation-query.d.ts +8 -0
  228. package/dist-server/service/invitation/invitation-query.js +19 -30
  229. package/dist-server/service/invitation/invitation-query.js.map +1 -1
  230. package/dist-server/service/invitation/invitation-types.d.ts +5 -0
  231. package/dist-server/service/invitation/invitation-types.js +6 -14
  232. package/dist-server/service/invitation/invitation-types.js.map +1 -1
  233. package/dist-server/service/invitation/invitation.d.ts +14 -0
  234. package/dist-server/service/invitation/invitation.js +24 -32
  235. package/dist-server/service/invitation/invitation.js.map +1 -1
  236. package/dist-server/service/login-history/index.d.ts +4 -0
  237. package/dist-server/service/login-history/index.js.map +1 -1
  238. package/dist-server/service/login-history/login-history-query.d.ts +8 -0
  239. package/dist-server/service/login-history/login-history-query.js +27 -40
  240. package/dist-server/service/login-history/login-history-query.js.map +1 -1
  241. package/dist-server/service/login-history/login-history.d.ts +12 -0
  242. package/dist-server/service/login-history/login-history.js +29 -38
  243. package/dist-server/service/login-history/login-history.js.map +1 -1
  244. package/dist-server/service/partner/index.d.ts +5 -0
  245. package/dist-server/service/partner/index.js.map +1 -1
  246. package/dist-server/service/partner/partner-mutation.d.ts +4 -0
  247. package/dist-server/service/partner/partner-mutation.js +20 -32
  248. package/dist-server/service/partner/partner-mutation.js.map +1 -1
  249. package/dist-server/service/partner/partner-query.d.ts +14 -0
  250. package/dist-server/service/partner/partner-query.js +53 -66
  251. package/dist-server/service/partner/partner-query.js.map +1 -1
  252. package/dist-server/service/partner/partner-types.d.ts +5 -0
  253. package/dist-server/service/partner/partner-types.js +6 -14
  254. package/dist-server/service/partner/partner-types.js.map +1 -1
  255. package/dist-server/service/partner/partner.d.ts +15 -0
  256. package/dist-server/service/partner/partner.js +24 -33
  257. package/dist-server/service/partner/partner.js.map +1 -1
  258. package/dist-server/service/password-history/index.d.ts +2 -0
  259. package/dist-server/service/password-history/index.js.map +1 -1
  260. package/dist-server/service/password-history/password-history.d.ts +4 -0
  261. package/dist-server/service/password-history/password-history.js +6 -14
  262. package/dist-server/service/password-history/password-history.js.map +1 -1
  263. package/dist-server/service/privilege/index.d.ts +5 -0
  264. package/dist-server/service/privilege/index.js.map +1 -1
  265. package/dist-server/service/privilege/privilege-directive.d.ts +3 -0
  266. package/dist-server/service/privilege/privilege-directive.js +4 -7
  267. package/dist-server/service/privilege/privilege-directive.js.map +1 -1
  268. package/dist-server/service/privilege/privilege-mutation.d.ts +7 -0
  269. package/dist-server/service/privilege/privilege-mutation.js +32 -42
  270. package/dist-server/service/privilege/privilege-mutation.js.map +1 -1
  271. package/dist-server/service/privilege/privilege-query.d.ts +13 -0
  272. package/dist-server/service/privilege/privilege-query.js +41 -53
  273. package/dist-server/service/privilege/privilege-query.js.map +1 -1
  274. package/dist-server/service/privilege/privilege-types.d.ts +25 -0
  275. package/dist-server/service/privilege/privilege-types.js +35 -43
  276. package/dist-server/service/privilege/privilege-types.js.map +1 -1
  277. package/dist-server/service/privilege/privilege.d.ts +15 -0
  278. package/dist-server/service/privilege/privilege.js +24 -32
  279. package/dist-server/service/privilege/privilege.js.map +1 -1
  280. package/dist-server/service/role/index.d.ts +5 -0
  281. package/dist-server/service/role/index.js.map +1 -1
  282. package/dist-server/service/role/role-mutation.d.ts +8 -0
  283. package/dist-server/service/role/role-mutation.js +40 -49
  284. package/dist-server/service/role/role-mutation.js.map +1 -1
  285. package/dist-server/service/role/role-query.d.ts +18 -0
  286. package/dist-server/service/role/role-query.js +73 -84
  287. package/dist-server/service/role/role-query.js.map +1 -1
  288. package/dist-server/service/role/role-types.d.ts +33 -0
  289. package/dist-server/service/role/role-types.js +48 -56
  290. package/dist-server/service/role/role-types.js.map +1 -1
  291. package/dist-server/service/role/role.d.ts +18 -0
  292. package/dist-server/service/role/role.js +28 -37
  293. package/dist-server/service/role/role.js.map +1 -1
  294. package/dist-server/service/user/index.d.ts +5 -0
  295. package/dist-server/service/user/index.js.map +1 -1
  296. package/dist-server/service/user/user-mutation.d.ts +28 -0
  297. package/dist-server/service/user/user-mutation.js +89 -93
  298. package/dist-server/service/user/user-mutation.js.map +1 -1
  299. package/dist-server/service/user/user-query.d.ts +16 -0
  300. package/dist-server/service/user/user-query.js +73 -82
  301. package/dist-server/service/user/user-query.js.map +1 -1
  302. package/dist-server/service/user/user-types.d.ts +26 -0
  303. package/dist-server/service/user/user-types.js +40 -48
  304. package/dist-server/service/user/user-types.js.map +1 -1
  305. package/dist-server/service/user/user.d.ts +39 -0
  306. package/dist-server/service/user/user.js +53 -63
  307. package/dist-server/service/user/user.js.map +1 -1
  308. package/dist-server/service/verification-token/index.d.ts +2 -0
  309. package/dist-server/service/verification-token/index.js.map +1 -1
  310. package/dist-server/service/verification-token/verification-token.d.ts +14 -0
  311. package/dist-server/service/verification-token/verification-token.js +14 -22
  312. package/dist-server/service/verification-token/verification-token.js.map +1 -1
  313. package/dist-server/templates/account-unlock-email.d.ts +4 -0
  314. package/dist-server/templates/account-unlock-email.js.map +1 -1
  315. package/dist-server/templates/invitation-email.d.ts +4 -0
  316. package/dist-server/templates/invitation-email.js.map +1 -1
  317. package/dist-server/templates/reset-password-email.d.ts +4 -0
  318. package/dist-server/templates/reset-password-email.js.map +1 -1
  319. package/dist-server/templates/verification-email.d.ts +4 -0
  320. package/dist-server/templates/verification-email.js.map +1 -1
  321. package/dist-server/tsconfig.tsbuildinfo +1 -0
  322. package/dist-server/types.d.ts +17 -0
  323. package/dist-server/types.js +3 -0
  324. package/dist-server/types.js.map +1 -0
  325. package/dist-server/utils/accepts.d.ts +1 -0
  326. package/dist-server/utils/accepts.js.map +1 -1
  327. package/dist-server/utils/access-token-cookie.d.ts +3 -0
  328. package/dist-server/utils/access-token-cookie.js.map +1 -1
  329. package/dist-server/utils/check-user-belongs-domain.d.ts +10 -0
  330. package/dist-server/utils/check-user-belongs-domain.js +2 -2
  331. package/dist-server/utils/check-user-belongs-domain.js.map +1 -1
  332. package/dist-server/utils/get-domain-from-hostname.d.ts +1 -0
  333. package/dist-server/utils/get-domain-from-hostname.js.map +1 -1
  334. package/dist-server/utils/get-domain-users.d.ts +5 -0
  335. package/dist-server/utils/get-domain-users.js +2 -3
  336. package/dist-server/utils/get-domain-users.js.map +1 -1
  337. package/dist-server/utils/get-secret.d.ts +1 -0
  338. package/dist-server/utils/get-secret.js.map +1 -1
  339. package/dist-server/utils/get-user-domains.d.ts +5 -0
  340. package/dist-server/utils/get-user-domains.js +7 -5
  341. package/dist-server/utils/get-user-domains.js.map +1 -1
  342. package/package.json +15 -13
  343. package/server/controllers/auth.ts +1 -0
  344. package/server/controllers/change-pwd.ts +12 -15
  345. package/server/controllers/checkin.ts +3 -3
  346. package/server/controllers/invitation.ts +10 -16
  347. package/server/controllers/profile.ts +4 -3
  348. package/server/controllers/reset-password.ts +13 -14
  349. package/server/controllers/signin.ts +4 -2
  350. package/server/controllers/signup.ts +13 -8
  351. package/server/controllers/unlock-user.ts +5 -3
  352. package/server/controllers/utils/password-rule.ts +0 -1
  353. package/server/controllers/utils/save-invitation-token.ts +2 -1
  354. package/server/controllers/utils/save-verification-token.ts +2 -1
  355. package/server/controllers/verification.ts +6 -4
  356. package/server/errors/auth-error.ts +3 -0
  357. package/server/errors/user-domain-not-match-error.ts +3 -0
  358. package/server/index.ts +3 -1
  359. package/server/middlewares/authenticate-401-middleware.ts +15 -11
  360. package/server/middlewares/domain-authenticate-middleware.ts +11 -12
  361. package/server/middlewares/graphql-authenticate-middleware.ts +1 -5
  362. package/server/middlewares/index.ts +0 -4
  363. package/server/middlewares/jwt-authenticate-middleware.ts +4 -9
  364. package/server/middlewares/signin-middleware.ts +6 -5
  365. package/server/migrations/1548206416130-SeedUser.ts +3 -3
  366. package/server/migrations/1566805283882-SeedPrivilege.ts +2 -1
  367. package/server/router/auth-checkin-router.ts +5 -7
  368. package/server/router/auth-private-process-router.ts +16 -18
  369. package/server/router/auth-public-process-router.ts +6 -37
  370. package/server/router/auth-signin-router.ts +1 -5
  371. package/server/router/auth-signup-router.ts +40 -47
  372. package/server/router/oauth2/oauth2-authorize-router.ts +4 -10
  373. package/server/router/oauth2/oauth2-router.ts +4 -11
  374. package/server/router/oauth2/oauth2-server.ts +19 -34
  375. package/server/router/path-base-domain-router.ts +0 -4
  376. package/server/router/site-root-router.ts +4 -11
  377. package/server/routes.ts +8 -13
  378. package/server/service/app-binding/app-binding-mutation.ts +6 -8
  379. package/server/service/app-binding/app-binding-query.ts +15 -14
  380. package/server/service/appliance/appliance-mutation.ts +14 -13
  381. package/server/service/appliance/appliance-query.ts +11 -10
  382. package/server/service/application/application-mutation.ts +24 -18
  383. package/server/service/application/application-query.ts +20 -17
  384. package/server/service/domain-generator/domain-generator-mutation.ts +15 -10
  385. package/server/service/granted-role/granted-role-mutation.ts +15 -13
  386. package/server/service/granted-role/granted-role-query.ts +12 -10
  387. package/server/service/invitation/invitation-mutation.ts +7 -5
  388. package/server/service/invitation/invitation-query.ts +6 -4
  389. package/server/service/login-history/login-history-query.ts +13 -11
  390. package/server/service/login-history/login-history.ts +5 -4
  391. package/server/service/partner/partner-mutation.ts +10 -9
  392. package/server/service/partner/partner-query.ts +10 -10
  393. package/server/service/privilege/privilege-directive.ts +1 -3
  394. package/server/service/privilege/privilege-mutation.ts +15 -9
  395. package/server/service/privilege/privilege-query.ts +7 -7
  396. package/server/service/role/role-mutation.ts +18 -11
  397. package/server/service/role/role-query.ts +18 -16
  398. package/server/service/user/user-mutation.ts +39 -34
  399. package/server/service/user/user-query.ts +29 -21
  400. package/server/service/user/user.ts +12 -10
  401. package/server/types.ts +21 -0
  402. package/server/utils/check-user-belongs-domain.ts +2 -2
  403. package/server/utils/get-domain-users.ts +4 -2
  404. package/server/utils/get-user-domains.ts +8 -5
  405. package/things-factory.config.js +1 -1
  406. package/translations/en.json +2 -5
  407. package/translations/ko.json +5 -8
  408. package/translations/ms.json +2 -5
  409. package/translations/zh.json +2 -5
  410. package/client/actions/auth.js +0 -16
  411. package/client/index.js +0 -2
@@ -0,0 +1,23 @@
1
+ import { AnyAction } from 'redux'
2
+ import { ThunkAction } from 'redux-thunk'
3
+
4
+ export const SET_PROFILE = 'SET-PROFILE'
5
+ export const SET_AUTH = 'SET-AUTH'
6
+
7
+ export const updateUser =
8
+ (user: any): ThunkAction<void, any, unknown, AnyAction> =>
9
+ (dispatch, getState) => {
10
+ dispatch({
11
+ type: SET_PROFILE,
12
+ user
13
+ })
14
+ }
15
+
16
+ export const updateAuthenticated =
17
+ (auth: { authenticated: boolean }): ThunkAction<void, any, unknown, AnyAction> =>
18
+ (dispatch, getState) => {
19
+ dispatch({
20
+ type: SET_AUTH,
21
+ auth
22
+ })
23
+ }
@@ -11,26 +11,42 @@ const HEADER_JSON = {
11
11
  'Content-Type': 'application/json',
12
12
  Accept: 'application/json'
13
13
  }
14
+ type AuthEventName = 'profile' | 'signin' | 'signout' | 'presignout' | 'passwordchange' | 'error'
15
+ type AuthEventHandler = (e?: { accessToken?: string; credential?: string; domains: any[]; domain: any }) => void
16
+ type AuthErrorHandler = (err: any) => void
14
17
 
15
18
  class ClientAuth {
16
- constructor() {
17
- this._event_listeners = {
18
- profile: [],
19
- signout: [],
20
- presignout: [],
21
- passwordchange: [],
22
- error: []
23
- }
19
+ private listeners: {
20
+ profile: AuthEventHandler[]
21
+ signout: AuthEventHandler[]
22
+ signin: AuthEventHandler[]
23
+ presignout: AuthEventHandler[]
24
+ passwordchange: AuthEventHandler[]
25
+ error: AuthErrorHandler[]
26
+ } = {
27
+ profile: [],
28
+ signout: [],
29
+ signin: [],
30
+ presignout: [],
31
+ passwordchange: [],
32
+ error: []
33
+ }
34
+
35
+ private authRequiredEventListener = this.onAuthRequired.bind(this)
36
+ private activateRequiredEventListener = this.onActivateRequired.bind(this)
37
+
38
+ private accessToken?: string
39
+ private _credential: any
40
+ // private domains: any[] = []
41
+ // private domain: any
24
42
 
25
- this._authRequiredEventListener = this.onAuthRequired.bind(this)
26
- document.addEventListener('auth-required', this._authRequiredEventListener)
27
-
28
- this._activateRequiredEventListener = this.onActivateRequired.bind(this)
29
- document.addEventListener('activate-required', this._activateRequiredEventListener)
43
+ constructor() {
44
+ document.addEventListener('auth-required', this.authRequiredEventListener)
45
+ document.addEventListener('activate-required', this.activateRequiredEventListener)
30
46
  }
31
47
 
32
- on(event, handler) {
33
- var listeners = this._event_listeners[event]
48
+ on(event: AuthEventName, handler: AuthEventHandler | AuthErrorHandler) {
49
+ var listeners = this.listeners[event]
34
50
  if (listeners) {
35
51
  listeners.push(handler)
36
52
  } else {
@@ -38,8 +54,8 @@ class ClientAuth {
38
54
  }
39
55
  }
40
56
 
41
- off(event, handler) {
42
- var listeners = this._event_listeners[event]
57
+ off(event: AuthEventName, handler: AuthEventHandler | AuthErrorHandler) {
58
+ var listeners = this.listeners[event]
43
59
  if (listeners) {
44
60
  let idx = listeners.indexOf(handler)
45
61
  idx >= 0 && listeners.splice(idx, 1)
@@ -49,54 +65,62 @@ class ClientAuth {
49
65
  }
50
66
 
51
67
  dispose() {
52
- document.removeEventListener('auth-required', this._authRequiredEventListener)
53
- document.removeEventListener('activate-required', this._activateRequiredEventListener)
68
+ document.removeEventListener('auth-required', this.authRequiredEventListener)
69
+ document.removeEventListener('activate-required', this.activateRequiredEventListener)
54
70
 
55
- delete this._event_listeners
71
+ this.listeners = {
72
+ profile: [],
73
+ signin: [],
74
+ signout: [],
75
+ presignout: [],
76
+ passwordchange: [],
77
+ error: []
78
+ }
56
79
  }
57
80
 
58
- onProfileFetched({ credential, accessToken, domains, domain }) {
59
- this.credential = credential
60
- this.domains = domains
61
- this.domain = domain
81
+ private onProfileFetched({ credential, accessToken, domains, domain }) {
82
+ this._credential = credential
83
+ // this.domains = domains
84
+ // this.domain = domain
85
+
62
86
  if (accessToken && !this.accessToken) {
63
87
  /*
64
88
  기존에 세션을 가지거나, 액세스토큰으로 인증된 경우,
65
89
  이 경우는 signin 이벤트리스너들을 호출해서 authenticated 상태로 되도록 유도한다.
66
90
  */
67
91
  this.accessToken = accessToken
68
- this._event_listeners.signin.forEach(handler => handler({ accessToken, domains, domain }))
92
+ this.listeners.signin.forEach(handler => handler({ accessToken, domains, domain }))
69
93
  }
70
94
  accessToken && (this.accessToken = accessToken)
71
- this._event_listeners.profile.forEach(handler => handler({ credential, domains, domain }))
95
+ this.listeners.profile.forEach(handler => handler({ credential, domains, domain }))
72
96
  }
73
97
 
74
- async onPreSignout() {
75
- for (let onpresignout of this._event_listeners.presignout) {
98
+ private async onPreSignout() {
99
+ for (let onpresignout of this.listeners.presignout) {
76
100
  await onpresignout()
77
101
  }
78
102
  }
79
103
 
80
- onAuthError(error) {
104
+ private onAuthError(error) {
81
105
  /* signin, signup 과정에서 에러가 발생한 경우 */
82
- this._event_listeners.error.forEach(handler => handler(error))
106
+ this.listeners?.error.forEach(handler => handler(error))
83
107
  }
84
108
 
85
- onPasswordChanged(result) {
109
+ private onPasswordChanged(result) {
86
110
  //event is passwordchange, handler is result
87
- this._event_listeners.passwordchange.forEach(handler => handler(result))
111
+ this.listeners?.passwordchange.forEach(handler => handler(result))
88
112
  }
89
113
 
90
- onAuthRequired(e) {
114
+ private onAuthRequired(e) {
91
115
  console.warn('authentication required')
92
- let url = new URL(window.location)
116
+ let url = new URL(window.location.href)
93
117
  url.pathname = '/auth/signin'
94
118
  url.searchParams.append('redirect_to', window.location.href)
95
119
 
96
- window.location = url
120
+ window.location.href = url.href
97
121
  }
98
122
 
99
- onActivateRequired(e) {
123
+ private onActivateRequired(e) {
100
124
  console.warn('activate required')
101
125
  var params = new URLSearchParams()
102
126
  params.append('email', e.email)
@@ -104,6 +128,10 @@ class ClientAuth {
104
128
  window.location.replace(`/auth/activate?${params}`)
105
129
  }
106
130
 
131
+ get credential() {
132
+ return this._credential
133
+ }
134
+
107
135
  route(path, redirected) {
108
136
  /* history에 남긴다. redirected된 상태임을 남긴다. */
109
137
  const location = window.location
@@ -179,6 +207,7 @@ class ClientAuth {
179
207
  try {
180
208
  var searchParams = new URLSearchParams(location.search)
181
209
  var token = searchParams.get('token')
210
+ var headers = JSON.parse(JSON.stringify(HEADER_JSON))
182
211
 
183
212
  if (token) {
184
213
  headers.authorization = `Bearer ${token}`
@@ -187,7 +216,7 @@ class ClientAuth {
187
216
  const response = await fetch('/auth/profile', {
188
217
  method: 'GET',
189
218
  credentials: 'include',
190
- headers: HEADER_JSON
219
+ headers
191
220
  })
192
221
 
193
222
  if (response.ok) {
@@ -206,34 +235,12 @@ class ClientAuth {
206
235
  })
207
236
 
208
237
  return
209
- } else {
210
- /*
211
- * profile() is called only for triggering server side authentication routing.
212
- * so, don't need to notify as an error
213
- */
214
- // this.onAuthError({
215
- // message: await response.text()
216
- // })
217
238
  }
218
239
  } catch (e) {
219
240
  this.onAuthError(e)
220
241
  }
221
242
  }
222
243
 
223
- async join() {
224
- const response = await fetch('/auth/signout', {
225
- method: 'POST',
226
- credentials: 'include',
227
- headers: HEADER_JSON
228
- })
229
-
230
- if (response.ok) {
231
- debug
232
- } else {
233
- throw new Error(await response.text())
234
- }
235
- }
236
-
237
244
  async signout() {
238
245
  await this.onPreSignout()
239
246
 
@@ -1,4 +1,5 @@
1
- import { store, updateDomains } from '@things-factory/shell'
1
+ import { store, updateDomains } from '@operato/shell'
2
+
2
3
  import { updateAuthenticated, updateUser } from './actions/auth'
3
4
  import { auth } from './auth'
4
5
  import reducerAuth from './reducers/auth'
@@ -12,10 +13,10 @@ export default function bootstrap() {
12
13
  store.dispatch(
13
14
  updateAuthenticated({
14
15
  authenticated: true
15
- })
16
+ }) as any
16
17
  )
17
- store.dispatch(updateUser(credential))
18
- store.dispatch(updateDomains(domains, domain))
18
+ store.dispatch(updateUser(credential) as any)
19
+ store.dispatch(updateDomains(domains, domain) as any)
19
20
  })
20
21
 
21
22
  auth.on('passwordchange', result => {
@@ -0,0 +1 @@
1
+ export * from './auth'
@@ -1,4 +1,4 @@
1
- import { SET_AUTH, SET_PROFILE } from '../actions/auth.js'
1
+ import { SET_AUTH, SET_PROFILE } from '../actions/auth'
2
2
 
3
3
  const INITIAL_STATE = {
4
4
  authenticated: false,
@@ -13,5 +13,6 @@ module.exports = {
13
13
  history: 2,
14
14
  defaultPassword: false
15
15
  },
16
- accessTokenCookieKey: 'access_token'
16
+ accessTokenCookieKey: 'access_token',
17
+ applianceJwtExpiresIn: '1y'
17
18
  }
@@ -0,0 +1,8 @@
1
+ import { AnyAction } from 'redux';
2
+ import { ThunkAction } from 'redux-thunk';
3
+ export declare const SET_PROFILE = "SET-PROFILE";
4
+ export declare const SET_AUTH = "SET-AUTH";
5
+ export declare const updateUser: (user: any) => ThunkAction<void, any, unknown, AnyAction>;
6
+ export declare const updateAuthenticated: (auth: {
7
+ authenticated: boolean;
8
+ }) => ThunkAction<void, any, unknown, AnyAction>;
@@ -0,0 +1,15 @@
1
+ export const SET_PROFILE = 'SET-PROFILE';
2
+ export const SET_AUTH = 'SET-AUTH';
3
+ export const updateUser = (user) => (dispatch, getState) => {
4
+ dispatch({
5
+ type: SET_PROFILE,
6
+ user
7
+ });
8
+ };
9
+ export const updateAuthenticated = (auth) => (dispatch, getState) => {
10
+ dispatch({
11
+ type: SET_AUTH,
12
+ auth
13
+ });
14
+ };
15
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../client/actions/auth.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAA;AACxC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAA;AAElC,MAAM,CAAC,MAAM,UAAU,GACrB,CAAC,IAAS,EAA8C,EAAE,CAC1D,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;IACrB,QAAQ,CAAC;QACP,IAAI,EAAE,WAAW;QACjB,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAC9B,CAAC,IAAgC,EAA8C,EAAE,CACjF,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;IACrB,QAAQ,CAAC;QACP,IAAI,EAAE,QAAQ;QACd,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import { AnyAction } from 'redux'\nimport { ThunkAction } from 'redux-thunk'\n\nexport const SET_PROFILE = 'SET-PROFILE'\nexport const SET_AUTH = 'SET-AUTH'\n\nexport const updateUser =\n (user: any): ThunkAction<void, any, unknown, AnyAction> =>\n (dispatch, getState) => {\n dispatch({\n type: SET_PROFILE,\n user\n })\n }\n\nexport const updateAuthenticated =\n (auth: { authenticated: boolean }): ThunkAction<void, any, unknown, AnyAction> =>\n (dispatch, getState) => {\n dispatch({\n type: SET_AUTH,\n auth\n })\n }\n"]}
@@ -0,0 +1,34 @@
1
+ declare type AuthEventName = 'profile' | 'signin' | 'signout' | 'presignout' | 'passwordchange' | 'error';
2
+ declare type AuthEventHandler = (e?: {
3
+ accessToken?: string;
4
+ credential?: string;
5
+ domains: any[];
6
+ domain: any;
7
+ }) => void;
8
+ declare type AuthErrorHandler = (err: any) => void;
9
+ declare class ClientAuth {
10
+ private listeners;
11
+ private authRequiredEventListener;
12
+ private activateRequiredEventListener;
13
+ private accessToken?;
14
+ private _credential;
15
+ constructor();
16
+ on(event: AuthEventName, handler: AuthEventHandler | AuthErrorHandler): void;
17
+ off(event: AuthEventName, handler: AuthEventHandler | AuthErrorHandler): void;
18
+ dispose(): void;
19
+ private onProfileFetched;
20
+ private onPreSignout;
21
+ private onAuthError;
22
+ private onPasswordChanged;
23
+ private onAuthRequired;
24
+ private onActivateRequired;
25
+ get credential(): any;
26
+ route(path: any, redirected: any): void;
27
+ updateProfile(formProps: any): Promise<string>;
28
+ changePassword(formProps: any): Promise<void>;
29
+ deleteUser(params: any): Promise<string>;
30
+ profile(): Promise<void>;
31
+ signout(): Promise<void>;
32
+ }
33
+ export declare const auth: ClientAuth;
34
+ export {};
@@ -0,0 +1,209 @@
1
+ /* [ AUTH PATH ]
2
+ signinPath = '/auth/signin'
3
+ signoutPath = '/auth/signout'
4
+ profilePath = '/auth/profile'
5
+ updateProfilePath = '/auth/update-profile'
6
+ changepassPath = '/auth/change-pass'
7
+ deleteUserPath = '/auth/delete-user'
8
+ */
9
+ const HEADER_JSON = {
10
+ 'Content-Type': 'application/json',
11
+ Accept: 'application/json'
12
+ };
13
+ class ClientAuth {
14
+ // private domains: any[] = []
15
+ // private domain: any
16
+ constructor() {
17
+ this.listeners = {
18
+ profile: [],
19
+ signout: [],
20
+ signin: [],
21
+ presignout: [],
22
+ passwordchange: [],
23
+ error: []
24
+ };
25
+ this.authRequiredEventListener = this.onAuthRequired.bind(this);
26
+ this.activateRequiredEventListener = this.onActivateRequired.bind(this);
27
+ document.addEventListener('auth-required', this.authRequiredEventListener);
28
+ document.addEventListener('activate-required', this.activateRequiredEventListener);
29
+ }
30
+ on(event, handler) {
31
+ var listeners = this.listeners[event];
32
+ if (listeners) {
33
+ listeners.push(handler);
34
+ }
35
+ else {
36
+ console.log('unknown event', event);
37
+ }
38
+ }
39
+ off(event, handler) {
40
+ var listeners = this.listeners[event];
41
+ if (listeners) {
42
+ let idx = listeners.indexOf(handler);
43
+ idx >= 0 && listeners.splice(idx, 1);
44
+ }
45
+ else {
46
+ console.log('unknown event', event);
47
+ }
48
+ }
49
+ dispose() {
50
+ document.removeEventListener('auth-required', this.authRequiredEventListener);
51
+ document.removeEventListener('activate-required', this.activateRequiredEventListener);
52
+ this.listeners = {
53
+ profile: [],
54
+ signin: [],
55
+ signout: [],
56
+ presignout: [],
57
+ passwordchange: [],
58
+ error: []
59
+ };
60
+ }
61
+ onProfileFetched({ credential, accessToken, domains, domain }) {
62
+ this._credential = credential;
63
+ // this.domains = domains
64
+ // this.domain = domain
65
+ if (accessToken && !this.accessToken) {
66
+ /*
67
+ 기존에 세션을 가지거나, 액세스토큰으로 인증된 경우,
68
+ 이 경우는 signin 이벤트리스너들을 호출해서 authenticated 상태로 되도록 유도한다.
69
+ */
70
+ this.accessToken = accessToken;
71
+ this.listeners.signin.forEach(handler => handler({ accessToken, domains, domain }));
72
+ }
73
+ accessToken && (this.accessToken = accessToken);
74
+ this.listeners.profile.forEach(handler => handler({ credential, domains, domain }));
75
+ }
76
+ async onPreSignout() {
77
+ for (let onpresignout of this.listeners.presignout) {
78
+ await onpresignout();
79
+ }
80
+ }
81
+ onAuthError(error) {
82
+ var _a;
83
+ /* signin, signup 과정에서 에러가 발생한 경우 */
84
+ (_a = this.listeners) === null || _a === void 0 ? void 0 : _a.error.forEach(handler => handler(error));
85
+ }
86
+ onPasswordChanged(result) {
87
+ var _a;
88
+ //event is passwordchange, handler is result
89
+ (_a = this.listeners) === null || _a === void 0 ? void 0 : _a.passwordchange.forEach(handler => handler(result));
90
+ }
91
+ onAuthRequired(e) {
92
+ console.warn('authentication required');
93
+ let url = new URL(window.location.href);
94
+ url.pathname = '/auth/signin';
95
+ url.searchParams.append('redirect_to', window.location.href);
96
+ window.location.href = url.href;
97
+ }
98
+ onActivateRequired(e) {
99
+ console.warn('activate required');
100
+ var params = new URLSearchParams();
101
+ params.append('email', e.email);
102
+ window.location.replace(`/auth/activate?${params}`);
103
+ }
104
+ get credential() {
105
+ return this._credential;
106
+ }
107
+ route(path, redirected) {
108
+ /* history에 남긴다. redirected된 상태임을 남긴다. */
109
+ const location = window.location;
110
+ const origin = location.origin || location.protocol + '//' + location.host;
111
+ const href = `${origin}${path}`;
112
+ if (location.pathname === path)
113
+ return;
114
+ // popstate 이벤트가 history.back() 에서만 발생하므로
115
+ // 히스토리에 두번을 넣고 back()을 호출하는 편법을 사용함.
116
+ // forward history가 한번 남는 문제가 있으나 signin 프로세스 중에만 발생하므로 큰 문제는 아님.
117
+ // 이 로직은 login process가 어플리케이션 구조에 종속되는 것을 최소화하기 위함임.
118
+ // 예를 들면, redux 구조에 들어가지 않아도 로그인 프로세스가 동작하도록 한 것임.
119
+ window.history.pushState({ redirected }, '', href);
120
+ window.history.pushState({}, '', href);
121
+ window.history.back();
122
+ }
123
+ async updateProfile(formProps) {
124
+ const response = await fetch('/auth/update-profile', {
125
+ method: 'POST',
126
+ credentials: 'include',
127
+ headers: HEADER_JSON,
128
+ body: JSON.stringify(formProps)
129
+ });
130
+ const message = await response.text();
131
+ if (response.ok) {
132
+ return message;
133
+ }
134
+ throw new Error(message);
135
+ }
136
+ async changePassword(formProps) {
137
+ try {
138
+ const response = await fetch('/auth/change-pass', {
139
+ method: 'POST',
140
+ credentials: 'include',
141
+ headers: HEADER_JSON,
142
+ body: JSON.stringify(formProps)
143
+ });
144
+ const message = await response.text();
145
+ if (response.ok) {
146
+ this.onPasswordChanged({ message });
147
+ }
148
+ else {
149
+ this.onAuthError({ message });
150
+ }
151
+ }
152
+ catch (e) {
153
+ this.onAuthError(e);
154
+ }
155
+ }
156
+ async deleteUser(params) {
157
+ const response = await fetch('/auth/delete-user', {
158
+ method: 'POST',
159
+ credentials: 'include',
160
+ headers: HEADER_JSON,
161
+ body: JSON.stringify(params)
162
+ });
163
+ const message = await response.text();
164
+ if (response.ok) {
165
+ return message;
166
+ }
167
+ else {
168
+ throw new Error(message);
169
+ }
170
+ }
171
+ async profile() {
172
+ try {
173
+ var searchParams = new URLSearchParams(location.search);
174
+ var token = searchParams.get('token');
175
+ var headers = JSON.parse(JSON.stringify(HEADER_JSON));
176
+ if (token) {
177
+ headers.authorization = `Bearer ${token}`;
178
+ }
179
+ const response = await fetch('/auth/profile', {
180
+ method: 'GET',
181
+ credentials: 'include',
182
+ headers
183
+ });
184
+ if (response.ok) {
185
+ if (response.redirected) {
186
+ location.href = response.url;
187
+ return;
188
+ }
189
+ const data = await response.json();
190
+ this.onProfileFetched({
191
+ credential: data.user,
192
+ accessToken: data.token,
193
+ domains: data.domains,
194
+ domain: data.domain
195
+ });
196
+ return;
197
+ }
198
+ }
199
+ catch (e) {
200
+ this.onAuthError(e);
201
+ }
202
+ }
203
+ async signout() {
204
+ await this.onPreSignout();
205
+ window.location.href = '/auth/signout';
206
+ }
207
+ }
208
+ export const auth = new ClientAuth();
209
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../client/auth.ts"],"names":[],"mappings":"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","sourcesContent":["/* [ AUTH PATH ]\n signinPath = '/auth/signin'\n signoutPath = '/auth/signout'\n profilePath = '/auth/profile'\n updateProfilePath = '/auth/update-profile'\n changepassPath = '/auth/change-pass'\n deleteUserPath = '/auth/delete-user'\n*/\n\nconst HEADER_JSON = {\n 'Content-Type': 'application/json',\n Accept: 'application/json'\n}\ntype AuthEventName = 'profile' | 'signin' | 'signout' | 'presignout' | 'passwordchange' | 'error'\ntype AuthEventHandler = (e?: { accessToken?: string; credential?: string; domains: any[]; domain: any }) => void\ntype AuthErrorHandler = (err: any) => void\n\nclass ClientAuth {\n private listeners: {\n profile: AuthEventHandler[]\n signout: AuthEventHandler[]\n signin: AuthEventHandler[]\n presignout: AuthEventHandler[]\n passwordchange: AuthEventHandler[]\n error: AuthErrorHandler[]\n } = {\n profile: [],\n signout: [],\n signin: [],\n presignout: [],\n passwordchange: [],\n error: []\n }\n\n private authRequiredEventListener = this.onAuthRequired.bind(this)\n private activateRequiredEventListener = this.onActivateRequired.bind(this)\n\n private accessToken?: string\n private _credential: any\n // private domains: any[] = []\n // private domain: any\n\n constructor() {\n document.addEventListener('auth-required', this.authRequiredEventListener)\n document.addEventListener('activate-required', this.activateRequiredEventListener)\n }\n\n on(event: AuthEventName, handler: AuthEventHandler | AuthErrorHandler) {\n var listeners = this.listeners[event]\n if (listeners) {\n listeners.push(handler)\n } else {\n console.log('unknown event', event)\n }\n }\n\n off(event: AuthEventName, handler: AuthEventHandler | AuthErrorHandler) {\n var listeners = this.listeners[event]\n if (listeners) {\n let idx = listeners.indexOf(handler)\n idx >= 0 && listeners.splice(idx, 1)\n } else {\n console.log('unknown event', event)\n }\n }\n\n dispose() {\n document.removeEventListener('auth-required', this.authRequiredEventListener)\n document.removeEventListener('activate-required', this.activateRequiredEventListener)\n\n this.listeners = {\n profile: [],\n signin: [],\n signout: [],\n presignout: [],\n passwordchange: [],\n error: []\n }\n }\n\n private onProfileFetched({ credential, accessToken, domains, domain }) {\n this._credential = credential\n // this.domains = domains\n // this.domain = domain\n\n if (accessToken && !this.accessToken) {\n /*\n 기존에 세션을 가지거나, 액세스토큰으로 인증된 경우,\n 이 경우는 signin 이벤트리스너들을 호출해서 authenticated 상태로 되도록 유도한다.\n */\n this.accessToken = accessToken\n this.listeners.signin.forEach(handler => handler({ accessToken, domains, domain }))\n }\n accessToken && (this.accessToken = accessToken)\n this.listeners.profile.forEach(handler => handler({ credential, domains, domain }))\n }\n\n private async onPreSignout() {\n for (let onpresignout of this.listeners.presignout) {\n await onpresignout()\n }\n }\n\n private onAuthError(error) {\n /* signin, signup 과정에서 에러가 발생한 경우 */\n this.listeners?.error.forEach(handler => handler(error))\n }\n\n private onPasswordChanged(result) {\n //event is passwordchange, handler is result\n this.listeners?.passwordchange.forEach(handler => handler(result))\n }\n\n private onAuthRequired(e) {\n console.warn('authentication required')\n let url = new URL(window.location.href)\n url.pathname = '/auth/signin'\n url.searchParams.append('redirect_to', window.location.href)\n\n window.location.href = url.href\n }\n\n private onActivateRequired(e) {\n console.warn('activate required')\n var params = new URLSearchParams()\n params.append('email', e.email)\n\n window.location.replace(`/auth/activate?${params}`)\n }\n\n get credential() {\n return this._credential\n }\n\n route(path, redirected) {\n /* history에 남긴다. redirected된 상태임을 남긴다. */\n const location = window.location\n const origin = location.origin || location.protocol + '//' + location.host\n const href = `${origin}${path}`\n\n if (location.pathname === path) return\n\n // popstate 이벤트가 history.back() 에서만 발생하므로\n // 히스토리에 두번을 넣고 back()을 호출하는 편법을 사용함.\n // forward history가 한번 남는 문제가 있으나 signin 프로세스 중에만 발생하므로 큰 문제는 아님.\n // 이 로직은 login process가 어플리케이션 구조에 종속되는 것을 최소화하기 위함임.\n // 예를 들면, redux 구조에 들어가지 않아도 로그인 프로세스가 동작하도록 한 것임.\n window.history.pushState({ redirected }, '', href)\n window.history.pushState({}, '', href)\n\n window.history.back()\n }\n\n async updateProfile(formProps) {\n const response = await fetch('/auth/update-profile', {\n method: 'POST',\n credentials: 'include',\n headers: HEADER_JSON,\n body: JSON.stringify(formProps)\n })\n\n const message = await response.text()\n if (response.ok) {\n return message\n }\n\n throw new Error(message)\n }\n\n async changePassword(formProps) {\n try {\n const response = await fetch('/auth/change-pass', {\n method: 'POST',\n credentials: 'include',\n headers: HEADER_JSON,\n body: JSON.stringify(formProps)\n })\n\n const message = await response.text()\n if (response.ok) {\n this.onPasswordChanged({ message })\n } else {\n this.onAuthError({ message })\n }\n } catch (e) {\n this.onAuthError(e)\n }\n }\n\n async deleteUser(params) {\n const response = await fetch('/auth/delete-user', {\n method: 'POST',\n credentials: 'include',\n headers: HEADER_JSON,\n body: JSON.stringify(params)\n })\n\n const message = await response.text()\n if (response.ok) {\n return message\n } else {\n throw new Error(message)\n }\n }\n\n async profile() {\n try {\n var searchParams = new URLSearchParams(location.search)\n var token = searchParams.get('token')\n var headers = JSON.parse(JSON.stringify(HEADER_JSON))\n\n if (token) {\n headers.authorization = `Bearer ${token}`\n }\n\n const response = await fetch('/auth/profile', {\n method: 'GET',\n credentials: 'include',\n headers\n })\n\n if (response.ok) {\n if (response.redirected) {\n location.href = response.url\n return\n }\n\n const data = await response.json()\n\n this.onProfileFetched({\n credential: data.user,\n accessToken: data.token,\n domains: data.domains,\n domain: data.domain\n })\n\n return\n }\n } catch (e) {\n this.onAuthError(e)\n }\n }\n\n async signout() {\n await this.onPreSignout()\n\n window.location.href = '/auth/signout'\n }\n}\n\nexport const auth = new ClientAuth()\n"]}
@@ -0,0 +1 @@
1
+ export default function bootstrap(): void;
@@ -0,0 +1,34 @@
1
+ import { store, updateDomains } from '@operato/shell';
2
+ import { updateAuthenticated, updateUser } from './actions/auth';
3
+ import { auth } from './auth';
4
+ import reducerAuth from './reducers/auth';
5
+ export default function bootstrap() {
6
+ store.addReducers({
7
+ auth: reducerAuth
8
+ });
9
+ auth.on('profile', ({ credential, domains, domain }) => {
10
+ store.dispatch(updateAuthenticated({
11
+ authenticated: true
12
+ }));
13
+ store.dispatch(updateUser(credential));
14
+ store.dispatch(updateDomains(domains, domain));
15
+ });
16
+ auth.on('passwordchange', result => {
17
+ let message = result.message;
18
+ document.dispatchEvent(new CustomEvent('notify', {
19
+ detail: {
20
+ level: result.error ? 'error' : 'info',
21
+ message
22
+ }
23
+ }));
24
+ });
25
+ auth.on('error', ex => {
26
+ document.dispatchEvent(new CustomEvent('notify', {
27
+ detail: {
28
+ level: 'error',
29
+ message: ex.message
30
+ }
31
+ }));
32
+ });
33
+ }
34
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAErD,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,WAAW,MAAM,iBAAiB,CAAA;AAEzC,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,KAAK,CAAC,WAAW,CAAC;QAChB,IAAI,EAAE,WAAW;KAClB,CAAC,CAAA;IAEF,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QACrD,KAAK,CAAC,QAAQ,CACZ,mBAAmB,CAAC;YAClB,aAAa,EAAE,IAAI;SACpB,CAAQ,CACV,CAAA;QACD,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAQ,CAAC,CAAA;QAC7C,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAQ,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE;QACjC,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAE5B,QAAQ,CAAC,aAAa,CACpB,IAAI,WAAW,CAAC,QAAQ,EAAE;YACxB,MAAM,EAAE;gBACN,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;gBACtC,OAAO;aACR;SACF,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE;QACpB,QAAQ,CAAC,aAAa,CACpB,IAAI,WAAW,CAAC,QAAQ,EAAE;YACxB,MAAM,EAAE;gBACN,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,EAAE,CAAC,OAAO;aACpB;SACF,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { store, updateDomains } from '@operato/shell'\n\nimport { updateAuthenticated, updateUser } from './actions/auth'\nimport { auth } from './auth'\nimport reducerAuth from './reducers/auth'\n\nexport default function bootstrap() {\n store.addReducers({\n auth: reducerAuth\n })\n\n auth.on('profile', ({ credential, domains, domain }) => {\n store.dispatch(\n updateAuthenticated({\n authenticated: true\n }) as any\n )\n store.dispatch(updateUser(credential) as any)\n store.dispatch(updateDomains(domains, domain) as any)\n })\n\n auth.on('passwordchange', result => {\n let message = result.message\n\n document.dispatchEvent(\n new CustomEvent('notify', {\n detail: {\n level: result.error ? 'error' : 'info',\n message\n }\n })\n )\n })\n\n auth.on('error', ex => {\n document.dispatchEvent(\n new CustomEvent('notify', {\n detail: {\n level: 'error',\n message: ex.message\n }\n })\n )\n })\n}\n"]}
@@ -0,0 +1 @@
1
+ export * from './auth';
@@ -0,0 +1,2 @@
1
+ export * from './auth';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA","sourcesContent":["export * from './auth'\n"]}
@@ -0,0 +1,14 @@
1
+ declare const auth: (state: {
2
+ authenticated: boolean;
3
+ accessToken: string;
4
+ user: null;
5
+ } | undefined, action: any) => {
6
+ authenticated: any;
7
+ accessToken: any;
8
+ user: null;
9
+ } | {
10
+ user: any;
11
+ authenticated: boolean;
12
+ accessToken: string;
13
+ };
14
+ export default auth;