mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-15 00:52:09 +00:00
69 lines
2.2 KiB
TypeScript
69 lines
2.2 KiB
TypeScript
import { Types } from 'mongoose';
|
|
import { createTokenHelper, validateTokenHelper } from '../helpers/token';
|
|
|
|
/**
|
|
* Class to handle token actions
|
|
* TODO: elaborate more on this class
|
|
*/
|
|
class TokenService {
|
|
/**
|
|
* Create a token [token] for type [type] with associated details
|
|
* @param {Object} obj
|
|
* @param {String} obj.type - type or context of token (e.g. emailConfirmation)
|
|
* @param {String} obj.email - email associated with the token
|
|
* @param {String} obj.phoneNumber - phone number associated with the token
|
|
* @param {Types.ObjectId} obj.organizationId - id of organization associated with the token
|
|
* @returns {String} token - the token to create
|
|
*/
|
|
static async createToken({
|
|
type,
|
|
email,
|
|
phoneNumber,
|
|
organizationId
|
|
}: {
|
|
type: 'emailConfirmation' | 'emailMfa' | 'organizationInvitation' | 'passwordReset';
|
|
email?: string;
|
|
phoneNumber?: string;
|
|
organizationId?: Types.ObjectId;
|
|
}) {
|
|
return await createTokenHelper({
|
|
type,
|
|
email,
|
|
phoneNumber,
|
|
organizationId
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Validate whether or not token [token] and its associated details match a token in the DB
|
|
* @param {Object} obj
|
|
* @param {String} obj.type - type or context of token (e.g. emailConfirmation)
|
|
* @param {String} obj.email - email associated with the token
|
|
* @param {String} obj.phoneNumber - phone number associated with the token
|
|
* @param {Types.ObjectId} obj.organizationId - id of organization associated with the token
|
|
* @param {String} obj.token - the token to validate
|
|
*/
|
|
static async validateToken({
|
|
type,
|
|
email,
|
|
phoneNumber,
|
|
organizationId,
|
|
token
|
|
}: {
|
|
type: 'emailConfirmation' | 'emailMfa' | 'organizationInvitation' | 'passwordReset';
|
|
email?: string;
|
|
phoneNumber?: string;
|
|
organizationId?: Types.ObjectId;
|
|
token: string;
|
|
}) {
|
|
return await validateTokenHelper({
|
|
type,
|
|
email,
|
|
phoneNumber,
|
|
organizationId,
|
|
token
|
|
});
|
|
}
|
|
}
|
|
|
|
export default TokenService; |