fix return value in context
This commit is contained in:
@@ -10,6 +10,10 @@
|
|||||||
{
|
{
|
||||||
"include": "**/*.pug",
|
"include": "**/*.pug",
|
||||||
"outDir": "./dist/src/"
|
"outDir": "./dist/src/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "**/*.pem",
|
||||||
|
"outDir": "./dist/src/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Injectable, UnauthorizedException } from '@nestjs/common';
|
import { Injectable, Logger, UnauthorizedException } from '@nestjs/common';
|
||||||
|
|
||||||
import { PrismaService } from '../Prisma/prisma.service';
|
import { PrismaService } from '../Prisma/prisma.service';
|
||||||
import { Request } from 'express';
|
import { Request } from 'express';
|
||||||
@@ -11,18 +11,19 @@ export class GraphqlService {
|
|||||||
async acquireContext(req: Request) {
|
async acquireContext(req: Request) {
|
||||||
// get x-session-id from headers
|
// get x-session-id from headers
|
||||||
let sessionId: string;
|
let sessionId: string;
|
||||||
|
const disableAuth = process.env.DISABLE_AUTH === 'true';
|
||||||
try {
|
try {
|
||||||
sessionId = req.headers['x-session-id'] as string;
|
sessionId = req.headers['x-session-id'] as string;
|
||||||
//eslint-disable-next-line @typescript-eslint/no-unused-vars
|
//eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (
|
if (disableAuth) {
|
||||||
process.env.NODE_ENV === 'development' &&
|
|
||||||
process.env.DISABLE_AUTH === 'true'
|
|
||||||
) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
throw new UnauthorizedException('Must provide a session ID');
|
throw new UnauthorizedException('Must provide a session ID');
|
||||||
}
|
}
|
||||||
|
if (disableAuth) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
// check if the token is valid
|
// check if the token is valid
|
||||||
const session = await clerkClient.sessions.getSession(sessionId as string);
|
const session = await clerkClient.sessions.getSession(sessionId as string);
|
||||||
if (!session) {
|
if (!session) {
|
||||||
|
|||||||
28
src/KeyStore/private_key.pem
Normal file
28
src/KeyStore/private_key.pem
Normal 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-----
|
||||||
9
src/KeyStore/public_key.pem
Normal file
9
src/KeyStore/public_key.pem
Normal 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-----
|
||||||
18
src/main.ts
18
src/main.ts
@@ -5,10 +5,28 @@ import { Logger } from '@nestjs/common';
|
|||||||
import { NestFactory } from '@nestjs/core';
|
import { NestFactory } from '@nestjs/core';
|
||||||
import { clerkMiddleware } from '@clerk/express';
|
import { clerkMiddleware } from '@clerk/express';
|
||||||
import graphqlUploadExpress from 'graphql-upload/graphqlUploadExpress.js';
|
import graphqlUploadExpress from 'graphql-upload/graphqlUploadExpress.js';
|
||||||
|
import path from 'node:path';
|
||||||
|
import { readFileSync } from 'node:fs';
|
||||||
|
|
||||||
async function bootstrap() {
|
async function bootstrap() {
|
||||||
const app = await NestFactory.create(AppModule);
|
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
|
const corsOrigin = (process.env.CORS_ORIGIN ?? '').split(','); // split by comma to array
|
||||||
app.enableCors({
|
app.enableCors({
|
||||||
origin: corsOrigin,
|
origin: corsOrigin,
|
||||||
|
|||||||
Reference in New Issue
Block a user