Fix issue with sendBeacon request.

This commit is contained in:
Mike Cao 2022-03-10 19:01:33 -08:00
parent 48db7708de
commit 17790aa5a8
6 changed files with 23 additions and 22 deletions

View file

@ -3,11 +3,6 @@ import { getSession } from './session';
import { getAuthToken } from './auth';
import { unauthorized, badRequest, serverError } from './response';
const corsOptions = {
origin: '*',
credentials: true,
};
export function createMiddleware(middleware) {
return (req, res) =>
new Promise((resolve, reject) => {
@ -20,7 +15,7 @@ export function createMiddleware(middleware) {
});
}
export const useCors = createMiddleware(cors(corsOptions));
export const useCors = createMiddleware(cors());
export const useSession = createMiddleware(async (req, res, next) => {
let session;

View file

@ -86,3 +86,11 @@ export async function getClientInfo(req, { screen }) {
return { userAgent, browser, os, ip, country, device };
}
export function getJsonBody(req) {
if (req.headers['content-type'].indexOf('text/plain') !== -1) {
return JSON.parse(req.body);
}
return req.body;
}

View file

@ -1,9 +1,9 @@
import { getWebsiteByUuid, getSessionByUuid, createSession } from 'lib/queries';
import { getClientInfo } from 'lib/request';
import { getJsonBody, getClientInfo } from 'lib/request';
import { uuid, isValidUuid, parseToken } from 'lib/crypto';
export async function getSession(req) {
const { payload } = req.body;
const { payload } = getJsonBody(req);
if (!payload) {
throw new Error('Invalid request');