33 lines
1.3 KiB
JavaScript
33 lines
1.3 KiB
JavaScript
import getAuthCookieNames from "../../functions/backend/cookies/get-auth-cookie-names";
|
|
import parseCookies from "../../utils/backend/parseCookies";
|
|
import decrypt from "../../functions/dsql/decrypt";
|
|
import EJSON from "../../utils/ejson";
|
|
/**
|
|
* # Verify the temp email code sent to the user's email address
|
|
*/
|
|
export default async function validateTempEmailCode({ request, email, cookieString, }) {
|
|
var _a;
|
|
try {
|
|
const keyNames = getAuthCookieNames();
|
|
const oneTimeCodeCookieName = keyNames.oneTimeCodeName;
|
|
const cookies = parseCookies({ request, cookieString });
|
|
const encryptedOneTimeCode = cookies[oneTimeCodeCookieName];
|
|
const encryptedPayload = decrypt({
|
|
encryptedString: encryptedOneTimeCode,
|
|
});
|
|
const payload = EJSON.parse(encryptedPayload);
|
|
if ((payload === null || payload === void 0 ? void 0 : payload.email) && !email) {
|
|
return payload;
|
|
}
|
|
if ((payload === null || payload === void 0 ? void 0 : payload.email) && payload.email === email) {
|
|
return payload;
|
|
}
|
|
return null;
|
|
}
|
|
catch (error) {
|
|
(_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Validate Temp Email Code Error`, error);
|
|
console.log("validateTempEmailCode error:", error.message);
|
|
return null;
|
|
}
|
|
}
|