import { auth, post } from '$lib/utils'; import Qr from 'qrcode-base64'; import { error } from '@sveltejs/kit'; export async function POST({ cookies, request }) { try { let body = await request.json(); let { username, secret } = await post('/otpsecret', body, auth(cookies)); let uri = `otpauth://totp/coinos:${username}?secret=${secret}&period=30&digits=6&algorithm=SHA1&issuer=coinos`; return new Response(JSON.stringify({ secret, uri, qr: Qr.drawImg(uri, { size: 600 }) })); } catch (e) { if (e.message.includes('pin')) throw e; throw new error(500, 'Problem saving secret'); } }