Added API key authentication.

This commit is contained in:
2024-08-31 04:59:05 +02:00
parent da893c1a76
commit e8864ce35b
20 changed files with 514 additions and 28 deletions

View File

@@ -1,7 +1,16 @@
/* eslint-disable no-param-reassign */
import { stringify } from '@brillout/json-serializer/stringify'; /* eslint-disable-line import/extensions */
import IPCIDR from 'ip-cidr';
import { login, signup } from '../auth.js';
import {
login,
signup,
fetchUserKeys,
createKey,
removeUserKey,
flushUserKeys,
} from '../auth.js';
import { fetchUser } from '../users.js';
function getIp(req) {
@@ -68,4 +77,28 @@ export async function signupApi(req, res) {
req.session.user = user;
res.send(user);
}
export async function fetchUserKeysApi(req, res) {
const keys = await fetchUserKeys(req.user);
res.send(stringify(keys));
}
export async function createKeyApi(req, res) {
const key = await createKey(req.user);
res.send(stringify(key));
}
export async function removeUserKeyApi(req, res) {
await removeUserKey(req.user, req.params.keyIdentifier);
res.status(204).send();
}
export async function flushUserKeysApi(req, res) {
await flushUserKeys(req.user);
res.status(204).send();
}
/* eslint-enable no-param-reassign */