update oauth
This commit is contained in:
45
apps/api-gateway/src/controllers/well-known.controller.ts
Normal file
45
apps/api-gateway/src/controllers/well-known.controller.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { Controller, Get } from '@nestjs/common';
|
||||
import { ApiOperation, ApiTags } from '@nestjs/swagger';
|
||||
import { CoreGrpcService } from '../core-grpc.service';
|
||||
import { buildOpenIdConfiguration, resolveOAuthIssuer } from '../lib/oauth-issuer';
|
||||
|
||||
@ApiTags('OpenID Connect')
|
||||
@Controller('.well-known')
|
||||
export class WellKnownController {
|
||||
constructor(private readonly core: CoreGrpcService) {}
|
||||
|
||||
@Get('openid-configuration')
|
||||
@ApiOperation({
|
||||
summary: 'OpenID Connect Discovery',
|
||||
description: 'Метаданные OIDC-провайдера. Issuer и endpoints берутся из PUBLIC_API_URL в настройках.'
|
||||
})
|
||||
async openIdConfiguration() {
|
||||
const issuer = await resolveOAuthIssuer(this.core);
|
||||
return buildOpenIdConfiguration(issuer);
|
||||
}
|
||||
|
||||
@Get('jwks.json')
|
||||
@ApiOperation({
|
||||
summary: 'JWKS',
|
||||
description: 'Пустой набор ключей: токены подписываются HS256 на стороне IdP. Для проверки id_token используйте userinfo.'
|
||||
})
|
||||
jwks() {
|
||||
return { keys: [] };
|
||||
}
|
||||
}
|
||||
|
||||
@ApiTags('OpenID Connect')
|
||||
@Controller('oauth/authorize')
|
||||
export class OAuthAuthorizeDiscoveryController {
|
||||
constructor(private readonly core: CoreGrpcService) {}
|
||||
|
||||
@Get('.well-known/openid-configuration')
|
||||
@ApiOperation({
|
||||
summary: 'OpenID Discovery (alias)',
|
||||
description: 'Совместимость с клиентами, ошибочно использующими authorization endpoint как issuer.'
|
||||
})
|
||||
async openIdConfigurationAlias() {
|
||||
const issuer = await resolveOAuthIssuer(this.core);
|
||||
return buildOpenIdConfiguration(issuer);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user