blob: 7d5c1ad9ed5b9106992776af9e8afc95886b259b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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');
}
}
|