From 9aaa639d8d12a37724834efc746bb3a51a532500 Mon Sep 17 00:00:00 2001 From: Martin Dimitrov Date: Tue, 24 Sep 2024 20:06:44 -0700 Subject: [PATCH] add ip address to the auth --- packages/client/src/components/AuthComponent.tsx | 14 ++++++++++++-- packages/client/vite.config.ts | 4 ++-- packages/serverless/functions/api/door/auth.js | 1 + 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/client/src/components/AuthComponent.tsx b/packages/client/src/components/AuthComponent.tsx index a0e3a2e..fdfecb1 100644 --- a/packages/client/src/components/AuthComponent.tsx +++ b/packages/client/src/components/AuthComponent.tsx @@ -27,8 +27,18 @@ export const AuthComponent = ({ door, secret, authMode, onError, onUnlock, runCh } }, [runCheck]) - const onSubmit = () => { - fetch(`/api/door/auth?key=${key}&rotatingKey=${key}&door=${door}`) + const onSubmit = async () => { + const ip = await fetch('https://api.ipify.org?format=json') + .then(response => response.json()) + .then(data => { + return data.ip; + }) + .catch(error => { + console.log('Error:', error); + return "null"; + }); + + fetch(`/api/door/auth?key=${key}&rotatingKey=${key}&door=${door}&ip=${ip}`) .then(async res => { if (res.status !== 200) { setError("Incorrect PIN"); diff --git a/packages/client/vite.config.ts b/packages/client/vite.config.ts index d594608..4888e38 100644 --- a/packages/client/vite.config.ts +++ b/packages/client/vite.config.ts @@ -9,12 +9,12 @@ export default defineConfig({ server: { proxy: { '/api': { - target: 'http://localhost:5000', + target: 'http://localhost:3000', changeOrigin: true, }, }, host: "0.0.0.0", - port: 3000 + port: 8080 }, build: { outDir: "dist", diff --git a/packages/serverless/functions/api/door/auth.js b/packages/serverless/functions/api/door/auth.js index 58e1f65..9bfae80 100644 --- a/packages/serverless/functions/api/door/auth.js +++ b/packages/serverless/functions/api/door/auth.js @@ -34,6 +34,7 @@ exports.handler = async function(context, event, callback) { const fingerprint = { method: "PIN", userAgent: event.request.headers['user-agent'], + ip: event.ip, }; // take timeout from the query string