fixed server issue on document
This commit was merged in pull request #8.
This commit is contained in:
@@ -25,6 +25,8 @@ const SignInForm = () => {
|
|||||||
password: false,
|
password: false,
|
||||||
});
|
});
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
|
const [errMsg, setErrMsg] = useState("");
|
||||||
|
|
||||||
const api = new Fetcher();
|
const api = new Fetcher();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
@@ -68,6 +70,12 @@ const SignInForm = () => {
|
|||||||
|
|
||||||
if (res.status === 204 || res.length === 0) {
|
if (res.status === 204 || res.length === 0) {
|
||||||
setErrorHandlers({ ...errorHandlers, email: true, password: true });
|
setErrorHandlers({ ...errorHandlers, email: true, password: true });
|
||||||
|
setErrMsg("Wrong Credentials");
|
||||||
|
setTimeout(() => {
|
||||||
|
setErrorHandlers({ ...errorHandlers, email: false, password: false });
|
||||||
|
setLoading(false);
|
||||||
|
setErrMsg("");
|
||||||
|
}, 1500);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store the token in cookies
|
// Store the token in cookies
|
||||||
@@ -239,8 +247,9 @@ const SignInForm = () => {
|
|||||||
variant="contained"
|
variant="contained"
|
||||||
loading={loading}
|
loading={loading}
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
// loadingPosition="end"
|
loadingIndicator="Signing in…"
|
||||||
sx={{
|
sx={{
|
||||||
|
backgroundColor: "#4687BA",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
borderRadius: "8px",
|
borderRadius: "8px",
|
||||||
fontWeight: "500",
|
fontWeight: "500",
|
||||||
@@ -252,7 +261,9 @@ const SignInForm = () => {
|
|||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<span>Sign In</span>
|
<span>
|
||||||
|
{loading ? "Signing in…" : errMsg ? errMsg : "Sign In"}
|
||||||
|
</span>
|
||||||
</LoadingButton>
|
</LoadingButton>
|
||||||
</Box>
|
</Box>
|
||||||
</Box>
|
</Box>
|
||||||
|
|||||||
+8
-4
@@ -9,21 +9,25 @@ const checkAuthentication = async () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const isTokenValid = () => {
|
const isTokenValid = () => {
|
||||||
|
if (typeof window === "undefined") {
|
||||||
|
return false; // Don't execute this code on the server-side
|
||||||
|
}
|
||||||
|
|
||||||
const cookies = document.cookie.split("; "); // Get all cookies and split them into an array
|
const cookies = document.cookie.split("; "); // Get all cookies and split them into an array
|
||||||
|
|
||||||
for (const cookie of cookies) {
|
for (const cookie of cookies) {
|
||||||
const [name, value] = cookie.split("="); // Split the cookie into its name and value
|
const [name, value] = cookie.split("="); // Split the cookie into its name and value
|
||||||
|
|
||||||
if (name === "cmc-token" && value) {
|
if (name.trim() === "cmc-token" && value) {
|
||||||
return true; // The cmc-token cookie exists
|
return true; // The cmc-token cookie exists
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false; // The cmc-token cookie does not exist
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
export async function middleware(req) {
|
export async function middleware(req) {
|
||||||
const token = isTokenValid()
|
const token = isTokenValid();
|
||||||
// req.cookies["cmc-token"]; // Access the token from cookies
|
// req.cookies["cmc-token"]; // Access the token from cookies
|
||||||
const cookieList = cookies();
|
const cookieList = cookies();
|
||||||
|
|
||||||
@@ -50,7 +54,7 @@ export async function middleware(req) {
|
|||||||
// Add authentication logic here (verify the token, etc.)
|
// Add authentication logic here (verify the token, etc.)
|
||||||
// const isAuthenticated = verifyToken(token);
|
// const isAuthenticated = verifyToken(token);
|
||||||
const isAuthenticated = cookieList.has("cmc-token");
|
const isAuthenticated = cookieList.has("cmc-token");
|
||||||
console.log(token)
|
console.log(token);
|
||||||
|
|
||||||
if (!isAuthenticated) {
|
if (!isAuthenticated) {
|
||||||
// Handle unauthenticated users
|
// Handle unauthenticated users
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
import { useEffect } from "react";
|
import { useEffect } from "react";
|
||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
|
|
||||||
|
|
||||||
const AuthRoute = ({ children }) => {
|
const AuthRoute = ({ children }) => {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user