@thinkingcat/auth-utils 1.0.9 → 1.0.11

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 (2) hide show
  1. package/README.md +40 -17
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -60,7 +60,7 @@ npm install @thinkingcat/auth-utils
60
60
  ```json
61
61
  {
62
62
  "dependencies": {
63
- "@thinkingcat/auth-utils": "^1.0.8"
63
+ "@thinkingcat/auth-utils": "^1.0.11"
64
64
  }
65
65
  }
66
66
  ```
@@ -152,25 +152,25 @@ import {
152
152
  } from "@thinkingcat/auth-utils";
153
153
  ```
154
154
 
155
- ### 2. 라이센스 키 설정 (선택사항)
155
+ ### 2. 라이센스 키 사용
156
156
 
157
- 라이센스 키를 사용하려면 `.env.local` 파일에 다음 환경 변수를 설정하세요:
157
+ 라이센스 키는 **필수**입니다. 모든 함수 호출 `licenseKey` 파라미터를 전달해야 합니다.
158
158
 
159
- ```env
160
- # 단일 라이센스 (가장 간단)
161
- LICENSE_KEY=TC-checkon-XXXX-XXXX
162
-
163
- # 또는 여러 서비스별 키 목록
164
- LICENSE_KEYS={"checkon":"TC-checkon-XXXX-XXXX","renton":"TC-renton-YYYY-YYYY"}
159
+ ```typescript
160
+ // 예시: handleMiddleware 사용
161
+ const response = await handleMiddleware(req, middlewareConfig, {
162
+ secret: process.env.NEXTAUTH_SECRET!,
163
+ isProduction: process.env.NODE_ENV === "production",
164
+ ssoBaseURL: process.env.SSO_BASE_URL!,
165
+ licenseKey: process.env.LICENSE_KEY!, // 필수
166
+ });
165
167
  ```
166
168
 
167
- **중요**:
168
-
169
- - 라이센스 키는 선택사항입니다. 제공하지 않으면 라이센스 검증을 건너뜁니다.
170
- - `LICENSE_KEY` 환경 변수를 설정하면 함수 호출 자동으로 사용됩니다.
171
- - 함수 파라미터로 `licenseKey`를 전달하면 환경 변수보다 우선합니다.
169
+ **중요**:
170
+ - 라이센스 키는 모든 함수 호출 시 필수 파라미터입니다.
171
+ - 라이센스 키가 없거나 유효하지 않으면 함수가 에러를 발생시킵니다.
172
+ - 라이센스 키는 SHA-256 해시로 변환되어 모듈 내부의 유효한 키 목록과 비교됩니다.
172
173
  - 다른 환경 변수(NEXTAUTH_SECRET, SSO_BASE_URL 등)는 이 패키지를 사용하는 애플리케이션에서 관리합니다.
173
- - `.env.example` 파일을 참조하여 라이센스 키 설정 방법을 확인하세요.
174
174
 
175
175
  ## 📚 주요 기능 (Features)
176
176
 
@@ -775,6 +775,7 @@ return new NextResponse(html, {
775
775
  - `isProduction`: 프로덕션 환경 여부 (기본값: false)
776
776
  - `cookieDomain`: 쿠키 도메인 (선택)
777
777
  - `serviceId`: 서비스 ID (필수)
778
+ - `licenseKey`: 라이센스 키 (필수)
778
779
 
779
780
  **반환값:**
780
781
 
@@ -791,7 +792,8 @@ const response = await createAuthResponse(accessToken, secret, {
791
792
  cookiePrefix: "myservice",
792
793
  isProduction: process.env.NODE_ENV === "production",
793
794
  cookieDomain: process.env.COOKIE_DOMAIN,
794
- serviceId: "myservice", // 필수
795
+ serviceId: "myservice",
796
+ licenseKey: process.env.LICENSE_KEY!, // 필수
795
797
  });
796
798
  ```
797
799
 
@@ -1156,6 +1158,7 @@ interface MiddlewareOptions {
1156
1158
  getNextAuthToken?: (req: NextRequest) => Promise<JWT | null>;
1157
1159
  ssoBaseURL: string;
1158
1160
  authServiceKey?: string;
1161
+ licenseKey: string;
1159
1162
  }
1160
1163
  ```
1161
1164
 
@@ -1281,10 +1284,30 @@ setCustomTokens(response, accessToken, {
1281
1284
  });
1282
1285
  ```
1283
1286
 
1287
+ ### 문제 7: "License key is required" 또는 "Invalid license key" 에러
1288
+
1289
+ **해결 방법:**
1290
+ 라이센스 키는 모든 함수 호출 시 필수입니다. 환경 변수에서 라이센스 키를 가져와서 전달하세요:
1291
+
1292
+ ```typescript
1293
+ const licenseKey = process.env.LICENSE_KEY;
1294
+ if (!licenseKey) {
1295
+ throw new Error("LICENSE_KEY environment variable is required");
1296
+ }
1297
+
1298
+ // 함수 호출 시 licenseKey 전달
1299
+ const response = await handleMiddleware(req, middlewareConfig, {
1300
+ secret: process.env.NEXTAUTH_SECRET!,
1301
+ licenseKey, // 필수
1302
+ ssoBaseURL: process.env.SSO_BASE_URL!,
1303
+ // ... 기타 옵션
1304
+ });
1305
+ ```
1306
+
1284
1307
  ## 📦 패키지 정보
1285
1308
 
1286
1309
  - **패키지명**: `@thinkingcat/auth-utils`
1287
- - **버전**: `1.0.8`
1310
+ - **버전**: `1.0.11`
1288
1311
  - **라이선스**: MIT
1289
1312
  - **저장소**: npm registry
1290
1313
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkingcat/auth-utils",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "description": "Authentication utilities for ThinkingCat SSO services",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",