Skip to content

Commit 2a68784

Browse files
HuanCheng65claude
andcommitted
fix(auth): resolve TypeScript compilation errors in OAuth implementation
- Fix unknown error type handling in OAuth service methods - Update controller method return types from Response to void - Add proper type guards for error instanceof Error checks - Ensure consistent error handling patterns 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent e7902b7 commit 2a68784

File tree

2 files changed

+21
-16
lines changed

2 files changed

+21
-16
lines changed

src/auth/oauth/oauth.service.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ export class OAuthService {
3939
await this.loadProvider(providerId, pluginPaths, allowNpmLoading);
4040
} catch (error) {
4141
this.logger.error(
42-
`Failed to load OAuth provider '${providerId}': ${error.message}`,
43-
error.stack,
42+
`Failed to load OAuth provider '${providerId}': ${error instanceof Error ? error.message : String(error)}`,
43+
error instanceof Error ? error.stack : undefined,
4444
);
4545
}
4646
}
@@ -186,7 +186,7 @@ export class OAuthService {
186186
}
187187
} catch (error) {
188188
this.logger.debug(
189-
`Failed to load provider '${providerId}' from ${modulePath}: ${error.message}`,
189+
`Failed to load provider '${providerId}' from ${modulePath}: ${error instanceof Error ? error.message : String(error)}`,
190190
);
191191
}
192192
}
@@ -213,7 +213,7 @@ export class OAuthService {
213213
}
214214
} catch (error) {
215215
this.logger.debug(
216-
`Failed to load provider '${providerId}' from npm package '${packageName}': ${error.message}`,
216+
`Failed to load provider '${providerId}' from npm package '${packageName}': ${error instanceof Error ? error.message : String(error)}`,
217217
);
218218
}
219219

@@ -274,7 +274,7 @@ export class OAuthService {
274274
return provider.getAuthorizationUrl(state, accessType);
275275
} catch (error) {
276276
throw new OAuthError(
277-
`Failed to generate authorization URL for provider '${providerId}': ${error.message}`,
277+
`Failed to generate authorization URL for provider '${providerId}': ${error instanceof Error ? error.message : String(error)}`,
278278
providerId,
279279
'authorization',
280280
error,
@@ -300,7 +300,7 @@ export class OAuthService {
300300
return await provider.handleCallback(code, state);
301301
} catch (error) {
302302
throw new OAuthError(
303-
`Failed to handle callback for provider '${providerId}': ${error.message}`,
303+
`Failed to handle callback for provider '${providerId}': ${error instanceof Error ? error.message : String(error)}`,
304304
providerId,
305305
'token_exchange',
306306
error,
@@ -322,7 +322,7 @@ export class OAuthService {
322322
return await provider.getUserInfo(accessToken);
323323
} catch (error) {
324324
throw new OAuthError(
325-
`Failed to get user info from provider '${providerId}': ${error.message}`,
325+
`Failed to get user info from provider '${providerId}': ${error instanceof Error ? error.message : String(error)}`,
326326
providerId,
327327
'user_info',
328328
error,

src/users/users.controller.ts

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1236,21 +1236,23 @@ export class UsersController {
12361236
@Query('state') state?: string,
12371237
@Query('access_type') accessType?: string,
12381238
@Res() res?: Response,
1239-
): Promise<Response> {
1239+
): Promise<void> {
12401240
try {
12411241
const authUrl = await this.oauthService.generateAuthorizationUrl(
12421242
providerId,
12431243
state,
12441244
accessType,
12451245
);
1246-
return res!.redirect(authUrl);
1246+
res!.redirect(authUrl);
1247+
return;
12471248
} catch (error) {
12481249
if (error instanceof OAuthError) {
12491250
const frontendBaseUrl = this.configService.get('FRONTEND_BASE_URL');
12501251
const errorPath =
12511252
this.configService.get('FRONTEND_OAUTH_ERROR_PATH') || '/oauth-error';
12521253
const errorUrl = `${frontendBaseUrl}${errorPath}?error=${encodeURIComponent(error.message)}&provider=${providerId}`;
1253-
return res!.redirect(errorUrl);
1254+
res!.redirect(errorUrl);
1255+
return;
12541256
}
12551257
throw error;
12561258
}
@@ -1264,15 +1266,16 @@ export class UsersController {
12641266
@Ip() ip: string,
12651267
@Headers('User-Agent') userAgent: string | undefined,
12661268
@Res() res: Response,
1267-
): Promise<Response> {
1269+
): Promise<void> {
12681270
try {
12691271
// 检查是否有错误
12701272
if (query.error) {
12711273
const frontendBaseUrl = this.configService.get('FRONTEND_BASE_URL');
12721274
const errorPath =
12731275
this.configService.get('FRONTEND_OAUTH_ERROR_PATH') || '/oauth-error';
12741276
const errorUrl = `${frontendBaseUrl}${errorPath}?error=${encodeURIComponent(query.error)}&provider=${providerId}&description=${encodeURIComponent(query.error_description || '')}`;
1275-
return res.redirect(errorUrl);
1277+
res.redirect(errorUrl);
1278+
return;
12761279
}
12771280

12781281
if (!query.code) {
@@ -1325,11 +1328,12 @@ export class UsersController {
13251328
});
13261329

13271330
// 7. 重定向到前端
1328-
return res.redirect(frontendUrl);
1331+
res.redirect(frontendUrl);
1332+
return;
13291333
} catch (error) {
13301334
this.logger.error(
1331-
`OAuth callback failed for provider ${providerId}: ${error.message}`,
1332-
error.stack,
1335+
`OAuth callback failed for provider ${providerId}: ${error instanceof Error ? error.message : String(error)}`,
1336+
error instanceof Error ? error.stack : undefined,
13331337
);
13341338

13351339
const frontendBaseUrl = this.configService.get('FRONTEND_BASE_URL');
@@ -1338,7 +1342,8 @@ export class UsersController {
13381342
const errorMessage =
13391343
error instanceof OAuthError ? error.message : 'Internal server error';
13401344
const errorUrl = `${frontendBaseUrl}${errorPath}?error=${encodeURIComponent(errorMessage)}&provider=${providerId}`;
1341-
return res.redirect(errorUrl);
1345+
res.redirect(errorUrl);
1346+
return;
13421347
}
13431348
}
13441349
}

0 commit comments

Comments
 (0)