fix return value in context

This commit is contained in:
2024-10-27 20:24:06 +07:00
parent ef89372e8c
commit 571bb93e28
5 changed files with 65 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
import { Injectable, UnauthorizedException } from '@nestjs/common';
import { Injectable, Logger, UnauthorizedException } from '@nestjs/common';
import { PrismaService } from '../Prisma/prisma.service';
import { Request } from 'express';
@@ -11,18 +11,19 @@ export class GraphqlService {
async acquireContext(req: Request) {
// get x-session-id from headers
let sessionId: string;
const disableAuth = process.env.DISABLE_AUTH === 'true';
try {
sessionId = req.headers['x-session-id'] as string;
//eslint-disable-next-line @typescript-eslint/no-unused-vars
} catch (error) {
if (
process.env.NODE_ENV === 'development' &&
process.env.DISABLE_AUTH === 'true'
) {
if (disableAuth) {
return null;
}
throw new UnauthorizedException('Must provide a session ID');
}
if (disableAuth) {
return null;
}
// check if the token is valid
const session = await clerkClient.sessions.getSession(sessionId as string);
if (!session) {

View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDEDA8fysKwLu5V
A+yN8fTf5XQAVT5HXUoE1lO7Nyk8QhYOYGBO9tn8tBsmwKbXLdV7bwTtuXdctd1Y
qNpgPj1BVg+IwG3NDIhUoEfrnaPQVedLrS3LFlHIUY9r/jVLquyrIqF2pk+Kvmjs
nIMex9GcnN4DRbyrJeL7MSBp0a3KL5h478DDCkiFdGdFcZX4j3cMEBQLEd4MCgBL
8rL7+PmZRyZbyRbHGrRsAX5fq4gI0pmDCG14qmuo2y01Kg9Z1MjvNhD7DX+Ook76
Lfwzk/ivM9Y8X+kN396/Q7tHXRc1PoRtwfBPNCHTJip4HwBHW43ITATNtipIpU0O
MapN6hiDAgMBAAECggEATen1AM+WfGrKcaMzml400d7hMVivfbFHv5BmipsrmjUx
itkmrXtRuyrhN4+NPyuKEppWvRveokvtAlVpJKLXuWW4msLPYJTAgdGJg8yM1Dmv
yNW0w2fFbPVtKKBJEh+GG6WRwhPqvNtb292ABvWnCrUVTvuiNerCwM4Pcb7RcO6y
2tn6SOD1pbS9OY4WYmvqPVfJXu7ed8tsvczxIkxphkU8nhmUtcnjfRgl9SaUD66Z
sl2FRifuEQhG3BNZM/Q4Cx3sfHk34AoOwsiuVmICJyyTmeLx5eKXb1gKx/A/83zr
/YAeDt8Ni7wWOferyRDCuxPDDLtLAAoLl2jGziKV0QKBgQDzjtcHdoCUoOLCRX+X
0Xlu44wLkz33JKA4VgCgd95+GYAmvj2de0cBHjyuzfL2D0DtC/Nk6QC/ypvxLPSV
FNn4z7+9sYP6phEXY3BfVBvaZtjbX+VikbSmugtnhudFvPffOJAgeeHAj5v06xRJ
OkkB5LqTgMOmhzMr3ZQR19ocRQKBgQDOD+PLajBapCCz78YeJm82Kgd00DSkfoqV
kQHeJ+T58wWeYEo9/uGqEyJKq+tQZRHOvQgGEV74ds5DhKOWJpNB1B1/MsHLlacH
dXxRsSwd9NzZf3QtleVNvhqusA5Dcl7AJ3PxsYi/ocMULANnpaYZDR6LBwWp6t+l
NxlWbC5CJwKBgQDrmAZEP8rM+nuedF+h2YzfSNjU8Y8FG7aoB/j/QDRGQiCGWYt8
ZB0g5cDJTopwnfytz9uWhxSkcTY7KsND2jGmzj6pHaeOs0jhGN1AOTngH5AxVCet
G0hl5pzVfdcEzG/wyuQPphZLkB7J4QN0eh7Y6AnaWLnowesryWBLikJ/CQKBgQCV
j4TnrFAiScQOtbZXRdAsQP8ecsvypIHToub3Jn+URyZJ2FuqeaeyuKaIChYGSQVO
x3beaJdEwX5eFRRis+bnvZwXKXDtYdZUnJo59N0vdP0iw9ZAC+7dqWBWcCQ6IfXR
hBEsWI4HgNJFftiNzvYqcpI7mEItHPNsR/yU9HnyuwKBgCErKT8cabERrUI4T9yH
MNjuSg+l4jsK1zcddfzaT0L4d1LDGGy4m6bd8ZoCpRfo0LY1znZfeD6IaBFaJD+v
xE9BxA9cbsK6Fq1+1ID24kS1f27Ag9sh80tnRJgjb6JkDe82fG/Vzc0wuqkx3SR7
XyCLdknYuVWyMOadOPRPj1/a
-----END PRIVATE KEY-----

View File

@@ -0,0 +1,9 @@
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxAwPH8rCsC7uVQPsjfH0
3+V0AFU+R11KBNZTuzcpPEIWDmBgTvbZ/LQbJsCm1y3Ve28E7bl3XLXdWKjaYD49
QVYPiMBtzQyIVKBH652j0FXnS60tyxZRyFGPa/41S6rsqyKhdqZPir5o7JyDHsfR
nJzeA0W8qyXi+zEgadGtyi+YeO/AwwpIhXRnRXGV+I93DBAUCxHeDAoAS/Ky+/j5
mUcmW8kWxxq0bAF+X6uICNKZgwhteKprqNstNSoPWdTI7zYQ+w1/jqJO+i38M5P4
rzPWPF/pDd/ev0O7R10XNT6EbcHwTzQh0yYqeB8AR1uNyEwEzbYqSKVNDjGqTeoY
gwIDAQAB
-----END PUBLIC KEY-----

View File

@@ -5,10 +5,28 @@ import { Logger } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { clerkMiddleware } from '@clerk/express';
import graphqlUploadExpress from 'graphql-upload/graphqlUploadExpress.js';
import path from 'node:path';
import { readFileSync } from 'node:fs';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
// load private key and public key
const privateKey = readFileSync(
path.join(__dirname, 'KeyStore', 'private_key.pem'),
'utf8',
);
const publicKey = readFileSync(
path.join(__dirname, 'KeyStore', 'public_key.pem'),
'utf8',
);
// set private key and public key to env
process.env.JWT_RS256_PRIVATE_KEY = privateKey;
process.env.JWT_RS256_PUBLIC_KEY = publicKey;
Logger.log(`Private key: ${privateKey.slice(0, 10)}...`, 'Bootstrap');
Logger.log(`Public key: ${publicKey.slice(0, 10)}...`, 'Bootstrap');
const corsOrigin = (process.env.CORS_ORIGIN ?? '').split(','); // split by comma to array
app.enableCors({
origin: corsOrigin,