Next js 14 cookies issue
Unanswered
Ahsan posted this in #help-forum

AhsanOP
hello everyone, can anyone help me to how to delete cookie. actually i am using axios
"use server";
import { refreshAccessToken, signout } from "@/actions/signout_action";
import axios from "axios";
import { cookies } from "next/headers";
const axiosServerInstance = axios.create({
baseURL: process.env.API_BASE_URL,
timeout: 60000,
});
axiosServerInstance.interceptors.response.use(
(response) => {
return response; // Return the response as-is for success
},
async (error) => {
if (error.code === "ECONNABORTED") {
// Handle timeout error
return Promise.reject(new Error("Request timed out. Please try again."));
}
const originalRequest = error.config;
if (error.response && error.response.status === 401 && !originalRequest._retry) {
originalRequest._retry = true;
try {
console.log("111")
await refreshAccessToken();
return axiosServerInstance(originalRequest);
} catch (refreshError) {
console.log("🚀 ~ refreshError-----------", refreshError.response.data);
await signout();
// return Promise.reject(refreshError);
}
}
return Promise.reject(error);
}
);
export default axiosServerInstance;
it goes to catch section and call the signout funiton but my signout funiton only run first console and dont delete or edit my cookies
'use server'
import axios from "axios";
import { revalidatePath } from "next/cache";
import { cookies } from "next/headers";
import { redirect } from "next/navigation";
export const signout = async () => {
console.log("-----1 ", cookies().getAll());
cookies().set("one", 1)
console.log("----- 2 ");
cookies().delete("access_token");
cookies().delete("refresh_token");
cookies().delete("user");
console.log("----- 3 ");
revalidatePath("/", "layout");
redirect("/");
}
"use server";
import { refreshAccessToken, signout } from "@/actions/signout_action";
import axios from "axios";
import { cookies } from "next/headers";
const axiosServerInstance = axios.create({
baseURL: process.env.API_BASE_URL,
timeout: 60000,
});
axiosServerInstance.interceptors.response.use(
(response) => {
return response; // Return the response as-is for success
},
async (error) => {
if (error.code === "ECONNABORTED") {
// Handle timeout error
return Promise.reject(new Error("Request timed out. Please try again."));
}
const originalRequest = error.config;
if (error.response && error.response.status === 401 && !originalRequest._retry) {
originalRequest._retry = true;
try {
console.log("111")
await refreshAccessToken();
return axiosServerInstance(originalRequest);
} catch (refreshError) {
console.log("🚀 ~ refreshError-----------", refreshError.response.data);
await signout();
// return Promise.reject(refreshError);
}
}
return Promise.reject(error);
}
);
export default axiosServerInstance;
it goes to catch section and call the signout funiton but my signout funiton only run first console and dont delete or edit my cookies
'use server'
import axios from "axios";
import { revalidatePath } from "next/cache";
import { cookies } from "next/headers";
import { redirect } from "next/navigation";
export const signout = async () => {
console.log("-----1 ", cookies().getAll());
cookies().set("one", 1)
console.log("----- 2 ");
cookies().delete("access_token");
cookies().delete("refresh_token");
cookies().delete("user");
console.log("----- 3 ");
revalidatePath("/", "layout");
redirect("/");
}