diff --git a/package.json b/package.json
index 7eedbe9..93287eb 100644
--- a/package.json
+++ b/package.json
@@ -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",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 91f44c7..0a5a097 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -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':
diff --git a/src/api/auth/default.js b/src/api/auth/default.js
index 6a15651..0650fa1 100644
--- a/src/api/auth/default.js
+++ b/src/api/auth/default.js
@@ -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: {
diff --git a/src/front/static/ts/views/LoginPage.ts b/src/front/static/ts/views/LoginPage.ts
index aa7a5c0..c8dca62 100644
--- a/src/front/static/ts/views/LoginPage.ts
+++ b/src/front/static/ts/views/LoginPage.ts
@@ -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)
{
diff --git a/src/front/static/ts/views/RegisterPage.ts b/src/front/static/ts/views/RegisterPage.ts
index d0534ab..13fdf55 100644
--- a/src/front/static/ts/views/RegisterPage.ts
+++ b/src/front/static/ts/views/RegisterPage.ts
@@ -16,7 +16,7 @@ export default class extends Aview {
-
+
i already have an account
@@ -24,4 +24,40 @@ export default class extends Aview {
`;
}
+
+ 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);
+ }
}