pad_utils: Factor out author token generation

This commit is contained in:
Richard Hansen 2022-02-28 19:20:55 -05:00
parent 4e1674ceaf
commit 8053875d45
4 changed files with 10 additions and 3 deletions

View File

@ -178,7 +178,7 @@ const sendClientReady = (isReconnect) => {
let token = Cookies.get('token');
if (token == null) {
token = `t.${randomString()}`;
token = padutils.generateAuthorToken();
Cookies.set('token', token, {expires: 60});
}

View File

@ -327,6 +327,12 @@ const padutils = {
return cc;
}
}),
/**
* Returns a string that can be used in the `token` cookie as a secret that authenticates a
* particular author.
*/
generateAuthorToken: () => `t.${randomString()}`,
};
let globalExceptionHandler = null;

View File

@ -5,6 +5,7 @@ const apiHandler = require('../../node/handler/APIHandler');
const assert = require('assert').strict;
const io = require('socket.io-client');
const log4js = require('log4js');
const {padutils} = require('../../static/js/pad_utils');
const process = require('process');
const server = require('../../node/server');
const setCookieParser = require('set-cookie-parser');
@ -172,7 +173,7 @@ exports.connect = async (res = null) => {
* @param {string} padId - Which pad to join.
* @returns The CLIENT_VARS message from the server.
*/
exports.handshake = async (socket, padId, token = 't.12345') => {
exports.handshake = async (socket, padId, token = padutils.generateAuthorToken()) => {
logger.debug('sending CLIENT_READY...');
socket.send({
component: 'pad',

View File

@ -37,7 +37,7 @@ describe(__filename, function () {
roPadId = await readOnlyManager.getReadOnlyId(padId);
res = await agent.get(`/p/${roPadId}`).expect(200);
roSocket = await common.connect(res);
await common.handshake(roSocket, roPadId, `t.${common.randomString(8)}`);
await common.handshake(roSocket, roPadId);
});
afterEach(async function () {