@things-factory/oauth2-client 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.
- package/client/{bootstrap.js → bootstrap.ts} +0 -0
- package/{server/controllers → client}/index.ts +0 -0
- package/client/pages/oauth2-client/oauth2-client-importer.ts +97 -0
- package/client/pages/oauth2-client/oauth2-client-list-page.ts +337 -0
- package/client/pages/{oauth2-client-register.js → oauth2-client-register.ts} +79 -86
- package/client/pages/{oauth2-client.js → oauth2-client.ts} +157 -161
- package/client/pages/oauth2-clients.ts +192 -0
- package/client/{route.js → route.ts} +1 -1
- package/client/tsconfig.json +11 -0
- package/dist-client/bootstrap.d.ts +1 -0
- package/dist-client/bootstrap.js +2 -0
- package/dist-client/bootstrap.js.map +1 -0
- package/dist-client/index.d.ts +0 -0
- package/dist-client/index.js +2 -0
- package/dist-client/index.js.map +1 -0
- package/dist-client/pages/oauth2-client/oauth2-client-importer.d.ts +22 -0
- package/dist-client/pages/oauth2-client/oauth2-client-importer.js +100 -0
- package/dist-client/pages/oauth2-client/oauth2-client-importer.js.map +1 -0
- package/dist-client/pages/oauth2-client/oauth2-client-list-page.d.ts +55 -0
- package/dist-client/pages/oauth2-client/oauth2-client-list-page.js +315 -0
- package/dist-client/pages/oauth2-client/oauth2-client-list-page.js.map +1 -0
- package/dist-client/pages/oauth2-client-register.d.ts +21 -0
- package/dist-client/pages/oauth2-client-register.js +190 -0
- package/dist-client/pages/oauth2-client-register.js.map +1 -0
- package/dist-client/pages/oauth2-client.d.ts +35 -0
- package/dist-client/pages/oauth2-client.js +586 -0
- package/dist-client/pages/oauth2-client.js.map +1 -0
- package/dist-client/pages/oauth2-clients.d.ts +1 -0
- package/dist-client/pages/oauth2-clients.js +194 -0
- package/dist-client/pages/oauth2-clients.js.map +1 -0
- package/dist-client/route.d.ts +1 -0
- package/dist-client/route.js +14 -0
- package/dist-client/route.js.map +1 -0
- package/dist-client/tsconfig.tsbuildinfo +1 -0
- package/dist-server/index.d.ts +2 -0
- package/dist-server/index.js +2 -16
- package/dist-server/index.js.map +1 -1
- package/dist-server/routes.d.ts +1 -0
- package/dist-server/routes.js +10 -18
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/index.d.ts +5 -0
- package/dist-server/service/index.js +19 -0
- package/dist-server/service/index.js.map +1 -0
- package/dist-server/service/oauth2-client/index.d.ts +5 -0
- package/dist-server/service/oauth2-client/index.js +9 -0
- package/dist-server/service/oauth2-client/index.js.map +1 -0
- package/dist-server/service/oauth2-client/oauth2-client-mutation.d.ts +11 -0
- package/dist-server/service/oauth2-client/oauth2-client-mutation.js +165 -0
- package/dist-server/service/oauth2-client/oauth2-client-mutation.js.map +1 -0
- package/dist-server/service/oauth2-client/oauth2-client-query.d.ts +11 -0
- package/dist-server/service/oauth2-client/oauth2-client-query.js +79 -0
- package/dist-server/service/oauth2-client/oauth2-client-query.js.map +1 -0
- package/dist-server/service/oauth2-client/oauth2-client-type.d.ts +45 -0
- package/dist-server/service/oauth2-client/oauth2-client-type.js +177 -0
- package/dist-server/service/oauth2-client/oauth2-client-type.js.map +1 -0
- package/dist-server/service/oauth2-client/oauth2-client.d.ts +39 -0
- package/dist-server/service/oauth2-client/oauth2-client.js +220 -0
- package/dist-server/service/oauth2-client/oauth2-client.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -0
- package/package.json +12 -10
- package/server/index.ts +2 -3
- package/server/routes.ts +9 -20
- package/server/service/index.ts +17 -0
- package/server/service/oauth2-client/index.ts +6 -0
- package/server/service/oauth2-client/oauth2-client-mutation.ts +188 -0
- package/server/service/oauth2-client/oauth2-client-query.ts +50 -0
- package/server/service/oauth2-client/oauth2-client-type.ts +126 -0
- package/server/service/oauth2-client/oauth2-client.ts +193 -0
- package/server/tsconfig.json +11 -0
- package/things-factory.config.js +5 -14
- package/client/index.js +0 -1
- package/client/pages/oauth2-clients.js +0 -197
- package/dist-server/controllers/index.js +0 -1
- package/dist-server/controllers/index.js.map +0 -1
- package/dist-server/entities/index.js +0 -9
- package/dist-server/entities/index.js.map +0 -1
- package/dist-server/entities/oauth2-client.js +0 -190
- package/dist-server/entities/oauth2-client.js.map +0 -1
- package/dist-server/graphql/index.js +0 -34
- package/dist-server/graphql/index.js.map +0 -1
- package/dist-server/graphql/resolvers/index.js +0 -18
- package/dist-server/graphql/resolvers/index.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/create-oauth2-client.js +0 -19
- package/dist-server/graphql/resolvers/oauth2-client/create-oauth2-client.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-client.js +0 -12
- package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-client.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-clients.js +0 -15
- package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-clients.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/get-oauth2-access-token.js +0 -49
- package/dist-server/graphql/resolvers/oauth2-client/get-oauth2-access-token.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/index.js +0 -15
- package/dist-server/graphql/resolvers/oauth2-client/index.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/oauth2-client-query.js +0 -46
- package/dist-server/graphql/resolvers/oauth2-client/oauth2-client-query.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/refresh-oauth2-access-token.js +0 -38
- package/dist-server/graphql/resolvers/oauth2-client/refresh-oauth2-access-token.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/update-oauth2-client.js +0 -15
- package/dist-server/graphql/resolvers/oauth2-client/update-oauth2-client.js.map +0 -1
- package/dist-server/graphql/types/index.js +0 -18
- package/dist-server/graphql/types/index.js.map +0 -1
- package/dist-server/graphql/types/oauth2-client/index.js +0 -42
- package/dist-server/graphql/types/oauth2-client/index.js.map +0 -1
- package/dist-server/graphql/types/oauth2-client/new-oauth2-client.js +0 -30
- package/dist-server/graphql/types/oauth2-client/new-oauth2-client.js.map +0 -1
- package/dist-server/graphql/types/oauth2-client/oauth2-client-list.js +0 -14
- package/dist-server/graphql/types/oauth2-client/oauth2-client-list.js.map +0 -1
- package/dist-server/graphql/types/oauth2-client/oauth2-client-patch.js +0 -30
- package/dist-server/graphql/types/oauth2-client/oauth2-client-patch.js.map +0 -1
- package/dist-server/graphql/types/oauth2-client/oauth2-client.js +0 -38
- package/dist-server/graphql/types/oauth2-client/oauth2-client.js.map +0 -1
- package/server/entities/index.ts +0 -9
- package/server/entities/oauth2-client.ts +0 -156
- package/server/graphql/index.ts +0 -9
- package/server/graphql/resolvers/index.ts +0 -1
- package/server/graphql/resolvers/oauth2-client/create-oauth2-client.ts +0 -24
- package/server/graphql/resolvers/oauth2-client/delete-oauth2-client.ts +0 -10
- package/server/graphql/resolvers/oauth2-client/delete-oauth2-clients.ts +0 -13
- package/server/graphql/resolvers/oauth2-client/get-oauth2-access-token.ts +0 -64
- package/server/graphql/resolvers/oauth2-client/index.ts +0 -21
- package/server/graphql/resolvers/oauth2-client/oauth2-client-query.ts +0 -62
- package/server/graphql/resolvers/oauth2-client/refresh-oauth2-access-token.ts +0 -54
- package/server/graphql/resolvers/oauth2-client/update-oauth2-client.ts +0 -17
- package/server/graphql/types/index.ts +0 -1
- package/server/graphql/types/oauth2-client/index.ts +0 -23
- package/server/graphql/types/oauth2-client/new-oauth2-client.ts +0 -24
- package/server/graphql/types/oauth2-client/oauth2-client-list.ts +0 -8
- package/server/graphql/types/oauth2-client/oauth2-client-patch.ts +0 -24
- package/server/graphql/types/oauth2-client/oauth2-client.ts +0 -32
- package/tsconfig.json +0 -9
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth2-client-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/oauth2-client/oauth2-client-query.ts"],"names":[],"mappings":";;;;;;AAAA,iDAAoE;AACpE,kEAAwC;AACxC,qCAAuC;AACvC,oDAA2B;AAC3B,gDAAgD;AAEnC,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,YAAY,CAAC,CAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAY;QAC7C,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAA;QAE9C,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC;YAC9B,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE;YAC3C,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;QACzD,MAAM,eAAe,GAAG,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAA;QACjD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAC,YAAY,iCAChE,eAAe,KAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,IAC3C,CAAA;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,CAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAY;QACjD,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAA;QAC9C,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAEjD,MAAM,EACJ,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EACP,GAAG,YAAY,CAAA;QAEhB,IAAI,SAAS,KAAK,MAAM,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAA;SACxD;QAED,MAAM,KAAK,GAAG,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACpD,MAAM,UAAU,CAAC,IAAI,iCAChB,YAAY,KACf,KAAK,IACL,CAAA;QAEF,IAAI,IAAI,GAAG,IAAI,uBAAY,CAAC;YAC1B,QAAQ;YACR,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,WAAW,EAAE,WAAW,IAAI,GAAG,OAAO,CAAC,MAAM,yBAAyB;YACtE,MAAM,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,GAAG,CAAC,KAAI,EAAE;YAChC,KAAK;SACN,CAAC,CAAA;QAEF,OAAO,MAAO,IAAI,CAAC,SAAS,CAAS,CAAC,MAAM,EAAE,CAAA;IAChD,CAAC;CACF,CAAA"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.refreshOauth2AccessToken = void 0;
|
|
7
|
-
const client_oauth2_1 = __importDefault(require("client-oauth2"));
|
|
8
|
-
const typeorm_1 = require("typeorm");
|
|
9
|
-
const entities_1 = require("../../../entities");
|
|
10
|
-
const debug = require('debug')('things-factory:oauth2-client:refresh-oauth2-access-token');
|
|
11
|
-
exports.refreshOauth2AccessToken = {
|
|
12
|
-
async refreshOauth2AccessToken(_, { id }, context) {
|
|
13
|
-
const repository = (0, typeorm_1.getRepository)(entities_1.Oauth2Client);
|
|
14
|
-
const oauth2Client = await repository.findOne(id);
|
|
15
|
-
const { clientId, clientSecret, accessTokenUrl: accessTokenUri, authUrl: authorizationUri, scopes, tokenType, accessToken, refreshToken } = oauth2Client;
|
|
16
|
-
if (!refreshToken) {
|
|
17
|
-
throw new Error('refreshToken not found');
|
|
18
|
-
}
|
|
19
|
-
var auth = new client_oauth2_1.default({
|
|
20
|
-
clientId,
|
|
21
|
-
clientSecret,
|
|
22
|
-
accessTokenUri,
|
|
23
|
-
authorizationUri,
|
|
24
|
-
scopes: scopes === null || scopes === void 0 ? void 0 : scopes.split(' ')
|
|
25
|
-
});
|
|
26
|
-
try {
|
|
27
|
-
var token = await auth.createToken(accessToken, refreshToken, tokenType, {}).refresh();
|
|
28
|
-
}
|
|
29
|
-
catch (err) {
|
|
30
|
-
debug('getting refresh-token error', err);
|
|
31
|
-
throw err;
|
|
32
|
-
}
|
|
33
|
-
const { accessToken: newAccessToken, refreshToken: newRefreshToken, tokenType: newTokenType, data } = token;
|
|
34
|
-
const expires = (data === null || data === void 0 ? void 0 : data.expires_in) ? token.expiresIn(data === null || data === void 0 ? void 0 : data.expires_in) : null;
|
|
35
|
-
return await repository.save(Object.assign(Object.assign({}, oauth2Client), { accessToken: newAccessToken, refreshToken: newRefreshToken, tokenType: newTokenType, expires }));
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=refresh-oauth2-access-token.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"refresh-oauth2-access-token.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/oauth2-client/refresh-oauth2-access-token.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAwC;AAExC,qCAAuC;AACvC,gDAAgD;AAEhD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,0DAA0D,CAAC,CAAA;AAE7E,QAAA,wBAAwB,GAAG;IACtC,KAAK,CAAC,wBAAwB,CAAC,CAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAY;QACzD,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAA;QAC9C,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAEjD,MAAM,EACJ,QAAQ,EACR,YAAY,EACZ,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EACN,SAAS,EACT,WAAW,EACX,YAAY,EACb,GAAG,YAAY,CAAA;QAEhB,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;SAC1C;QAED,IAAI,IAAI,GAAG,IAAI,uBAAY,CAAC;YAC1B,QAAQ;YACR,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,GAAG,CAAC;SAC3B,CAAC,CAAA;QAEF,IAAI;YACF,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA;SACvF;QAAC,OAAO,GAAG,EAAE;YACZ,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;YACzC,MAAM,GAAG,CAAA;SACV;QAED,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;QAC3G,MAAM,OAAO,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,EAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAElF,OAAO,MAAM,UAAU,CAAC,IAAI,iCACvB,YAAY,KACf,WAAW,EAAE,cAAc,EAC3B,YAAY,EAAE,eAAe,EAC7B,SAAS,EAAE,YAAY,EACvB,OAAO,IACP,CAAA;IACJ,CAAC;CACF,CAAA"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateOauth2Client = void 0;
|
|
4
|
-
const typeorm_1 = require("typeorm");
|
|
5
|
-
const entities_1 = require("../../../entities");
|
|
6
|
-
exports.updateOauth2Client = {
|
|
7
|
-
async updateOauth2Client(_, { id, patch }, context) {
|
|
8
|
-
const repository = (0, typeorm_1.getRepository)(entities_1.Oauth2Client);
|
|
9
|
-
const oauth2Client = await repository.findOne({
|
|
10
|
-
where: { domain: context.state.domain, id }
|
|
11
|
-
});
|
|
12
|
-
return await repository.save(Object.assign(Object.assign(Object.assign({}, oauth2Client), patch), { updater: context.state.user }));
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=update-oauth2-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-oauth2-client.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/oauth2-client/update-oauth2-client.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,gDAAgD;AAEnC,QAAA,kBAAkB,GAAG;IAChC,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAY;QAC1D,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAA;QAC9C,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAC5C,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE;SAC5C,CAAC,CAAA;QAEF,OAAO,MAAM,UAAU,CAAC,IAAI,+CACvB,YAAY,GACZ,KAAK,KACR,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,IAC3B,CAAA;IACJ,CAAC;CACF,CAAA"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./oauth2-client"), exports);
|
|
18
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.Oauth2ClientResolver = void 0;
|
|
21
|
-
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
22
|
-
__exportStar(require("./oauth2-client"), exports);
|
|
23
|
-
__exportStar(require("./new-oauth2-client"), exports);
|
|
24
|
-
__exportStar(require("./oauth2-client-patch"), exports);
|
|
25
|
-
__exportStar(require("./oauth2-client-list"), exports);
|
|
26
|
-
exports.Oauth2ClientResolver = (0, graphql_tag_1.default) `
|
|
27
|
-
extend type Mutation {
|
|
28
|
-
createOauth2Client(oauth2Client: NewOauth2Client!): Oauth2Client
|
|
29
|
-
updateOauth2Client(id: String!, patch: Oauth2ClientPatch!): Oauth2Client
|
|
30
|
-
deleteOauth2Client(id: String!): Boolean
|
|
31
|
-
deleteOauth2Clients(ids: [String]!): Boolean
|
|
32
|
-
getOauth2AccessToken(id: String!): Oauth2Client
|
|
33
|
-
refreshOauth2AccessToken(id: String!): Oauth2Client
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
extend type Query {
|
|
37
|
-
oauth2Clients(filters: [Filter], pagination: Pagination, sortings: [Sorting]): Oauth2ClientList
|
|
38
|
-
oauth2Client(id: String!): Oauth2Client
|
|
39
|
-
getOauth2AuthUrl(id: String!): String
|
|
40
|
-
}
|
|
41
|
-
`;
|
|
42
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/types/oauth2-client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,8DAA6B;AAE7B,kDAA+B;AAC/B,sDAAmC;AACnC,wDAAqC;AACrC,uDAAoC;AAEvB,QAAA,oBAAoB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;CAetC,CAAA"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.NewOauth2Client = void 0;
|
|
7
|
-
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
8
|
-
exports.NewOauth2Client = (0, graphql_tag_1.default) `
|
|
9
|
-
input NewOauth2Client {
|
|
10
|
-
name: String
|
|
11
|
-
description: String
|
|
12
|
-
icon: String
|
|
13
|
-
grantType: String
|
|
14
|
-
clientId: String
|
|
15
|
-
clientSecret: String
|
|
16
|
-
callbackUrl: String
|
|
17
|
-
authUrl: String
|
|
18
|
-
accessTokenUrl: String
|
|
19
|
-
webhook: String
|
|
20
|
-
username: String
|
|
21
|
-
password: String
|
|
22
|
-
codeChallengeMethod: String
|
|
23
|
-
codeVerifier: String
|
|
24
|
-
scopes: String
|
|
25
|
-
accessToken: String
|
|
26
|
-
refreshToken: String
|
|
27
|
-
jwtToken: String
|
|
28
|
-
}
|
|
29
|
-
`;
|
|
30
|
-
//# sourceMappingURL=new-oauth2-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"new-oauth2-client.js","sourceRoot":"","sources":["../../../../server/graphql/types/oauth2-client/new-oauth2-client.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,eAAe,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;CAqBjC,CAAA"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Oauth2ClientList = void 0;
|
|
7
|
-
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
8
|
-
exports.Oauth2ClientList = (0, graphql_tag_1.default) `
|
|
9
|
-
type Oauth2ClientList {
|
|
10
|
-
items: [Oauth2Client]
|
|
11
|
-
total: Int
|
|
12
|
-
}
|
|
13
|
-
`;
|
|
14
|
-
//# sourceMappingURL=oauth2-client-list.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth2-client-list.js","sourceRoot":"","sources":["../../../../server/graphql/types/oauth2-client/oauth2-client-list.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,gBAAgB,GAAG,IAAA,qBAAG,EAAA;;;;;CAKlC,CAAA"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Oauth2ClientPatch = void 0;
|
|
7
|
-
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
8
|
-
exports.Oauth2ClientPatch = (0, graphql_tag_1.default) `
|
|
9
|
-
input Oauth2ClientPatch {
|
|
10
|
-
name: String
|
|
11
|
-
description: String
|
|
12
|
-
icon: String
|
|
13
|
-
grantType: String
|
|
14
|
-
clientId: String
|
|
15
|
-
clientSecret: String
|
|
16
|
-
callbackUrl: String
|
|
17
|
-
authUrl: String
|
|
18
|
-
accessTokenUrl: String
|
|
19
|
-
webhook: String
|
|
20
|
-
username: String
|
|
21
|
-
password: String
|
|
22
|
-
codeChallengeMethod: String
|
|
23
|
-
codeVerifier: String
|
|
24
|
-
scopes: String
|
|
25
|
-
accessToken: String
|
|
26
|
-
refreshToken: String
|
|
27
|
-
jwtToken: String
|
|
28
|
-
}
|
|
29
|
-
`;
|
|
30
|
-
//# sourceMappingURL=oauth2-client-patch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth2-client-patch.js","sourceRoot":"","sources":["../../../../server/graphql/types/oauth2-client/oauth2-client-patch.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,iBAAiB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;CAqBnC,CAAA"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Oauth2Client = void 0;
|
|
7
|
-
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
8
|
-
exports.Oauth2Client = (0, graphql_tag_1.default) `
|
|
9
|
-
type Oauth2Client {
|
|
10
|
-
id: String
|
|
11
|
-
domain: Domain
|
|
12
|
-
name: String
|
|
13
|
-
description: String
|
|
14
|
-
icon: String
|
|
15
|
-
grantType: String
|
|
16
|
-
clientId: String
|
|
17
|
-
clientSecret: String
|
|
18
|
-
callbackUrl: String
|
|
19
|
-
authUrl: String
|
|
20
|
-
accessTokenUrl: String
|
|
21
|
-
webhook: String
|
|
22
|
-
username: String
|
|
23
|
-
password: String
|
|
24
|
-
codeChallengeMethod: String
|
|
25
|
-
codeVerifier: String
|
|
26
|
-
scopes: String
|
|
27
|
-
accessToken: String
|
|
28
|
-
refreshToken: String
|
|
29
|
-
expires: String
|
|
30
|
-
jwtToken: String
|
|
31
|
-
tokenType: String
|
|
32
|
-
updater: User
|
|
33
|
-
creator: User
|
|
34
|
-
updatedAt: String
|
|
35
|
-
createdAt: String
|
|
36
|
-
}
|
|
37
|
-
`;
|
|
38
|
-
//# sourceMappingURL=oauth2-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth2-client.js","sourceRoot":"","sources":["../../../../server/graphql/types/oauth2-client/oauth2-client.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,YAAY,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B9B,CAAA"}
|
package/server/entities/index.ts
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CreateDateColumn,
|
|
3
|
-
UpdateDateColumn,
|
|
4
|
-
Entity,
|
|
5
|
-
Index,
|
|
6
|
-
Column,
|
|
7
|
-
OneToMany,
|
|
8
|
-
ManyToOne,
|
|
9
|
-
PrimaryGeneratedColumn
|
|
10
|
-
} from 'typeorm'
|
|
11
|
-
import { Domain } from '@things-factory/shell'
|
|
12
|
-
import { User } from '@things-factory/auth-base'
|
|
13
|
-
|
|
14
|
-
@Entity()
|
|
15
|
-
@Index('ix_oauth2_client_0', (oauth2Client: Oauth2Client) => [oauth2Client.domain, oauth2Client.name], { unique: true })
|
|
16
|
-
export class Oauth2Client {
|
|
17
|
-
@PrimaryGeneratedColumn('uuid')
|
|
18
|
-
id: string
|
|
19
|
-
|
|
20
|
-
@ManyToOne(type => Domain)
|
|
21
|
-
domain: Domain
|
|
22
|
-
|
|
23
|
-
@Column()
|
|
24
|
-
name: string
|
|
25
|
-
|
|
26
|
-
@Column({
|
|
27
|
-
nullable: true
|
|
28
|
-
})
|
|
29
|
-
description: string
|
|
30
|
-
|
|
31
|
-
@Column({
|
|
32
|
-
nullable: true
|
|
33
|
-
})
|
|
34
|
-
icon: string
|
|
35
|
-
|
|
36
|
-
@Column({
|
|
37
|
-
nullable: true
|
|
38
|
-
})
|
|
39
|
-
grantType: string
|
|
40
|
-
|
|
41
|
-
@Column({
|
|
42
|
-
nullable: true
|
|
43
|
-
})
|
|
44
|
-
clientId: string
|
|
45
|
-
|
|
46
|
-
@Column({
|
|
47
|
-
nullable: true
|
|
48
|
-
})
|
|
49
|
-
clientSecret: string
|
|
50
|
-
|
|
51
|
-
@Column({
|
|
52
|
-
nullable: true
|
|
53
|
-
})
|
|
54
|
-
accessTokenUrl: string
|
|
55
|
-
|
|
56
|
-
@Column({
|
|
57
|
-
nullable: true
|
|
58
|
-
})
|
|
59
|
-
authUrl: string
|
|
60
|
-
|
|
61
|
-
@Column({
|
|
62
|
-
nullable: true
|
|
63
|
-
})
|
|
64
|
-
callbackUrl: string
|
|
65
|
-
|
|
66
|
-
@Column({
|
|
67
|
-
nullable: true
|
|
68
|
-
})
|
|
69
|
-
webhook: string
|
|
70
|
-
|
|
71
|
-
@Column({
|
|
72
|
-
nullable: true
|
|
73
|
-
})
|
|
74
|
-
username: string
|
|
75
|
-
|
|
76
|
-
@Column({
|
|
77
|
-
nullable: true
|
|
78
|
-
})
|
|
79
|
-
password: string
|
|
80
|
-
|
|
81
|
-
@Column({
|
|
82
|
-
nullable: true
|
|
83
|
-
})
|
|
84
|
-
codeChallengeMethod: string
|
|
85
|
-
|
|
86
|
-
@Column({
|
|
87
|
-
nullable: true
|
|
88
|
-
})
|
|
89
|
-
codeVerifier: string
|
|
90
|
-
|
|
91
|
-
@Column({
|
|
92
|
-
nullable: true
|
|
93
|
-
})
|
|
94
|
-
scopes: string
|
|
95
|
-
|
|
96
|
-
@Column({
|
|
97
|
-
nullable: true
|
|
98
|
-
})
|
|
99
|
-
accessToken: string
|
|
100
|
-
|
|
101
|
-
@Column({
|
|
102
|
-
nullable: true
|
|
103
|
-
})
|
|
104
|
-
refreshToken: string
|
|
105
|
-
|
|
106
|
-
@Column({
|
|
107
|
-
nullable: true
|
|
108
|
-
})
|
|
109
|
-
expires: Date
|
|
110
|
-
|
|
111
|
-
@Column({
|
|
112
|
-
nullable: true
|
|
113
|
-
})
|
|
114
|
-
state: string
|
|
115
|
-
|
|
116
|
-
@Column({
|
|
117
|
-
nullable: true
|
|
118
|
-
})
|
|
119
|
-
jwtToken: string
|
|
120
|
-
|
|
121
|
-
@Column({
|
|
122
|
-
nullable: true
|
|
123
|
-
})
|
|
124
|
-
tokenType: string
|
|
125
|
-
|
|
126
|
-
@CreateDateColumn()
|
|
127
|
-
createdAt: Date
|
|
128
|
-
|
|
129
|
-
@UpdateDateColumn()
|
|
130
|
-
updatedAt: Date
|
|
131
|
-
|
|
132
|
-
@ManyToOne(type => User, {
|
|
133
|
-
nullable: true
|
|
134
|
-
})
|
|
135
|
-
creator: User
|
|
136
|
-
|
|
137
|
-
@ManyToOne(type => User, {
|
|
138
|
-
nullable: true
|
|
139
|
-
})
|
|
140
|
-
updater: User
|
|
141
|
-
|
|
142
|
-
getAuthHeaders() {
|
|
143
|
-
if (this.tokenType == 'bearer') {
|
|
144
|
-
return {
|
|
145
|
-
Authorization: `Bearer ${this.accessToken}`
|
|
146
|
-
}
|
|
147
|
-
} else if (this.tokenType == 'basic' || !this.tokenType) {
|
|
148
|
-
const encoded = Buffer.from(`${this.username}:${this.password}`).toString('base64')
|
|
149
|
-
return {
|
|
150
|
-
Authorization: `Basic ${encoded}`
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
return {}
|
|
155
|
-
}
|
|
156
|
-
}
|
package/server/graphql/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './oauth2-client'
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { config } from '@things-factory/env'
|
|
2
|
-
import { getRepository } from 'typeorm'
|
|
3
|
-
import { URL } from 'url'
|
|
4
|
-
import { Oauth2Client } from '../../../entities'
|
|
5
|
-
const protocol: string = config.get('protocol')
|
|
6
|
-
|
|
7
|
-
export const createOauth2Client = {
|
|
8
|
-
async createOauth2Client(_: any, { oauth2Client }, context: any) {
|
|
9
|
-
const { origin } = context
|
|
10
|
-
let url: URL = new URL(origin)
|
|
11
|
-
url.protocol = protocol || url.protocol
|
|
12
|
-
url.pathname = '/oauth2-client/callback'
|
|
13
|
-
|
|
14
|
-
const { domain, user } = context.state
|
|
15
|
-
|
|
16
|
-
return await getRepository(Oauth2Client).save({
|
|
17
|
-
...oauth2Client,
|
|
18
|
-
callbackUrl: oauth2Client.callbackUrl || url.href,
|
|
19
|
-
domain: domain,
|
|
20
|
-
creator: user,
|
|
21
|
-
updater: user
|
|
22
|
-
})
|
|
23
|
-
}
|
|
24
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { getRepository } from 'typeorm'
|
|
2
|
-
import { Oauth2Client } from '../../../entities'
|
|
3
|
-
|
|
4
|
-
export const deleteOauth2Client = {
|
|
5
|
-
async deleteOauth2Client(_: any, { id }, context: any) {
|
|
6
|
-
await getRepository(Oauth2Client).delete({ domain: context.state.domain, id })
|
|
7
|
-
return true
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { getRepository, In } from 'typeorm'
|
|
2
|
-
import { Oauth2Client } from '../../../entities'
|
|
3
|
-
|
|
4
|
-
export const deleteOauth2Clients = {
|
|
5
|
-
async deleteOauth2Clients(_: any, { ids }, context: any) {
|
|
6
|
-
await getRepository(Oauth2Client).delete({
|
|
7
|
-
domain: context.state.domain,
|
|
8
|
-
id: In(ids)
|
|
9
|
-
})
|
|
10
|
-
return true
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import ClientOAuth2 from 'client-oauth2'
|
|
2
|
-
|
|
3
|
-
import { getRepository } from 'typeorm'
|
|
4
|
-
import { Oauth2Client } from '../../../entities'
|
|
5
|
-
|
|
6
|
-
const debug = require('debug')('thins-factory:oauth2-client:get-oauth2-access-token')
|
|
7
|
-
|
|
8
|
-
export const getOauth2AccessToken = {
|
|
9
|
-
async getOauth2AccessToken(_: any, { id }, context: any) {
|
|
10
|
-
const repository = getRepository(Oauth2Client)
|
|
11
|
-
const oauth2Client = await repository.findOne(id)
|
|
12
|
-
|
|
13
|
-
const {
|
|
14
|
-
grantType,
|
|
15
|
-
clientId,
|
|
16
|
-
clientSecret,
|
|
17
|
-
accessTokenUrl: accessTokenUri,
|
|
18
|
-
authUrl: authorizationUri,
|
|
19
|
-
username,
|
|
20
|
-
password,
|
|
21
|
-
jwtToken,
|
|
22
|
-
scopes
|
|
23
|
-
} = oauth2Client
|
|
24
|
-
|
|
25
|
-
var auth = new ClientOAuth2({
|
|
26
|
-
clientId,
|
|
27
|
-
clientSecret,
|
|
28
|
-
accessTokenUri,
|
|
29
|
-
authorizationUri,
|
|
30
|
-
scopes: scopes.split(' ')
|
|
31
|
-
})
|
|
32
|
-
|
|
33
|
-
debug('grant-type', grantType)
|
|
34
|
-
|
|
35
|
-
var getTokenParams = []
|
|
36
|
-
switch (grantType) {
|
|
37
|
-
case 'owner':
|
|
38
|
-
getTokenParams = [username, password]
|
|
39
|
-
break
|
|
40
|
-
case 'credentials':
|
|
41
|
-
getTokenParams = []
|
|
42
|
-
break
|
|
43
|
-
case 'jwt':
|
|
44
|
-
getTokenParams = [jwtToken]
|
|
45
|
-
break
|
|
46
|
-
case 'code':
|
|
47
|
-
default:
|
|
48
|
-
throw new Error(`unsupported grant type: ${grantType}`)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const token = await auth[grantType].getToken.call(auth[grantType], getTokenParams)
|
|
52
|
-
const { tokenType: newTokenType, accessToken, refreshToken, data } = token
|
|
53
|
-
const expires = data?.expires_in ? token.expiresIn(data?.expires_in as any) : null
|
|
54
|
-
|
|
55
|
-
return await repository.save({
|
|
56
|
-
...oauth2Client,
|
|
57
|
-
tokenType: newTokenType,
|
|
58
|
-
accessToken,
|
|
59
|
-
refreshToken,
|
|
60
|
-
expires
|
|
61
|
-
// state: ''
|
|
62
|
-
})
|
|
63
|
-
}
|
|
64
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Query } from './oauth2-client-query'
|
|
2
|
-
|
|
3
|
-
import { updateOauth2Client } from './update-oauth2-client'
|
|
4
|
-
import { createOauth2Client } from './create-oauth2-client'
|
|
5
|
-
import { deleteOauth2Client } from './delete-oauth2-client'
|
|
6
|
-
import { deleteOauth2Clients } from './delete-oauth2-clients'
|
|
7
|
-
|
|
8
|
-
import { getOauth2AccessToken } from './get-oauth2-access-token'
|
|
9
|
-
import { refreshOauth2AccessToken } from './refresh-oauth2-access-token'
|
|
10
|
-
|
|
11
|
-
export const Oauth2ClientResolver = {
|
|
12
|
-
Query,
|
|
13
|
-
Mutation: {
|
|
14
|
-
...updateOauth2Client,
|
|
15
|
-
...createOauth2Client,
|
|
16
|
-
...deleteOauth2Client,
|
|
17
|
-
...deleteOauth2Clients,
|
|
18
|
-
...getOauth2AccessToken,
|
|
19
|
-
...refreshOauth2AccessToken
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { ListParam, convertListParams } from '@things-factory/shell'
|
|
2
|
-
import ClientOAuth2 from 'client-oauth2'
|
|
3
|
-
import { getRepository } from 'typeorm'
|
|
4
|
-
import crypto from 'crypto'
|
|
5
|
-
import { Oauth2Client } from '../../../entities'
|
|
6
|
-
|
|
7
|
-
export const Query = {
|
|
8
|
-
async oauth2Client(_: any, { id }, context: any) {
|
|
9
|
-
const repository = getRepository(Oauth2Client)
|
|
10
|
-
|
|
11
|
-
return await repository.findOne({
|
|
12
|
-
where: { domain: context.state.domain, id },
|
|
13
|
-
relations: ['domain', 'creator', 'updater']
|
|
14
|
-
})
|
|
15
|
-
},
|
|
16
|
-
|
|
17
|
-
async oauth2Clients(_: any, params: ListParam, context: any) {
|
|
18
|
-
const convertedParams = convertListParams(params)
|
|
19
|
-
const [items, total] = await getRepository(Oauth2Client).findAndCount({
|
|
20
|
-
...convertedParams,
|
|
21
|
-
relations: ['domain', 'creator', 'updater']
|
|
22
|
-
})
|
|
23
|
-
return { items, total }
|
|
24
|
-
},
|
|
25
|
-
|
|
26
|
-
async getOauth2AuthUrl(_: any, { id }, context: any) {
|
|
27
|
-
const repository = getRepository(Oauth2Client)
|
|
28
|
-
const oauth2Client = await repository.findOne(id)
|
|
29
|
-
|
|
30
|
-
const {
|
|
31
|
-
grantType,
|
|
32
|
-
clientId,
|
|
33
|
-
clientSecret,
|
|
34
|
-
callbackUrl,
|
|
35
|
-
accessTokenUrl: accessTokenUri,
|
|
36
|
-
authUrl: authorizationUri,
|
|
37
|
-
scopes
|
|
38
|
-
} = oauth2Client
|
|
39
|
-
|
|
40
|
-
if (grantType !== 'code') {
|
|
41
|
-
throw new Error(`unsupported grant type: ${grantType}`)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const state = crypto.randomBytes(16).toString('hex')
|
|
45
|
-
await repository.save({
|
|
46
|
-
...oauth2Client,
|
|
47
|
-
state
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
var auth = new ClientOAuth2({
|
|
51
|
-
clientId,
|
|
52
|
-
clientSecret,
|
|
53
|
-
accessTokenUri,
|
|
54
|
-
authorizationUri,
|
|
55
|
-
redirectUri: callbackUrl || `${context.origin}/oauth2-client/callback`,
|
|
56
|
-
scopes: scopes?.split(' ') || [],
|
|
57
|
-
state
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
return await (auth[grantType] as any).getUri()
|
|
61
|
-
}
|
|
62
|
-
}
|