Merge branch 'main' of https://github.com/ChatMaps/ChatMaps into sgoodridge

This commit is contained in:
Stephen
2024-02-20 23:33:18 -05:00
5 changed files with 51 additions and 28 deletions
+8
View File
@@ -27,6 +27,14 @@ async function handleEmailAndPassword(email, password) {
secure: true,
};
cookies().set(options);
var uid_options = {
name: "uid",
value: userCredential.user.uid,
maxAge: expiresIn, // 20 mins
httpOnly: true,
secure: true,
};
cookies().set(uid_options);
return NextResponse.json({ options }, { status: 200 });
}
}
@@ -34,7 +34,6 @@ export async function POST(req, res) {
var { firstName, lastName } = await req?.json()
return await onboard(firstName, lastName, req);
} catch (error) {
console.log(error)
return NextResponse.json({ error: "Internal Server Error" },{ status: 500 });
}
}
+33 -11
View File
@@ -1,15 +1,37 @@
import { NextResponse } from "next/server";
import { cookies } from "next/headers";
import { app } from "../firebase-config";
import { getDatabase, ref, get as firebaseGet } from "firebase/database";
export async function POST(req,res) {
var uid = await req?.json()
var database = getDatabase(app)
var user = await firebaseGet(ref(database, `users/${uid}`));
if (!user.exists()) {
return NextResponse.json({
firstName: "not-found",
lastName: "not-found",
uid: "not-found",
});
} else {
cookies().set("firstName",user.val()?.firstName)
cookies().set("lastName",user.val()?.lastName)
cookies().set("uid",uid)
return NextResponse.json({
firstName: user.val()?.firstName,
lastName: user.val()?.lastName,
uid: uid,
})
}
}
export async function GET(req) {
const session = cookies().get("session");
// Login if not logged in
if (session) {
return NextResponse.json({
firstName: cookies().get("firstName")?.value,
lastName: cookies().get("lastName")?.value,
uid: cookies().get("uid")?.value,
})
}
return NextResponse.json({}, { status: 500 });
}
var uid = cookies().get("uid")?.value
var database = getDatabase(app)
var user = await firebaseGet(ref(database, `users/${uid}`));
return NextResponse.json({
firstName: user.val()?.firstName,
lastName: user.val()?.lastName,
uid: cookies().get("uid")?.value,
})
}
-1
View File
@@ -38,7 +38,6 @@ function Geo() {
// Retrieve latitude & longitude coordinates from `navigator.geolocation` Web API
navigator.geolocation.getCurrentPosition(({ coords }) => {
const { latitude, longitude } = coords;
console.log(latitude, longitude)
setData(coords)
setLoading(false)
})
+10 -15
View File
@@ -1,7 +1,6 @@
// src/middleware.js
import { NextResponse } from "next/server";
import { app } from "./app/api/firebase-config";
import { getDatabase, ref, get as firebaseGet } from "firebase/database";
import { cookies } from "next/headers";
export async function middleware(req, res) {
const session = req.cookies.get("session");
@@ -15,27 +14,23 @@ export async function middleware(req, res) {
Cookie: `session=${session?.value}`,
},
});
// Login if unauthorized
if (responseAPI.status !== 200) {
return NextResponse.redirect(new URL("/login", req.url));
}
// If new user, redirect to onboarding
var { uid } = await responseAPI.json()
var firstName = await req.cookies.get("firstName")?.value;
if (firstName) {
var user = await fetch(new URL("/api/user", req.url), {
method: "POST",
body: JSON.stringify(uid ? uid : {}),
});
user = await user.json();
if (user.firstName !== "not-found") {
return NextResponse.next();
} else {
var database = getDatabase(app)
var user = await firebaseGet(ref(database, `users/${uid}`));
if (!user.exists()) {
return NextResponse.redirect(new URL("/onboarding", req.url));
} else {
var returnedResponse = NextResponse.next();
returnedResponse.cookies.set("firstName",user.val()?.firstName)
returnedResponse.cookies.set("lastName",user.val()?.lastName)
returnedResponse.cookies.set("uid",uid)
return returnedResponse
}
return NextResponse.redirect(new URL("/onboarding", req.url));
}
}