feat: Add API key support

This commit is contained in:
2023-06-20 01:47:00 +02:00
parent 5c1ed32cb6
commit eac88b2ec3
14 changed files with 406 additions and 75 deletions

View File

@ -0,0 +1,19 @@
import type { APIRoute } from 'astro'
import crypto from 'node:crypto'
import DaoFactory from '../../../../../models/DaoFactory'
export const post: APIRoute = async ({ params, request }) => {
const userId = params.userId as string
const dao = await DaoFactory.get('apiKey').create({
user: userId,
key: crypto.randomUUID(),
permissions: [
'admin.user.list'
]
})
return {
status: 201,
body: JSON.stringify(dao)
}
}

View File

@ -0,0 +1,17 @@
import type { APIRoute } from 'astro'
import { validateAuth } from '../../../libs/validateAuth'
export const get: APIRoute = async ({ params, request }) => {
const requestInvalid = await validateAuth(request, {
name: 'user.list',
api: false,
cookie: true
})
if (requestInvalid) {
return requestInvalid
}
return {
status: 200,
body: JSON.stringify({iam: true})
}
}