logout

PHOTO EMBED

Sun Jul 23 2023 14:23:48 GMT+0000 (Coordinated Universal Time)

Saved by @nelson22

src > app > api > users > logout > route.ts

import { NextResponse } from "next/server";

export async function GET(){
    try {
        const response = NextResponse.json({
            message: 'Logout successfull',
            success: true
        });
        response.cookies.set('token', '', {
            httpOnly: true,
            expires: new Date(0)
        });
        return response;
    } catch (error: any) {
        return NextResponse.json({error: error.message}, {status: 400});
    }
}

-----------------------------------------------------

src > app > profile > page.tsx

"use client"
import axios from "axios"
import { useRouter } from "next/navigation"

export default function profilePage(){
    const router = useRouter();
    const logout = async () =>{
        try {
            await axios.get('/api/users/logout');
            router.push('/login');
        } catch (error) {
            console.log(error);
        }
    }
    return(
        <div>
            <h1 className="page-hd">Profile page</h1>
            <button onClick={logout}>Logout</button>
        </div>
    )
}
content_copyCOPY