import { createHmac, randomBytes } from 'node:crypto' /** * TokenHelper * * @author Björn Hase * @license hhttps://www.gnu.org/licenses/gpl-3.0.en.html GPL-3 * @link https://git.node001.net/HerrHase/signpost.git * */ const TokenHelper = { /** * create hash from token * * @param string token * * @return string * */ create(token) { const hmac = createHmac(process.env.APP_HASH_TYPE, process.env.APP_SALT) const buffer = new Buffer(token) return hmac.update(buffer).digest('base64') }, /** * check if token and hash are equal * * @param string token * @param string hash * * @return boolean * */ equal(token, hash) { return TokenHelper.create(token) === hash } } export default TokenHelper