import { Controller, Get, Redirect } from '@nestjs/common'; import { ConfigurationService } from './modules/config/config.service'; @Controller() export class AppController { constructor(private config: ConfigurationService) {} @Get() @Redirect('/account/general') getHello() { return; } @Get('/.well-known/openid-configuration') openidConfiguration() { const base = this.config.get('app.base_url'); return { issuer: this.config.get('jwt.issuer'), authorization_endpoint: `${base}/oauth2/authorize`, token_endpoint: `${base}/oauth2/token`, jwks_uri: `${base}/oauth2/jwks`, userinfo_endpoint: `${base}/api/user`, introspection_endpoint: `${base}/oauth2/introspect`, response_types_supported: ['code', 'id_token'], id_token_signing_alg_values_supported: [this.config.get('jwt.algorithm')], subject_types_supported: ['public'], scopes_supported: ['openid', 'profile', 'picture', 'email'], claims_supported: [ 'aud', 'exp', 'iat', 'iss', 'sub', 'name', 'preferred_username', 'nickname', 'profile', 'picture', 'updated_at', 'email', 'email_verified', ], code_challenge_methods_supported: ['plain', 'S256'], grant_types_supported: ['authorization_code', 'refresh_token'], }; } }