Add endpoint to get project key for ST V3

This commit is contained in:
Tuan Dang
2023-09-26 14:24:55 +01:00
parent aa1e0b0f28
commit c65a53f1f7
2 changed files with 36 additions and 0 deletions

View File

@@ -1,6 +1,8 @@
import { Request, Response } from "express";
import { Types } from "mongoose";
import {
IServiceTokenDataV3,
IUser,
ServiceTokenDataV3,
ServiceTokenDataV3Key
} from "../../models";
@@ -24,6 +26,32 @@ import { BadRequestError, ResourceNotFoundError } from "../../utils/errors";
import { EEAuditLogService } from "../../ee/services";
import { getJwtServiceTokenSecret } from "../../config";
/**
* Return project key for service token
* @param req
* @param res
*/
export const getServiceTokenDataKey = async (req: Request, res: Response) => {
const key = await ServiceTokenDataV3Key.findOne({
serviceTokenData: (req.authData.authPayload as IServiceTokenDataV3)._id
}).populate<{ sender: IUser }>("sender", "publicKey");
if (!key) throw ResourceNotFoundError({
message: "Failed to find project key for service token"
});
const { _id, encryptedKey, nonce, sender: { publicKey } } = key;
return res.status(200).send({
key: {
_id,
encryptedKey,
publicKey,
nonce
}
});
}
/**
* Create service token data
* @param req

View File

@@ -4,6 +4,14 @@ import { requireAuth } from "../../middleware";
import { AuthMode } from "../../variables";
import { serviceTokenDataController } from "../../controllers/v3";
router.get(
"/me/key",
requireAuth({
acceptedAuthModes: [AuthMode.SERVICE_TOKEN_V3]
}),
serviceTokenDataController.getServiceTokenDataKey
);
router.post(
"/",
requireAuth({