Merge branch 'main' of https://github.com/ChatMaps/ChatMaps into sgoodridge
This commit is contained in:
@@ -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 });
|
||||
}
|
||||
}
|
||||
@@ -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,
|
||||
})
|
||||
}
|
||||
@@ -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)
|
||||
})
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user