@things-factory/auth-base 4.0.11 → 4.0.15

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.
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.authCheckinRouter = void 0;
7
7
  const env_1 = require("@things-factory/env");
8
+ const accepts_1 = require("../utils/accepts");
8
9
  const shell_1 = require("@things-factory/shell");
9
10
  const koa_router_1 = __importDefault(require("koa-router"));
10
11
  const login_history_1 = require("../service/login-history/login-history");
@@ -14,52 +15,82 @@ const debug = require('debug')('things-factory:auth-base:checkin-router');
14
15
  const domainType = env_1.config.get('domainType');
15
16
  exports.authCheckinRouter = new koa_router_1.default();
16
17
  exports.authCheckinRouter.get('/auth/checkin/:subdomain?', async (context, next) => {
17
- const { t } = context;
18
+ const { request, t } = context;
19
+ const header = request.header;
18
20
  const { user } = context.state;
19
- const { redirect_to: redirectTo = '/' } = context.query;
20
- var { subdomain } = context.params;
21
- var message;
22
- debug('get:/auth/checkin/:subdomain?', subdomain, redirectTo);
23
- try {
24
- var domains = await (0, get_user_domains_1.getUserDomains)(user);
25
- if (domainType) {
26
- domains = domains.filter(d => d.extType == domainType);
27
- }
28
- if (!subdomain) {
29
- /* try to find domain from redirectTo path */
30
- subdomain = (0, shell_1.findSubdomainFromPath)(context, redirectTo);
31
- }
32
- let checkInDomain;
33
- if (subdomain) {
34
- checkInDomain = domains.find(d => d.subdomain == subdomain);
21
+ let { subdomain } = context.params;
22
+ let domains = await (0, get_user_domains_1.getUserDomains)(user);
23
+ if (domainType)
24
+ domains = domains.filter(d => d.extType == domainType);
25
+ if (!(0, accepts_1.accepts)(header.accept, ['text/html', '*/*'])) {
26
+ // When request expects non html response
27
+ try {
28
+ debug('get:/auth/checkin/:subdomain?', subdomain);
29
+ if (!subdomain)
30
+ throw new Error(t('error.domain not specified', { subdomain })); // When params doesn't have subdomain
31
+ const checkInDomain = domains.find((d) => d.subdomain === subdomain); // When no matched domain with subdomain
35
32
  if (!checkInDomain)
36
- message = t('error.domain not allowed', { subdomain });
33
+ throw new Error(t('error.domain not specified', { subdomain }));
34
+ await checkIn(checkInDomain, null, context);
35
+ context.body = true;
37
36
  }
38
- else if (domains.length === 1) {
39
- checkInDomain = domains[0];
37
+ catch (e) {
38
+ (0, access_token_cookie_1.clearAccessTokenCookie)(context);
39
+ throw e;
40
40
  }
41
- if (checkInDomain)
42
- return await checkIn(checkInDomain, redirectTo, context);
43
- await context.render('auth-page', {
44
- pageElement: 'auth-checkin',
45
- elementScript: '/auth/checkin.js',
46
- data: {
47
- user,
48
- domains,
49
- domainType,
50
- redirectTo,
51
- message
41
+ }
42
+ else {
43
+ // When request expects html response
44
+ const { redirect_to: redirectTo = '/' } = context.query;
45
+ try {
46
+ let message;
47
+ debug('get:/auth/checkin/:subdomain?', subdomain, redirectTo);
48
+ if (!subdomain) {
49
+ /* try to find domain from redirectTo path */
50
+ subdomain = (0, shell_1.findSubdomainFromPath)(context, redirectTo);
51
+ }
52
+ let checkInDomain;
53
+ if (subdomain) {
54
+ checkInDomain = domains.find(d => d.subdomain == subdomain);
55
+ if (!checkInDomain)
56
+ message = t('error.domain not allowed', { subdomain });
57
+ }
58
+ else if (domains.length === 1) {
59
+ checkInDomain = domains[0];
52
60
  }
53
- });
61
+ if (checkInDomain)
62
+ return await checkIn(checkInDomain, redirectTo, context);
63
+ await context.render('auth-page', {
64
+ pageElement: 'auth-checkin',
65
+ elementScript: '/auth/checkin.js',
66
+ data: {
67
+ user,
68
+ domains,
69
+ domainType,
70
+ redirectTo,
71
+ message
72
+ }
73
+ });
74
+ }
75
+ catch (e) {
76
+ (0, access_token_cookie_1.clearAccessTokenCookie)(context);
77
+ context.redirect(`/auth/signin?email=${encodeURIComponent(user.email)}&redirect_to=${encodeURIComponent(redirectTo)}`);
78
+ }
54
79
  }
55
- catch (e) {
56
- (0, access_token_cookie_1.clearAccessTokenCookie)(context);
57
- context.redirect(`/auth/signin?email=${encodeURIComponent(user.email)}&redirect_to=${encodeURIComponent(redirectTo)}`);
80
+ });
81
+ exports.authCheckinRouter.get('/auth/domains', async (context) => {
82
+ const { user } = context.state;
83
+ var domains = await (0, get_user_domains_1.getUserDomains)(user);
84
+ if (domainType) {
85
+ domains = domains.filter(d => d.extType == domainType);
58
86
  }
87
+ context.body = domains;
59
88
  });
60
89
  async function checkIn(checkInDomain, redirectTo, context) {
61
90
  const user = context.state.user;
62
91
  await login_history_1.LoginHistory.stamp(checkInDomain, user, context.req.connection.remoteAddress);
63
- return context.redirect((0, shell_1.getRedirectSubdomainPath)(context, checkInDomain.subdomain, redirectTo));
92
+ if (redirectTo) {
93
+ return context.redirect((0, shell_1.getRedirectSubdomainPath)(context, checkInDomain.subdomain, redirectTo));
94
+ }
64
95
  }
65
96
  //# sourceMappingURL=auth-checkin-router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-checkin-router.js","sourceRoot":"","sources":["../../server/router/auth-checkin-router.ts"],"names":[],"mappings":";;;;;;AAAA,6CAA4C;AAC5C,iDAA+F;AAC/F,4DAA+B;AAC/B,0EAAqE;AAErE,sEAAqE;AACrE,gEAA0D;AAE1D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,yCAAyC,CAAC,CAAA;AACzE,MAAM,UAAU,GAAG,YAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;AAE9B,QAAA,iBAAiB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAE7C,yBAAiB,CAAC,GAAG,CAAC,2BAA2B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACzE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAA;IACrB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC9B,MAAM,EAAE,WAAW,EAAE,UAAU,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IACvD,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;IAElC,IAAI,OAAO,CAAA;IAEX,KAAK,CAAC,+BAA+B,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;IAE7D,IAAI;QACF,IAAI,OAAO,GAAG,MAAM,IAAA,iCAAc,EAAC,IAAI,CAAC,CAAA;QACxC,IAAI,UAAU,EAAE;YACd,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,CAAA;SACvD;QAED,IAAI,CAAC,SAAS,EAAE;YACd,6CAA6C;YAC7C,SAAS,GAAG,IAAA,6BAAqB,EAAC,OAAO,EAAE,UAAU,CAAC,CAAA;SACvD;QAED,IAAI,aAAqB,CAAA;QAEzB,IAAI,SAAS,EAAE;YACb,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,CAAA;YAC3D,IAAI,CAAC,aAAa;gBAAE,OAAO,GAAG,CAAC,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;SAC3E;aAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;SAC3B;QAED,IAAI,aAAa;YAAE,OAAO,MAAM,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QAE3E,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;YAChC,WAAW,EAAE,cAAc;YAC3B,aAAa,EAAE,kBAAkB;YACjC,IAAI,EAAE;gBACJ,IAAI;gBACJ,OAAO;gBACP,UAAU;gBACV,UAAU;gBACV,OAAO;aACR;SACF,CAAC,CAAA;KACH;IAAC,OAAO,CAAC,EAAE;QACV,IAAA,4CAAsB,EAAC,OAAO,CAAC,CAAA;QAC/B,OAAO,CAAC,QAAQ,CACd,sBAAsB,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,CACrG,CAAA;KACF;AACH,CAAC,CAAC,CAAA;AAEF,KAAK,UAAU,OAAO,CAAC,aAAqB,EAAE,UAAkB,EAAE,OAAY;IAC5E,MAAM,IAAI,GAAS,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA;IACrC,MAAM,4BAAY,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;IACnF,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAA,gCAAwB,EAAC,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;AACjG,CAAC"}
1
+ {"version":3,"file":"auth-checkin-router.js","sourceRoot":"","sources":["../../server/router/auth-checkin-router.ts"],"names":[],"mappings":"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"}
@@ -260,6 +260,7 @@ __decorate([
260
260
  User = User_1 = __decorate([
261
261
  (0, typeorm_1.Entity)(),
262
262
  (0, typeorm_1.Index)('ix_user_0', (user) => [user.email], { unique: true }),
263
+ (0, typeorm_1.Index)('ix_user_1', (user) => [user.id], { unique: true }),
263
264
  (0, type_graphql_1.ObjectType)()
264
265
  ], User);
265
266
  exports.User = User;
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../server/service/user/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../server/service/user/user.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/auth-base",
3
- "version": "4.0.11",
3
+ "version": "4.0.15",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -27,10 +27,10 @@
27
27
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
28
28
  },
29
29
  "dependencies": {
30
- "@things-factory/email-base": "^4.0.11",
31
- "@things-factory/env": "^4.0.11",
32
- "@things-factory/i18n-base": "^4.0.11",
33
- "@things-factory/shell": "^4.0.11",
30
+ "@things-factory/email-base": "^4.0.15",
31
+ "@things-factory/env": "^4.0.15",
32
+ "@things-factory/i18n-base": "^4.0.15",
33
+ "@things-factory/shell": "^4.0.15",
34
34
  "jsonwebtoken": "^8.5.1",
35
35
  "koa-passport": "^4.1.4",
36
36
  "koa-session": "^6.0.0",
@@ -40,5 +40,5 @@
40
40
  "passport-local": "^1.0.0",
41
41
  "uuid": "^3.4.0"
42
42
  },
43
- "gitHead": "47745d8cdbe99f11d8d69bbcab3901c9771525a0"
43
+ "gitHead": "6271c88d67c5004b78623d6998b4ea773c76b730"
44
44
  }
@@ -1,4 +1,5 @@
1
1
  import { config } from '@things-factory/env'
2
+ import { accepts } from '../utils/accepts'
2
3
  import { Domain, findSubdomainFromPath, getRedirectSubdomainPath } from '@things-factory/shell'
3
4
  import Router from 'koa-router'
4
5
  import { LoginHistory } from '../service/login-history/login-history'
@@ -12,58 +13,87 @@ const domainType = config.get('domainType')
12
13
  export const authCheckinRouter = new Router()
13
14
 
14
15
  authCheckinRouter.get('/auth/checkin/:subdomain?', async (context, next) => {
15
- const { t } = context
16
+ const { request, t } = context
17
+ const header = request.header
16
18
  const { user } = context.state
17
- const { redirect_to: redirectTo = '/' } = context.query
18
- var { subdomain } = context.params
19
+ let { subdomain } = context.params
19
20
 
20
- var message
21
+ let domains: Domain[] = await getUserDomains(user)
22
+ if (domainType) domains = domains.filter(d => d.extType == domainType)
21
23
 
22
- debug('get:/auth/checkin/:subdomain?', subdomain, redirectTo)
24
+ if (!accepts(header.accept, ['text/html', '*/*'])) {
25
+ // When request expects non html response
26
+ try {
27
+ debug('get:/auth/checkin/:subdomain?', subdomain)
28
+ if (!subdomain) throw new Error(t('error.domain not specified', { subdomain })) // When params doesn't have subdomain
29
+ const checkInDomain: Domain | undefined = domains.find((d: Domain) => d.subdomain === subdomain) // When no matched domain with subdomain
30
+ if (!checkInDomain) throw new Error(t('error.domain not specified', { subdomain }))
23
31
 
24
- try {
25
- var domains = await getUserDomains(user)
26
- if (domainType) {
27
- domains = domains.filter(d => d.extType == domainType)
32
+ await checkIn(checkInDomain, null, context)
33
+ context.body = true
34
+ } catch (e) {
35
+ clearAccessTokenCookie(context)
36
+ throw e
28
37
  }
38
+ } else {
39
+ // When request expects html response
40
+ const { redirect_to: redirectTo = '/' } = context.query
29
41
 
30
- if (!subdomain) {
31
- /* try to find domain from redirectTo path */
32
- subdomain = findSubdomainFromPath(context, redirectTo)
33
- }
42
+ try {
43
+ let message: string
34
44
 
35
- let checkInDomain: Domain
45
+ debug('get:/auth/checkin/:subdomain?', subdomain, redirectTo)
36
46
 
37
- if (subdomain) {
38
- checkInDomain = domains.find(d => d.subdomain == subdomain)
39
- if (!checkInDomain) message = t('error.domain not allowed', { subdomain })
40
- } else if (domains.length === 1) {
41
- checkInDomain = domains[0]
42
- }
47
+ if (!subdomain) {
48
+ /* try to find domain from redirectTo path */
49
+ subdomain = findSubdomainFromPath(context, redirectTo)
50
+ }
43
51
 
44
- if (checkInDomain) return await checkIn(checkInDomain, redirectTo, context)
45
-
46
- await context.render('auth-page', {
47
- pageElement: 'auth-checkin',
48
- elementScript: '/auth/checkin.js',
49
- data: {
50
- user,
51
- domains,
52
- domainType,
53
- redirectTo,
54
- message
52
+ let checkInDomain: Domain
53
+ if (subdomain) {
54
+ checkInDomain = domains.find(d => d.subdomain == subdomain)
55
+ if (!checkInDomain) message = t('error.domain not allowed', { subdomain })
56
+ } else if (domains.length === 1) {
57
+ checkInDomain = domains[0]
55
58
  }
56
- })
57
- } catch (e) {
58
- clearAccessTokenCookie(context)
59
- context.redirect(
60
- `/auth/signin?email=${encodeURIComponent(user.email)}&redirect_to=${encodeURIComponent(redirectTo)}`
61
- )
59
+
60
+ if (checkInDomain) return await checkIn(checkInDomain, redirectTo, context)
61
+
62
+ await context.render('auth-page', {
63
+ pageElement: 'auth-checkin',
64
+ elementScript: '/auth/checkin.js',
65
+ data: {
66
+ user,
67
+ domains,
68
+ domainType,
69
+ redirectTo,
70
+ message
71
+ }
72
+ })
73
+ } catch (e) {
74
+ clearAccessTokenCookie(context)
75
+ context.redirect(
76
+ `/auth/signin?email=${encodeURIComponent(user.email)}&redirect_to=${encodeURIComponent(redirectTo)}`
77
+ )
78
+ }
62
79
  }
63
80
  })
64
81
 
65
- async function checkIn(checkInDomain: Domain, redirectTo: string, context: any): Promise<void> {
82
+ authCheckinRouter.get('/auth/domains', async context => {
83
+ const { user } = context.state
84
+ var domains = await getUserDomains(user)
85
+ if (domainType) {
86
+ domains = domains.filter(d => d.extType == domainType)
87
+ }
88
+
89
+ context.body = domains
90
+ })
91
+
92
+ async function checkIn(checkInDomain: Domain, redirectTo: string | null, context: any): Promise<void> {
66
93
  const user: User = context.state.user
67
94
  await LoginHistory.stamp(checkInDomain, user, context.req.connection.remoteAddress)
68
- return context.redirect(getRedirectSubdomainPath(context, checkInDomain.subdomain, redirectTo))
95
+
96
+ if (redirectTo) {
97
+ return context.redirect(getRedirectSubdomainPath(context, checkInDomain.subdomain, redirectTo))
98
+ }
69
99
  }
@@ -36,6 +36,7 @@ export enum UserStatus {
36
36
 
37
37
  @Entity()
38
38
  @Index('ix_user_0', (user: User) => [user.email], { unique: true })
39
+ @Index('ix_user_1', (user: User) => [user.id], { unique: true })
39
40
  @ObjectType()
40
41
  export class User {
41
42
  @PrimaryGeneratedColumn('uuid')
package/db.test.sqlite DELETED
Binary file