fix(auth): change auth to work with remote docker lab

This commit is contained in:
Nicolas 2025-10-30 14:23:52 -04:00
parent 2dd8bdb3c3
commit 78aec894ed
3 changed files with 57 additions and 57 deletions

View File

@ -17,7 +17,7 @@ ENV AUTHENTIK_AUTH_URL="https://auth.targo.ca/application/o/authorize/"
ENV AUTHENTIK_TOKEN_URL="https://auth.targo.ca/application/o/token/" ENV AUTHENTIK_TOKEN_URL="https://auth.targo.ca/application/o/token/"
ENV AUTHENTIK_USERINFO_URL="https://auth.targo.ca/application/o/userinfo/" ENV AUTHENTIK_USERINFO_URL="https://auth.targo.ca/application/o/userinfo/"
ENV TARGO_FRONTEND_URI="http://localhost:9000/" ENV TARGO_FRONTEND_URI="http://10.100.251.2/"
ENV ATTACHMENTS_SERVER_ID="server" ENV ATTACHMENTS_SERVER_ID="server"
ENV ATTACHMENTS_ROOT=C:/ ENV ATTACHMENTS_ROOT=C:/

View File

@ -12,7 +12,7 @@ export class AuthController {
@Get('/callback') @Get('/callback')
@UseGuards(OIDCLoginGuard) @UseGuards(OIDCLoginGuard)
loginCallback(@Req() req: Request, @Res() res: Response) { loginCallback(@Req() req: Request, @Res() res: Response) {
res.redirect('http://localhost:9000/#/login-success'); res.redirect('http://10.100.251.2:9011/#/login-success');
} }
@Get('/me') @Get('/me')

View File

@ -1,10 +1,10 @@
import 'reflect-metadata'; import 'reflect-metadata';
//import and if case for @nestjs/schedule Cron jobs //import and if case for @nestjs/schedule Cron jobs
import * as nodeCrypto from 'crypto'; import * as nodeCrypto from 'crypto';
if(!(globalThis as any).crypto) { if (!(globalThis as any).crypto) {
(globalThis as any).crypto = nodeCrypto; (globalThis as any).crypto = nodeCrypto;
} }
import { ensureAttachmentsTmpDir } from './config/attachment.fs'; import { ensureAttachmentsTmpDir } from './config/attachment.fs';
import { resolveAttachmentsRoot } from './config/attachment.config';// log to be removed post dev import { resolveAttachmentsRoot } from './config/attachment.config';// log to be removed post dev
import { ATT_TMP_DIR } from './config/attachment.config'; // log to be removed post dev import { ATT_TMP_DIR } from './config/attachment.config'; // log to be removed post dev
@ -20,72 +20,72 @@ import * as session from 'express-session';
import * as passport from 'passport'; import * as passport from 'passport';
async function bootstrap() { async function bootstrap() {
const app = await NestFactory.create(AppModule); const app = await NestFactory.create(AppModule);
const reflector = app.get(Reflector); //setup Reflector for Roles() const reflector = app.get(Reflector); //setup Reflector for Roles()
app.useGlobalGuards( app.useGlobalGuards(
// new JwtAuthGuard(reflector), //Authentification JWT // new JwtAuthGuard(reflector), //Authentification JWT
new RolesGuard(reflector), //deny-by-default and Role-based Access Control new RolesGuard(reflector), //deny-by-default and Role-based Access Control
new OwnershipGuard(reflector, app.get(ModuleRef)), //Global use of OwnershipGuard, not implemented yet new OwnershipGuard(reflector, app.get(ModuleRef)), //Global use of OwnershipGuard, not implemented yet
); );
// Authentication and session // Authentication and session
app.use(session({ app.use(session({
secret: 'This is a super secret dev secret that you cant share with anyone', secret: 'This is a super secret dev secret that you cant share with anyone',
resave: false, resave: false,
saveUninitialized: false, saveUninitialized: false,
rolling: true, rolling: true,
cookie: { cookie: {
maxAge: 30 * 60 * 1000, maxAge: 30 * 60 * 1000,
httpOnly: true, httpOnly: true,
} }
})) }))
app.use(passport.initialize()); app.use(passport.initialize());
app.use(passport.session()); app.use(passport.session());
// Enable CORS // Enable CORS
app.enableCors({ app.enableCors({
origin: 'http://localhost:9000', origin: ['http://10.100.251.2:9011', 'http://10.100.251.2:9012', 'http://10.100.251.2:9013'],
credentials: true, credentials: true,
}); });
//swagger config
const config = new DocumentBuilder()
.setTitle('Targo_Backend')
.setDescription('Documentation de l`API REST pour Targo (NestJS + Prisma)')
.setVersion('1.0')
.addBearerAuth({
type: 'http',
scheme: 'bearer',
bearerFormat: 'JWT',
name: 'Authorization',
description: 'Invalid JWT token',
in: 'header',
}, 'access-token')
.addTag('Users')
.addTag('Employees')
.addTag('Customers')
.addTag('Timesheets')
.addTag('Shifts')
.addTag('Leave Requests')
.addTag('Shift Codes')
.addTag('OAuth Access Tokens')
.addTag('Authorization')
.build();
//swagger config
const config = new DocumentBuilder()
.setTitle('Targo_Backend')
.setDescription('Documentation de l`API REST pour Targo (NestJS + Prisma)')
.setVersion('1.0')
.addBearerAuth({
type: 'http',
scheme: 'bearer',
bearerFormat: 'JWT',
name: 'Authorization',
description: 'Invalid JWT token',
in: 'header',
}, 'access-token')
.addTag('Users')
.addTag('Employees')
.addTag('Customers')
.addTag('Timesheets')
.addTag('Shifts')
.addTag('Leave Requests')
.addTag('Shift Codes')
.addTag('OAuth Access Tokens')
.addTag('Authorization')
.build();
//document builder for swagger docs //document builder for swagger docs
const documentFactory = () => SwaggerModule.createDocument(app, config); const documentFactory = () => SwaggerModule.createDocument(app, config);
const document = documentFactory() const document = documentFactory()
SwaggerModule.setup('api/docs', app, document); SwaggerModule.setup('api/docs', app, document);
writeFileSync('./docs/swagger/swagger-spec.json', JSON.stringify(document, null, 2)); writeFileSync('./docs/swagger/swagger-spec.json', JSON.stringify(document, null, 2));
// logs to be removed post dev // logs to be removed post dev
console.log('[ENV.ATTACHMENTS_ROOT]', process.env.ATTACHMENTS_ROOT); console.log('[ENV.ATTACHMENTS_ROOT]', process.env.ATTACHMENTS_ROOT);
console.log('[resolveAttachmentsRoot()]', resolveAttachmentsRoot()); console.log('[resolveAttachmentsRoot()]', resolveAttachmentsRoot());
console.log('[ATT_TMP_DIR()]', ATT_TMP_DIR()); console.log('[ATT_TMP_DIR()]', ATT_TMP_DIR());
await ensureAttachmentsTmpDir(); await ensureAttachmentsTmpDir();
await app.listen(process.env.PORT ?? 3000); await app.listen(process.env.PORT ?? 3000);
} }
bootstrap(); bootstrap();