@things-factory/auth-base 9.0.0-beta.12 → 9.0.0-beta.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-client/auth.js +0 -3
- package/dist-client/auth.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/middlewares/domain-authenticate-middleware.js +0 -4
- package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
- package/dist-server/router/auth-checkin-router.js +8 -7
- package/dist-server/router/auth-checkin-router.js.map +1 -1
- package/dist-server/router/auth-private-process-router.js +12 -4
- package/dist-server/router/auth-private-process-router.js.map +1 -1
- package/dist-server/routes.js +2 -2
- package/dist-server/routes.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/dist-server/utils/access-token-cookie.js +0 -9
- package/dist-server/utils/access-token-cookie.js.map +1 -1
- package/dist-server/utils/get-user-domains.d.ts +1 -2
- package/dist-server/utils/get-user-domains.js +27 -23
- package/dist-server/utils/get-user-domains.js.map +1 -1
- package/package.json +6 -6
- package/dist-server/utils/get-domain-from-hostname.d.ts +0 -1
- package/dist-server/utils/get-domain-from-hostname.js +0 -9
- package/dist-server/utils/get-domain-from-hostname.js.map +0 -1
@@ -4,7 +4,6 @@ exports.getAccessTokenCookie = getAccessTokenCookie;
|
|
4
4
|
exports.setAccessTokenCookie = setAccessTokenCookie;
|
5
5
|
exports.setSessionAccessToken = setSessionAccessToken;
|
6
6
|
exports.clearAccessTokenCookie = clearAccessTokenCookie;
|
7
|
-
const shell_1 = require("@things-factory/shell");
|
8
7
|
const env_1 = require("@things-factory/env");
|
9
8
|
const max_age_js_1 = require("../constants/max-age.js");
|
10
9
|
const accessTokenCookieKey = env_1.config.get('accessTokenCookieKey', 'access_token');
|
@@ -20,10 +19,6 @@ function setAccessTokenCookie(context, token) {
|
|
20
19
|
maxAge: max_age_js_1.MAX_AGE,
|
21
20
|
sameSite: 'Lax'
|
22
21
|
};
|
23
|
-
const cookieDomain = (0, shell_1.getCookieDomainFromHostname)(context.hostname);
|
24
|
-
if (cookieDomain) {
|
25
|
-
cookie['domain'] = cookieDomain;
|
26
|
-
}
|
27
22
|
context.cookies.set(accessTokenCookieKey, token, cookie);
|
28
23
|
}
|
29
24
|
function setSessionAccessToken(context) {
|
@@ -42,10 +37,6 @@ function clearAccessTokenCookie(context) {
|
|
42
37
|
httpOnly: true,
|
43
38
|
sameSite: 'Lax'
|
44
39
|
};
|
45
|
-
const cookieDomain = (0, shell_1.getCookieDomainFromHostname)(context.hostname);
|
46
|
-
if (cookieDomain) {
|
47
|
-
cookie['domain'] = cookieDomain;
|
48
|
-
}
|
49
40
|
context.cookies.set(accessTokenCookieKey, '', cookie);
|
50
41
|
/*
|
51
42
|
* TODO clear i18next cookie as well - need to support domain
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"access-token-cookie.js","sourceRoot":"","sources":["../../server/utils/access-token-cookie.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"access-token-cookie.js","sourceRoot":"","sources":["../../server/utils/access-token-cookie.ts"],"names":[],"mappings":";;AAKA,oDAEC;AAED,oDAWC;AAED,sDASC;AAED,wDAgBC;AAjDD,6CAA4C;AAC5C,wDAAiD;AAEjD,MAAM,oBAAoB,GAAG,YAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAA;AAE/E,SAAgB,oBAAoB,CAAC,OAAO;;IAC1C,OAAO,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,0CAAE,GAAG,CAAC,oBAAoB,CAAC,CAAA;AACpD,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAO,EAAE,KAAK;IACjD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAE1B,IAAI,MAAM,GAAG;QACX,MAAM;QACN,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,oBAAO;QACf,QAAQ,EAAE,KAAK;KAChB,CAAA;IAED,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;AAC1D,CAAC;AAED,SAAgB,qBAAqB,CAAC,OAAO;IAC3C,0FAA0F;IAC1F,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE9B,OAAO,CAAC,OAAO,GAAG;QAChB,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,QAAQ,EAAE,IAAI,CAAC,IAAI;QACnB,MAAM,EAAE,IAAI,CAAC,KAAK;KACnB,CAAA;AACH,CAAC;AAED,SAAgB,sBAAsB,CAAC,OAAO;IAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAE1B,IAAI,MAAM,GAAG;QACX,MAAM;QACN,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CAAA;IAED,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACrD;;;OAGG;IACH,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IAC1C,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;AACxB,CAAC","sourcesContent":["import { config } from '@things-factory/env'\nimport { MAX_AGE } from '../constants/max-age.js'\n\nconst accessTokenCookieKey = config.get('accessTokenCookieKey', 'access_token')\n\nexport function getAccessTokenCookie(context) {\n return context?.cookies?.get(accessTokenCookieKey)\n}\n\nexport function setAccessTokenCookie(context, token) {\n const { secure } = context\n\n var cookie = {\n secure,\n httpOnly: true,\n maxAge: MAX_AGE,\n sameSite: 'Lax'\n }\n\n context.cookies.set(accessTokenCookieKey, token, cookie)\n}\n\nexport function setSessionAccessToken(context) {\n /* koa-session 을 사용하는 경우에는, cookie 직접 설정이 작동되지 않는다. 그런 경우에는 session에 설정해서 cookie를 변경한다. */\n const { user } = context.state\n\n context.session = {\n id: user.id,\n userType: user.type,\n status: user.state\n }\n}\n\nexport function clearAccessTokenCookie(context) {\n const { secure } = context\n\n var cookie = {\n secure,\n httpOnly: true,\n sameSite: 'Lax'\n }\n\n context.cookies.set(accessTokenCookieKey, '', cookie)\n /*\n * TODO clear i18next cookie as well - need to support domain\n * https://github.com/hatiolab/things-factory/issues/70\n */\n context.cookies.set('i18next', '', cookie)\n context.session = null\n}\n"]}
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import { Domain } from '@things-factory/shell';
|
2
2
|
import { User } from '../service/user/user.js';
|
3
|
-
export declare function getUserDomains(user: User): Promise<Partial<Domain>[]>;
|
4
|
-
export declare function getRoleBasedDomains(user: User): Promise<Partial<Domain>[]>;
|
3
|
+
export declare function getUserDomains(user: User, extType?: string): Promise<Partial<Domain>[]>;
|
5
4
|
export declare function getDomainsWithPrivilege(user: User, privilege: string, category: string): Promise<Partial<Domain>[]>;
|
6
5
|
export declare function getDomainsAsOwner(user: User): Promise<Partial<Domain>[]>;
|
@@ -1,12 +1,11 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getUserDomains = getUserDomains;
|
4
|
-
exports.getRoleBasedDomains = getRoleBasedDomains;
|
5
4
|
exports.getDomainsWithPrivilege = getDomainsWithPrivilege;
|
6
5
|
exports.getDomainsAsOwner = getDomainsAsOwner;
|
7
6
|
const shell_1 = require("@things-factory/shell");
|
8
7
|
const user_js_1 = require("../service/user/user.js");
|
9
|
-
async function getUserDomains(user) {
|
8
|
+
async function getUserDomains(user, extType) {
|
10
9
|
return (await (0, shell_1.getRepository)(shell_1.Domain)
|
11
10
|
.createQueryBuilder('DOMAIN')
|
12
11
|
.where(qb => {
|
@@ -31,31 +30,36 @@ async function getUserDomains(user) {
|
|
31
30
|
return 'DOMAIN.id IN ' + subQuery;
|
32
31
|
})
|
33
32
|
.orderBy('DOMAIN.name', 'ASC')
|
34
|
-
.getMany())
|
35
|
-
|
36
|
-
|
37
|
-
});
|
38
|
-
}
|
39
|
-
async function getRoleBasedDomains(user) {
|
40
|
-
return (await (0, shell_1.getRepository)(shell_1.Domain)
|
41
|
-
.createQueryBuilder('DOMAIN')
|
42
|
-
.where(qb => {
|
43
|
-
const subQuery = qb
|
44
|
-
.subQuery()
|
45
|
-
.distinct(true)
|
46
|
-
.select('DOMAIN.id')
|
47
|
-
.from(user_js_1.User, 'USER')
|
48
|
-
.leftJoin('USER.roles', 'ROLE')
|
49
|
-
.leftJoin('ROLE.domain', 'DOMAIN')
|
50
|
-
.where('USER.id = :userId', { userId: user.id })
|
51
|
-
.getQuery();
|
52
|
-
return 'DOMAIN.id IN ' + subQuery;
|
53
|
-
})
|
54
|
-
.getMany()).map(domain => {
|
33
|
+
.getMany())
|
34
|
+
.filter(domain => !extType || domain.extType == extType)
|
35
|
+
.map(domain => {
|
55
36
|
const { id, name, description, subdomain, extType, brandName, brandImage } = domain;
|
37
|
+
/* do not remove id column for result */
|
56
38
|
return { id, name, description, subdomain, extType, brandName, brandImage };
|
57
39
|
});
|
58
40
|
}
|
41
|
+
// export async function getRoleBasedDomains(user: User): Promise<Partial<Domain>[]> {
|
42
|
+
// return (
|
43
|
+
// await getRepository(Domain)
|
44
|
+
// .createQueryBuilder('DOMAIN')
|
45
|
+
// .where(qb => {
|
46
|
+
// const subQuery = qb
|
47
|
+
// .subQuery()
|
48
|
+
// .distinct(true)
|
49
|
+
// .select('DOMAIN.id')
|
50
|
+
// .from(User, 'USER')
|
51
|
+
// .leftJoin('USER.roles', 'ROLE')
|
52
|
+
// .leftJoin('ROLE.domain', 'DOMAIN')
|
53
|
+
// .where('USER.id = :userId', { userId: user.id })
|
54
|
+
// .getQuery()
|
55
|
+
// return 'DOMAIN.id IN ' + subQuery
|
56
|
+
// })
|
57
|
+
// .getMany()
|
58
|
+
// ).map(domain => {
|
59
|
+
// const { id, name, description, subdomain, extType, brandName, brandImage } = domain
|
60
|
+
// return { id, name, description, subdomain, extType, brandName, brandImage }
|
61
|
+
// })
|
62
|
+
// }
|
59
63
|
async function getDomainsWithPrivilege(user, privilege, category) {
|
60
64
|
return (await (0, shell_1.getRepository)(shell_1.Domain)
|
61
65
|
.createQueryBuilder('DOMAIN')
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get-user-domains.js","sourceRoot":"","sources":["../../server/utils/get-user-domains.ts"],"names":[],"mappings":";;AAMA,
|
1
|
+
{"version":3,"file":"get-user-domains.js","sourceRoot":"","sources":["../../server/utils/get-user-domains.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { User } from '../service/user/user.js'\n\nexport async function getUserDomains(user: User, extType?: string): Promise<Partial<Domain>[]> {\n return (\n await getRepository(Domain)\n .createQueryBuilder('DOMAIN')\n .where(qb => {\n const subQuery = qb\n .subQuery()\n .distinct(true)\n .select('DOMAIN.id')\n .from(User, 'USER')\n .leftJoin('USER.roles', 'ROLE')\n .leftJoin('ROLE.domain', 'DOMAIN')\n .where('USER.id = :userId', { userId: user.id })\n .getQuery()\n return 'DOMAIN.id IN ' + subQuery\n })\n .orWhere(qb => {\n const subQuery = qb\n .subQuery()\n .select('DOMAIN.id')\n .from(Domain, 'DOMAIN')\n .where('DOMAIN.owner = :owner', { owner: user.id })\n .getQuery()\n return 'DOMAIN.id IN ' + subQuery\n })\n .orderBy('DOMAIN.name', 'ASC')\n .getMany()\n )\n .filter(domain => !extType || domain.extType == extType)\n .map(domain => {\n const { id, name, description, subdomain, extType, brandName, brandImage } = domain\n /* do not remove id column for result */\n return { id, name, description, subdomain, extType, brandName, brandImage }\n })\n}\n\n// export async function getRoleBasedDomains(user: User): Promise<Partial<Domain>[]> {\n// return (\n// await getRepository(Domain)\n// .createQueryBuilder('DOMAIN')\n// .where(qb => {\n// const subQuery = qb\n// .subQuery()\n// .distinct(true)\n// .select('DOMAIN.id')\n// .from(User, 'USER')\n// .leftJoin('USER.roles', 'ROLE')\n// .leftJoin('ROLE.domain', 'DOMAIN')\n// .where('USER.id = :userId', { userId: user.id })\n// .getQuery()\n// return 'DOMAIN.id IN ' + subQuery\n// })\n// .getMany()\n// ).map(domain => {\n// const { id, name, description, subdomain, extType, brandName, brandImage } = domain\n// return { id, name, description, subdomain, extType, brandName, brandImage }\n// })\n// }\n\nexport async function getDomainsWithPrivilege(\n user: User,\n privilege: string,\n category: string\n): Promise<Partial<Domain>[]> {\n return (\n await getRepository(Domain)\n .createQueryBuilder('DOMAIN')\n .where(qb => {\n const subQuery = qb\n .subQuery()\n .distinct(true)\n .select('DOMAIN.id')\n .from(User, 'USER')\n .leftJoin('USER.roles', 'ROLE')\n .leftJoin('ROLE.domain', 'DOMAIN')\n .leftJoin('ROLE.privileges', 'PRIVILEGE')\n .where('USER.id = :userId', { userId: user.id })\n .andWhere('PRIVILEGE.name = :privilege', { privilege })\n .andWhere('PRIVILEGE.category = :category', { category })\n .getQuery()\n return 'DOMAIN.id IN ' + subQuery\n })\n .orWhere(qb => {\n const subQuery = qb\n .subQuery()\n .select('DOMAIN.id')\n .from(Domain, 'DOMAIN')\n .where('DOMAIN.owner = :owner', { owner: user.id })\n .getQuery()\n return 'DOMAIN.id IN ' + subQuery\n })\n .orderBy('DOMAIN.name', 'ASC')\n .getMany()\n ).map(domain => {\n const { id, name, description, subdomain, extType, brandName, brandImage } = domain\n return { id, name, description, subdomain, extType, brandName, brandImage }\n })\n}\n\nexport async function getDomainsAsOwner(user: User): Promise<Partial<Domain>[]> {\n return (\n await getRepository(Domain).find({\n where: { owner: user.id }\n })\n ).map(domain => {\n const { id, name, description, subdomain, extType, brandName, brandImage } = domain\n return { id, name, description, subdomain, extType, brandName, brandImage }\n })\n}\n"]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@things-factory/auth-base",
|
3
|
-
"version": "9.0.0-beta.
|
3
|
+
"version": "9.0.0-beta.19",
|
4
4
|
"main": "dist-server/index.js",
|
5
5
|
"browser": "dist-client/index.js",
|
6
6
|
"things-factory": true,
|
@@ -33,10 +33,10 @@
|
|
33
33
|
"@google-cloud/recaptcha-enterprise": "^5.13.0",
|
34
34
|
"@simplewebauthn/browser": "^13.0.0",
|
35
35
|
"@simplewebauthn/server": "^13.0.0",
|
36
|
-
"@things-factory/email-base": "^9.0.0-beta.
|
37
|
-
"@things-factory/env": "^9.0.0-beta.
|
38
|
-
"@things-factory/shell": "^9.0.0-beta.
|
39
|
-
"@things-factory/utils": "^9.0.0-beta.
|
36
|
+
"@things-factory/email-base": "^9.0.0-beta.19",
|
37
|
+
"@things-factory/env": "^9.0.0-beta.19",
|
38
|
+
"@things-factory/shell": "^9.0.0-beta.19",
|
39
|
+
"@things-factory/utils": "^9.0.0-beta.19",
|
40
40
|
"@types/webappsec-credential-management": "^0.6.9",
|
41
41
|
"jsonwebtoken": "^9.0.0",
|
42
42
|
"koa-passport": "^6.0.0",
|
@@ -47,5 +47,5 @@
|
|
47
47
|
"passport-jwt": "^4.0.0",
|
48
48
|
"passport-local": "^1.0.0"
|
49
49
|
},
|
50
|
-
"gitHead": "
|
50
|
+
"gitHead": "b72aed659b0224f428d39034371b8dbd8f281dae"
|
51
51
|
}
|
@@ -1 +0,0 @@
|
|
1
|
-
export declare function getDomainFromHostname(hostname: any): any;
|
@@ -1,9 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getDomainFromHostname = getDomainFromHostname;
|
4
|
-
const env_1 = require("@things-factory/env");
|
5
|
-
var subdomainOffset = env_1.config.get('subdomainOffset', 2);
|
6
|
-
function getDomainFromHostname(hostname) {
|
7
|
-
return hostname.split('.').slice(-subdomainOffset).join('.');
|
8
|
-
}
|
9
|
-
//# sourceMappingURL=get-domain-from-hostname.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"get-domain-from-hostname.js","sourceRoot":"","sources":["../../server/utils/get-domain-from-hostname.ts"],"names":[],"mappings":";;AAIA,sDAEC;AAND,6CAA4C;AAE5C,IAAI,eAAe,GAAG,YAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;AAEtD,SAAgB,qBAAqB,CAAC,QAAQ;IAC5C,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9D,CAAC","sourcesContent":["import { config } from '@things-factory/env'\n\nvar subdomainOffset = config.get('subdomainOffset', 2)\n\nexport function getDomainFromHostname(hostname) {\n return hostname.split('.').slice(-subdomainOffset).join('.')\n}\n"]}
|