🏗️」 wip: tmp commit, will be overriden later, can be ignored

This commit is contained in:
yosyo
2025-09-27 15:50:09 +02:00
parent a93d295789
commit cb8823fcf3
5 changed files with 56 additions and 5 deletions

View File

@ -2,6 +2,7 @@
"dependencies": {
"@avalabs/avalanchejs": "^5.0.0",
"@fastify/cookie": "^11.0.2",
"@fastify/cors": "^11.1.0",
"@fastify/env": "^5.0.2",
"@fastify/jwt": "^9.1.0",
"axios": "^1.10.0",

11
pnpm-lock.yaml generated
View File

@ -14,6 +14,9 @@ importers:
'@fastify/cookie':
specifier: ^11.0.2
version: 11.0.2
'@fastify/cors':
specifier: ^11.1.0
version: 11.1.0
'@fastify/env':
specifier: ^5.0.2
version: 5.0.2
@ -255,6 +258,9 @@ packages:
'@fastify/cookie@11.0.2':
resolution: {integrity: sha512-GWdwdGlgJxyvNv+QcKiGNevSspMQXncjMZ1J8IvuDQk0jvkzgWWZFNC2En3s+nHndZBGV8IbLwOI/sxCZw/mzA==}
'@fastify/cors@11.1.0':
resolution: {integrity: sha512-sUw8ed8wP2SouWZTIbA7V2OQtMNpLj2W6qJOYhNdcmINTu6gsxVYXjQiM9mdi8UUDlcoDDJ/W2syPo1WB2QjYA==}
'@fastify/deepmerge@2.0.2':
resolution: {integrity: sha512-3wuLdX5iiiYeZWP6bQrjqhrcvBIf0NHbQH1Ur1WbHvoiuTYUEItgygea3zs8aHpiitn0lOB8gX20u1qO+FDm7Q==}
@ -1758,6 +1764,11 @@ snapshots:
cookie: 1.0.2
fastify-plugin: 5.0.1
'@fastify/cors@11.1.0':
dependencies:
fastify-plugin: 5.0.1
toad-cache: 3.7.0
'@fastify/deepmerge@2.0.2': {}
'@fastify/env@5.0.2':

View File

@ -1,5 +1,6 @@
import fastifyJWT from '@fastify/jwt';
import fastifyCookie from '@fastify/cookie';
import cors from '@fastify/cors'
import { register } from './register.js';
import { login } from './login.js';
@ -22,6 +23,12 @@ authDB.prepareDB();
*/
export default async function(fastify, options) {
fastify.register(cors, {
origin: "http://localhost:5173",
credentials: true,
methods: [ "GET", "POST", "DELETE", "OPTIONS" ]
});
fastify.register(fastifyJWT, {
secret: process.env.JWT_SECRET || '123456789101112131415161718192021',
cookie: {

View File

@ -37,11 +37,7 @@ export default class extends Aview {
credentials: "include",
body: JSON.stringify({ user: username, password: password }),
});
const data = await response.json();
/*const data = { "error": "invalid password or smth" };
const response = { status: 400};*/
if (response.status === 200)
{

View File

@ -16,7 +16,7 @@ export default class extends Aview {
<input type="text" id="username" placeholder="username" class="bg-white text-neutral-900 border rounded-md w-full px-4 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500"></input>
<input type="password" id="password" placeholder="password" class="bg-white text-neutral-900 border w-full px-4 py-2 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"></input>
<button type="submit" class="bg-blue-600 text-white hover:bg-blue-500 w-full py-2 rounded-md transition-colors">register</button>
<button id="register-button" type="submit" class="bg-blue-600 text-white hover:bg-blue-500 w-full py-2 rounded-md transition-colors">register</button>
<a class="text-gray-400 dark:text-gray-600 underline" href="/login" data-link>
i already have an account
@ -24,4 +24,40 @@ export default class extends Aview {
</div>
`;
}
async run() {
const login = async () => {
const username = (document.getElementById("username") as HTMLInputElement).value;
const password = (document.getElementById("password") as HTMLInputElement).value;
try {
const response = await fetch("http://localhost:3001/register", {
method: "POST",
headers: { "Content-Type": "application/json", },
credentials: "include",
body: JSON.stringify({ user: username, password: password }),
});
const data = await response.json();
if (response.status === 200)
{
navigationManager("/");
}
else if (response.status === 400)
{
document.getElementById("login-error-message").innerHTML = "error: " + data.error;
document.getElementById("login-error-message").classList.remove("hidden");
}
}
catch (error)
{
console.log(error);
document.getElementById("login-error-message").innerHTML = "error: server error, try again later...";
document.getElementById("login-error-message").classList.remove("hidden");
}
};
document.getElementById("register-button")?.addEventListener("click", login);
}
}