@point3/logto-module 1.0.23 → 1.1.1
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/.idea/copilot.data.migration.ask2agent.xml +6 -0
- package/.idea/inspectionProfiles/Project_Default.xml +7 -0
- package/.idea/misc.xml +7 -0
- package/.idea/modules.xml +8 -0
- package/.idea/point3-logto-module.iml +9 -0
- package/.idea/vcs.xml +6 -0
- package/.serena/project.yml +87 -0
- package/README.md +124 -80
- package/client/config.ts +62 -0
- package/client/logto-login-session.ts +8 -17
- package/client/m2m-client.ts +14 -24
- package/client/oauth-client.ts +18 -32
- package/dist/client/config.d.ts +23 -0
- package/dist/client/logto-login-session.d.ts +2 -3
- package/dist/client/logto-login-session.js +4 -13
- package/dist/client/logto-login-session.js.map +1 -1
- package/dist/client/m2m-client.d.ts +3 -3
- package/dist/client/m2m-client.js +11 -19
- package/dist/client/m2m-client.js.map +1 -1
- package/dist/client/oauth-client.d.ts +4 -4
- package/dist/client/oauth-client.js +16 -22
- package/dist/client/oauth-client.js.map +1 -1
- package/dist/module.d.ts +24 -1
- package/dist/module.js +124 -23
- package/dist/module.js.map +1 -1
- package/dist/token/verifier.d.ts +3 -3
- package/dist/token/verifier.js +5 -14
- package/dist/token/verifier.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/module.ts +264 -80
- package/package.json +1 -1
- package/token/verifier.ts +8 -17
package/client/m2m-client.ts
CHANGED
|
@@ -2,26 +2,24 @@
|
|
|
2
2
|
* Logto M2M(Machine-to-Machine) 클라이언트
|
|
3
3
|
* - Logto API의 M2M 인증 및 사용자/역할 관리 기능 제공
|
|
4
4
|
* - NestJS DI 시스템에 등록됨
|
|
5
|
-
*
|
|
5
|
+
*
|
|
6
6
|
* @author
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import {
|
|
10
|
-
Inject,
|
|
11
10
|
Injectable,
|
|
12
11
|
Global,
|
|
13
12
|
LoggerService,
|
|
14
13
|
} from "@nestjs/common";
|
|
15
|
-
import { ConfigService } from "@nestjs/config";
|
|
16
14
|
|
|
17
15
|
import {
|
|
18
16
|
LogtoConfig,
|
|
17
|
+
LogtoM2MConfig,
|
|
19
18
|
GrantType,
|
|
20
19
|
} from "./config";
|
|
21
20
|
import {
|
|
22
21
|
AccessToken,
|
|
23
22
|
LogtoTokenVerifier,
|
|
24
|
-
LogtoTokenVerifierToken,
|
|
25
23
|
} from "../token";
|
|
26
24
|
import {
|
|
27
25
|
LogtoOAuthRESTTemplate,
|
|
@@ -31,13 +29,10 @@ import {
|
|
|
31
29
|
LogtoUser,
|
|
32
30
|
LogtoUserResponse,
|
|
33
31
|
VerificationMethodType,
|
|
34
|
-
LogtoLoggerServiceToken
|
|
35
32
|
} from "./types";
|
|
36
33
|
import { p3Values, axiosAdapter } from "point3-common-tool";
|
|
37
34
|
import {
|
|
38
35
|
UserMissingRequiredFieldsError,
|
|
39
|
-
UserNotFoundError,
|
|
40
|
-
MultipleUsersFoundError,
|
|
41
36
|
} from "../errors";
|
|
42
37
|
|
|
43
38
|
// DI 토큰
|
|
@@ -75,22 +70,17 @@ export class LogtoM2MClient {
|
|
|
75
70
|
private readonly apiRestTemplate: axiosAdapter.RESTTemplate;
|
|
76
71
|
|
|
77
72
|
constructor(
|
|
78
|
-
|
|
79
|
-
private readonly configService: ConfigService,
|
|
80
|
-
|
|
81
|
-
@Inject(LogtoTokenVerifierToken)
|
|
73
|
+
private readonly config: LogtoM2MConfig,
|
|
82
74
|
private readonly tokenVerifier: LogtoTokenVerifier,
|
|
83
|
-
|
|
84
|
-
@Inject(LogtoLoggerServiceToken)
|
|
85
75
|
private readonly logger: LoggerService,
|
|
86
76
|
) {
|
|
87
|
-
//
|
|
77
|
+
// config 기반 Logto 설정
|
|
88
78
|
this.logtoConfig = {
|
|
89
|
-
endpoint:
|
|
90
|
-
appId:
|
|
91
|
-
appSecret:
|
|
92
|
-
scopes:
|
|
93
|
-
resources: [
|
|
79
|
+
endpoint: config.endpoint,
|
|
80
|
+
appId: config.clientId,
|
|
81
|
+
appSecret: config.clientSecret,
|
|
82
|
+
scopes: config.scopes,
|
|
83
|
+
resources: [config.resource],
|
|
94
84
|
grantType: GrantType.ClientCredentials,
|
|
95
85
|
};
|
|
96
86
|
|
|
@@ -104,7 +94,7 @@ export class LogtoM2MClient {
|
|
|
104
94
|
// API용 REST 템플릿 초기화
|
|
105
95
|
this.apiRestTemplate = new LogtoOAuthRESTTemplate(
|
|
106
96
|
this.logger,
|
|
107
|
-
|
|
97
|
+
config.apiUrl,
|
|
108
98
|
);
|
|
109
99
|
}
|
|
110
100
|
|
|
@@ -142,7 +132,7 @@ export class LogtoM2MClient {
|
|
|
142
132
|
/**
|
|
143
133
|
* PAT 토큰을 이용해 AccessToken 발급
|
|
144
134
|
*/
|
|
145
|
-
public async fetchAccessTokenByPAT(pat: string): Promise<{ accessToken: string }> {
|
|
135
|
+
public async fetchAccessTokenByPAT(pat: string): Promise<{ accessToken: string }> {
|
|
146
136
|
try {
|
|
147
137
|
const parameters = new URLSearchParams();
|
|
148
138
|
parameters.set("grant_type", "urn:ietf:params:oauth:grant-type:token-exchange");
|
|
@@ -151,15 +141,15 @@ export class LogtoM2MClient {
|
|
|
151
141
|
parameters.set("subject_token", pat);
|
|
152
142
|
parameters.set("subject_token_type", "urn:logto:token-type:personal_access_token");
|
|
153
143
|
|
|
154
|
-
// check the request
|
|
144
|
+
// check the request
|
|
155
145
|
const response = await this.authRestTemplate.post(
|
|
156
146
|
`${this.logtoConfig.endpoint}/token`,
|
|
157
147
|
parameters.toString(),
|
|
158
148
|
{
|
|
159
149
|
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
160
150
|
}
|
|
161
|
-
);
|
|
162
|
-
|
|
151
|
+
);
|
|
152
|
+
|
|
163
153
|
|
|
164
154
|
console.log(response);
|
|
165
155
|
return {
|
package/client/oauth-client.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Injectable, Global, LoggerService } from "@nestjs/common";
|
|
2
2
|
import axios, { AxiosResponse } from "axios";
|
|
3
|
-
import { GrantType,
|
|
4
|
-
import { ConfigService } from "@nestjs/config";
|
|
3
|
+
import { GrantType, LogtoConfig, LogtoOAuthConfig } from "./config";
|
|
5
4
|
import { axiosAdapter, p3Values } from "point3-common-tool";
|
|
6
5
|
import {
|
|
7
6
|
TokenRevocationFailedError,
|
|
@@ -48,25 +47,22 @@ export class OAuthClient {
|
|
|
48
47
|
|
|
49
48
|
/**
|
|
50
49
|
* 생성자
|
|
51
|
-
* @param
|
|
50
|
+
* @param config OAuth 설정
|
|
52
51
|
* @param logger 로거 서비스
|
|
53
52
|
*/
|
|
54
53
|
constructor(
|
|
55
|
-
|
|
56
|
-
private
|
|
57
|
-
|
|
58
|
-
@Inject(LogtoLoggerServiceToken)
|
|
59
|
-
private logger: LoggerService
|
|
54
|
+
private readonly config: LogtoOAuthConfig,
|
|
55
|
+
private readonly logger: LoggerService
|
|
60
56
|
) {
|
|
61
57
|
// Logto 설정 초기화
|
|
62
58
|
this.logtoConfig = {
|
|
63
|
-
endpoint:
|
|
64
|
-
appId:
|
|
65
|
-
appSecret:
|
|
66
|
-
resources:
|
|
67
|
-
scopes:
|
|
68
|
-
prompt:
|
|
69
|
-
redirectUri:
|
|
59
|
+
endpoint: config.endpoint,
|
|
60
|
+
appId: config.clientId,
|
|
61
|
+
appSecret: config.clientSecret,
|
|
62
|
+
resources: config.resources,
|
|
63
|
+
scopes: config.scopes,
|
|
64
|
+
prompt: config.prompt,
|
|
65
|
+
redirectUri: config.redirectUri,
|
|
70
66
|
grantType: GrantType.AuthorizationCode,
|
|
71
67
|
};
|
|
72
68
|
|
|
@@ -94,25 +90,17 @@ export class OAuthClient {
|
|
|
94
90
|
|
|
95
91
|
// 대시보드 로그인일 경우 별도 URI, 실패시 기본 URI로 폴백
|
|
96
92
|
if (signInType === SignInType.Dashboard) {
|
|
97
|
-
|
|
98
|
-
uri = new URL(
|
|
99
|
-
|
|
100
|
-
"LOGTO_DASHBOARD_SIGN_IN_URI"
|
|
101
|
-
)}/auth`
|
|
102
|
-
);
|
|
103
|
-
} catch (error) {
|
|
93
|
+
if (this.config.dashboardSignInUri) {
|
|
94
|
+
uri = new URL(`${this.config.dashboardSignInUri}/auth`);
|
|
95
|
+
} else {
|
|
104
96
|
this.logger.warn(
|
|
105
97
|
"대시보드 로그인 URI 설정을 찾을 수 없어 기본 URI를 사용합니다.",
|
|
106
98
|
this.constructor.name
|
|
107
99
|
);
|
|
108
|
-
uri = new URL(
|
|
109
|
-
`${this.configService.get<string>("LOGTO_SIGN_IN_URI")}/auth`
|
|
110
|
-
);
|
|
100
|
+
uri = new URL(`${this.config.signInUri}/auth`);
|
|
111
101
|
}
|
|
112
102
|
} else {
|
|
113
|
-
uri = new URL(
|
|
114
|
-
`${this.configService.get<string>("LOGTO_SIGN_IN_URI")}/auth`
|
|
115
|
-
);
|
|
103
|
+
uri = new URL(`${this.config.signInUri}/auth`);
|
|
116
104
|
}
|
|
117
105
|
|
|
118
106
|
// 상태값 생성 (CSRF 방지)
|
|
@@ -139,9 +127,7 @@ export class OAuthClient {
|
|
|
139
127
|
*/
|
|
140
128
|
public async getSignOutURI(): Promise<string> {
|
|
141
129
|
try {
|
|
142
|
-
const uri = new URL(
|
|
143
|
-
`${this.configService.get<string>("LOGTO_SIGN_IN_URI")}/session/end`
|
|
144
|
-
);
|
|
130
|
+
const uri = new URL(`${this.config.signInUri}/session/end`);
|
|
145
131
|
|
|
146
132
|
// 로그아웃 후 리다이렉트 URI 및 클라이언트 ID 설정
|
|
147
133
|
uri.searchParams.set("redirect_uri", this.logtoConfig.redirectUri!);
|
package/dist/client/config.d.ts
CHANGED
|
@@ -19,3 +19,26 @@ export declare enum GrantType {
|
|
|
19
19
|
ClientCredentials = "client_credentials",
|
|
20
20
|
RefreshToken = "refresh_token"
|
|
21
21
|
}
|
|
22
|
+
export interface LogtoVerifierConfig {
|
|
23
|
+
jwksUri: string;
|
|
24
|
+
issuer: string;
|
|
25
|
+
}
|
|
26
|
+
export interface LogtoOAuthConfig {
|
|
27
|
+
endpoint: string;
|
|
28
|
+
clientId: string;
|
|
29
|
+
clientSecret: string;
|
|
30
|
+
resources: string[];
|
|
31
|
+
scopes: string[];
|
|
32
|
+
prompt: Prompt;
|
|
33
|
+
redirectUri: string;
|
|
34
|
+
signInUri: string;
|
|
35
|
+
dashboardSignInUri?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface LogtoM2MConfig {
|
|
38
|
+
endpoint: string;
|
|
39
|
+
clientId: string;
|
|
40
|
+
clientSecret: string;
|
|
41
|
+
resource: string;
|
|
42
|
+
apiUrl: string;
|
|
43
|
+
scopes: string[];
|
|
44
|
+
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { LoggerService } from "@nestjs/common";
|
|
2
|
-
import { ConfigService } from "@nestjs/config";
|
|
3
2
|
import { AxiosResponse } from "axios";
|
|
4
3
|
import { OAuthClient, SignInType } from "./oauth-client";
|
|
5
4
|
export declare const LogtoLoginSessionToken: unique symbol;
|
|
6
5
|
export declare class LogtoLoginSession {
|
|
6
|
+
private readonly apiUrl;
|
|
7
7
|
private readonly logger;
|
|
8
|
-
private readonly configService;
|
|
9
8
|
private readonly oauthClient;
|
|
10
9
|
private readonly apiRestTemplate;
|
|
11
|
-
constructor(
|
|
10
|
+
constructor(apiUrl: string, logger: LoggerService, oauthClient: OAuthClient);
|
|
12
11
|
createSignInSession(signInType: SignInType): Promise<{
|
|
13
12
|
response: AxiosResponse | undefined;
|
|
14
13
|
state: string;
|
|
@@ -8,27 +8,22 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
13
|
};
|
|
17
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
15
|
exports.LogtoLoginSession = exports.LogtoLoginSessionToken = void 0;
|
|
19
16
|
const common_1 = require("@nestjs/common");
|
|
20
|
-
const config_1 = require("@nestjs/config");
|
|
21
17
|
const axios_1 = __importDefault(require("axios"));
|
|
22
18
|
const oauth_client_1 = require("./oauth-client");
|
|
23
19
|
const types_1 = require("./types");
|
|
24
20
|
exports.LogtoLoginSessionToken = Symbol.for("LogtoLoginSession");
|
|
25
21
|
let LogtoLoginSession = class LogtoLoginSession {
|
|
26
|
-
constructor(
|
|
22
|
+
constructor(apiUrl, logger, oauthClient) {
|
|
23
|
+
this.apiUrl = apiUrl;
|
|
27
24
|
this.logger = logger;
|
|
28
|
-
this.configService = configService;
|
|
29
25
|
this.oauthClient = oauthClient;
|
|
30
|
-
|
|
31
|
-
this.apiRestTemplate = new types_1.LogtoOAuthRESTTemplate(this.logger, baseURL);
|
|
26
|
+
this.apiRestTemplate = new types_1.LogtoOAuthRESTTemplate(this.logger, apiUrl);
|
|
32
27
|
}
|
|
33
28
|
async createSignInSession(signInType) {
|
|
34
29
|
const { uri, state } = this.oauthClient.getSignInURI(signInType);
|
|
@@ -119,10 +114,6 @@ let LogtoLoginSession = class LogtoLoginSession {
|
|
|
119
114
|
exports.LogtoLoginSession = LogtoLoginSession;
|
|
120
115
|
exports.LogtoLoginSession = LogtoLoginSession = __decorate([
|
|
121
116
|
(0, common_1.Injectable)(),
|
|
122
|
-
|
|
123
|
-
__param(1, (0, common_1.Inject)(config_1.ConfigService)),
|
|
124
|
-
__param(2, (0, common_1.Inject)(oauth_client_1.OAuthClientToken)),
|
|
125
|
-
__metadata("design:paramtypes", [Object, config_1.ConfigService,
|
|
126
|
-
oauth_client_1.OAuthClient])
|
|
117
|
+
__metadata("design:paramtypes", [String, Object, oauth_client_1.OAuthClient])
|
|
127
118
|
], LogtoLoginSession);
|
|
128
119
|
//# sourceMappingURL=logto-login-session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logto-login-session.js","sourceRoot":"","sources":["../../client/logto-login-session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logto-login-session.js","sourceRoot":"","sources":["../../client/logto-login-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { LoggerService } from "@nestjs/common";
|
|
2
|
-
import {
|
|
2
|
+
import { LogtoM2MConfig } from "./config";
|
|
3
3
|
import { LogtoTokenVerifier } from "../token";
|
|
4
4
|
import { LogtoRole, LogtoRoleResponse, LogtoUser, LogtoUserResponse } from "./types";
|
|
5
5
|
import { p3Values } from "point3-common-tool";
|
|
6
6
|
export declare const LogtoM2MClientToken: unique symbol;
|
|
7
7
|
export declare class LogtoM2MClient {
|
|
8
|
-
private readonly
|
|
8
|
+
private readonly config;
|
|
9
9
|
private readonly tokenVerifier;
|
|
10
10
|
private readonly logger;
|
|
11
11
|
private logtoConfig;
|
|
12
12
|
private accessToken?;
|
|
13
13
|
private readonly authRestTemplate;
|
|
14
14
|
private readonly apiRestTemplate;
|
|
15
|
-
constructor(
|
|
15
|
+
constructor(config: LogtoM2MConfig, tokenVerifier: LogtoTokenVerifier, logger: LoggerService);
|
|
16
16
|
fetchAccessToken(): Promise<void>;
|
|
17
17
|
fetchAccessTokenByPAT(pat: string): Promise<{
|
|
18
18
|
accessToken: string;
|
|
@@ -8,36 +8,32 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
exports.LogtoM2MClient = exports.LogtoM2MClientToken = void 0;
|
|
16
13
|
exports.generatePhoneNumberWithCountryCode = generatePhoneNumberWithCountryCode;
|
|
17
14
|
const common_1 = require("@nestjs/common");
|
|
18
|
-
const config_1 = require("
|
|
19
|
-
const config_2 = require("./config");
|
|
15
|
+
const config_1 = require("./config");
|
|
20
16
|
const token_1 = require("../token");
|
|
21
17
|
const types_1 = require("./types");
|
|
22
18
|
const point3_common_tool_1 = require("point3-common-tool");
|
|
23
19
|
const errors_1 = require("../errors");
|
|
24
20
|
exports.LogtoM2MClientToken = Symbol.for("LogtoM2MClient");
|
|
25
21
|
let LogtoM2MClient = class LogtoM2MClient {
|
|
26
|
-
constructor(
|
|
27
|
-
this.
|
|
22
|
+
constructor(config, tokenVerifier, logger) {
|
|
23
|
+
this.config = config;
|
|
28
24
|
this.tokenVerifier = tokenVerifier;
|
|
29
25
|
this.logger = logger;
|
|
30
26
|
this.logtoConfig = {
|
|
31
|
-
endpoint:
|
|
32
|
-
appId:
|
|
33
|
-
appSecret:
|
|
34
|
-
scopes:
|
|
35
|
-
resources: [
|
|
36
|
-
grantType:
|
|
27
|
+
endpoint: config.endpoint,
|
|
28
|
+
appId: config.clientId,
|
|
29
|
+
appSecret: config.clientSecret,
|
|
30
|
+
scopes: config.scopes,
|
|
31
|
+
resources: [config.resource],
|
|
32
|
+
grantType: config_1.GrantType.ClientCredentials,
|
|
37
33
|
};
|
|
38
34
|
this.authRestTemplate = new types_1.LogtoOAuthRESTTemplate(this.logger, this.logtoConfig.endpoint);
|
|
39
35
|
this.authRestTemplate.setBasic(this.logtoConfig.appId, this.logtoConfig.appSecret);
|
|
40
|
-
this.apiRestTemplate = new types_1.LogtoOAuthRESTTemplate(this.logger,
|
|
36
|
+
this.apiRestTemplate = new types_1.LogtoOAuthRESTTemplate(this.logger, config.apiUrl);
|
|
41
37
|
}
|
|
42
38
|
async fetchAccessToken() {
|
|
43
39
|
const params = new URLSearchParams();
|
|
@@ -189,11 +185,7 @@ exports.LogtoM2MClient = LogtoM2MClient;
|
|
|
189
185
|
exports.LogtoM2MClient = LogtoM2MClient = __decorate([
|
|
190
186
|
(0, common_1.Global)(),
|
|
191
187
|
(0, common_1.Injectable)(),
|
|
192
|
-
|
|
193
|
-
__param(1, (0, common_1.Inject)(token_1.LogtoTokenVerifierToken)),
|
|
194
|
-
__param(2, (0, common_1.Inject)(types_1.LogtoLoggerServiceToken)),
|
|
195
|
-
__metadata("design:paramtypes", [config_1.ConfigService,
|
|
196
|
-
token_1.LogtoTokenVerifier, Object])
|
|
188
|
+
__metadata("design:paramtypes", [Object, token_1.LogtoTokenVerifier, Object])
|
|
197
189
|
], LogtoM2MClient);
|
|
198
190
|
function generatePhoneNumberWithCountryCode(countryCode, phoneNumber) {
|
|
199
191
|
if (phoneNumber.startsWith('0')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"m2m-client.js","sourceRoot":"","sources":["../../client/m2m-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"m2m-client.js","sourceRoot":"","sources":["../../client/m2m-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { LoggerService } from "@nestjs/common";
|
|
2
|
-
import {
|
|
2
|
+
import { LogtoOAuthConfig } from "./config";
|
|
3
3
|
export declare const OAuthClientToken = "OAuthClient";
|
|
4
4
|
export declare class OAuthClient {
|
|
5
|
-
private
|
|
6
|
-
private logger;
|
|
5
|
+
private readonly config;
|
|
6
|
+
private readonly logger;
|
|
7
7
|
private logtoConfig;
|
|
8
8
|
private logtoRestTemplate;
|
|
9
9
|
static readonly prefix: string;
|
|
10
|
-
constructor(
|
|
10
|
+
constructor(config: LogtoOAuthConfig, logger: LoggerService);
|
|
11
11
|
getSignInURI(signInType: SignInType): {
|
|
12
12
|
uri: string;
|
|
13
13
|
state: string;
|
|
@@ -8,9 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
13
|
};
|
|
@@ -20,24 +17,23 @@ exports.SignInType = exports.OAuthClient = exports.OAuthClientToken = void 0;
|
|
|
20
17
|
const common_1 = require("@nestjs/common");
|
|
21
18
|
const axios_1 = __importDefault(require("axios"));
|
|
22
19
|
const config_1 = require("./config");
|
|
23
|
-
const config_2 = require("@nestjs/config");
|
|
24
20
|
const point3_common_tool_1 = require("point3-common-tool");
|
|
25
21
|
const errors_1 = require("../errors");
|
|
26
22
|
const types_1 = require("./types");
|
|
27
23
|
const Gulid = point3_common_tool_1.p3Values.Gulid;
|
|
28
24
|
exports.OAuthClientToken = "OAuthClient";
|
|
29
25
|
let OAuthClient = OAuthClient_1 = class OAuthClient {
|
|
30
|
-
constructor(
|
|
31
|
-
this.
|
|
26
|
+
constructor(config, logger) {
|
|
27
|
+
this.config = config;
|
|
32
28
|
this.logger = logger;
|
|
33
29
|
this.logtoConfig = {
|
|
34
|
-
endpoint:
|
|
35
|
-
appId:
|
|
36
|
-
appSecret:
|
|
37
|
-
resources:
|
|
38
|
-
scopes:
|
|
39
|
-
prompt:
|
|
40
|
-
redirectUri:
|
|
30
|
+
endpoint: config.endpoint,
|
|
31
|
+
appId: config.clientId,
|
|
32
|
+
appSecret: config.clientSecret,
|
|
33
|
+
resources: config.resources,
|
|
34
|
+
scopes: config.scopes,
|
|
35
|
+
prompt: config.prompt,
|
|
36
|
+
redirectUri: config.redirectUri,
|
|
41
37
|
grantType: config_1.GrantType.AuthorizationCode,
|
|
42
38
|
};
|
|
43
39
|
this.logtoRestTemplate = new types_1.LogtoOAuthRESTTemplate(logger, this.logtoConfig.endpoint);
|
|
@@ -47,16 +43,16 @@ let OAuthClient = OAuthClient_1 = class OAuthClient {
|
|
|
47
43
|
try {
|
|
48
44
|
let uri;
|
|
49
45
|
if (signInType === SignInType.Dashboard) {
|
|
50
|
-
|
|
51
|
-
uri = new URL(`${this.
|
|
46
|
+
if (this.config.dashboardSignInUri) {
|
|
47
|
+
uri = new URL(`${this.config.dashboardSignInUri}/auth`);
|
|
52
48
|
}
|
|
53
|
-
|
|
49
|
+
else {
|
|
54
50
|
this.logger.warn("대시보드 로그인 URI 설정을 찾을 수 없어 기본 URI를 사용합니다.", this.constructor.name);
|
|
55
|
-
uri = new URL(`${this.
|
|
51
|
+
uri = new URL(`${this.config.signInUri}/auth`);
|
|
56
52
|
}
|
|
57
53
|
}
|
|
58
54
|
else {
|
|
59
|
-
uri = new URL(`${this.
|
|
55
|
+
uri = new URL(`${this.config.signInUri}/auth`);
|
|
60
56
|
}
|
|
61
57
|
const state = Gulid.create(OAuthClient_1.prefix);
|
|
62
58
|
uri.searchParams.set("redirect_uri", this.logtoConfig.redirectUri);
|
|
@@ -74,7 +70,7 @@ let OAuthClient = OAuthClient_1 = class OAuthClient {
|
|
|
74
70
|
}
|
|
75
71
|
async getSignOutURI() {
|
|
76
72
|
try {
|
|
77
|
-
const uri = new URL(`${this.
|
|
73
|
+
const uri = new URL(`${this.config.signInUri}/session/end`);
|
|
78
74
|
uri.searchParams.set("redirect_uri", this.logtoConfig.redirectUri);
|
|
79
75
|
uri.searchParams.set("client_id", this.logtoConfig.appId);
|
|
80
76
|
return uri.toString();
|
|
@@ -123,9 +119,7 @@ OAuthClient.prefix = "signin";
|
|
|
123
119
|
exports.OAuthClient = OAuthClient = OAuthClient_1 = __decorate([
|
|
124
120
|
(0, common_1.Global)(),
|
|
125
121
|
(0, common_1.Injectable)(),
|
|
126
|
-
|
|
127
|
-
__param(1, (0, common_1.Inject)(types_1.LogtoLoggerServiceToken)),
|
|
128
|
-
__metadata("design:paramtypes", [config_2.ConfigService, Object])
|
|
122
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
129
123
|
], OAuthClient);
|
|
130
124
|
var SignInType;
|
|
131
125
|
(function (SignInType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-client.js","sourceRoot":"","sources":["../../client/oauth-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oauth-client.js","sourceRoot":"","sources":["../../client/oauth-client.ts"],"names":[],"mappings":"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"}
|
package/dist/module.d.ts
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
import { DynamicModule, Type } from '@nestjs/common';
|
|
2
|
+
export declare const LOGTO_MODULE_OPTIONS: unique symbol;
|
|
3
|
+
export interface LogtoLoggerOptions {
|
|
4
|
+
module?: Type<any>;
|
|
5
|
+
token: Symbol | string;
|
|
6
|
+
}
|
|
7
|
+
export interface LogtoModuleOptions {
|
|
8
|
+
global?: boolean;
|
|
9
|
+
enableClient?: boolean;
|
|
10
|
+
logger: LogtoLoggerOptions & {
|
|
11
|
+
module: Type<any>;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export interface LogtoModuleFactoryOptions {
|
|
15
|
+
enableClient?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface LogtoModuleAsyncOptions {
|
|
18
|
+
global?: boolean;
|
|
19
|
+
imports?: Type<any>[];
|
|
20
|
+
loggerToken: Symbol | string;
|
|
21
|
+
useFactory: (...args: any[]) => LogtoModuleFactoryOptions | Promise<LogtoModuleFactoryOptions>;
|
|
22
|
+
inject?: any[];
|
|
23
|
+
}
|
|
2
24
|
export declare class LogtoModule {
|
|
3
|
-
static
|
|
25
|
+
static forRoot(options: LogtoModuleOptions): DynamicModule;
|
|
26
|
+
static forRootAsync(options: LogtoModuleAsyncOptions): DynamicModule;
|
|
4
27
|
}
|