update logout method
This commit is contained in:
12
src/app/logout/page.tsx
Normal file
12
src/app/logout/page.tsx
Normal file
@@ -0,0 +1,12 @@
|
||||
import { logout } from '@/lib/auth/server';
|
||||
import { redirect, RedirectType } from 'next/navigation';
|
||||
import React from 'react';
|
||||
|
||||
export async function GET() {
|
||||
await logout();
|
||||
redirect('/login', RedirectType.replace);
|
||||
}
|
||||
|
||||
export default function LogoutPage() {
|
||||
return <React.Fragment />;
|
||||
}
|
||||
@@ -7,6 +7,6 @@ export default async function HomePage() {
|
||||
if (session.token && session.user) {
|
||||
redirect('/dashboard');
|
||||
} else {
|
||||
redirect('/login');
|
||||
redirect('/logout');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
'use server';
|
||||
|
||||
import { redirect } from 'next/navigation';
|
||||
import { redirect, RedirectType } from 'next/navigation';
|
||||
import { loginUser } from '@/lib/api/server/auth';
|
||||
import { login, logout } from '@/lib/auth/server';
|
||||
|
||||
@@ -42,6 +42,5 @@ export async function loginAction(prevState: LoginResult, formData: FormData) {
|
||||
}
|
||||
|
||||
export async function logoutAction() {
|
||||
await logout();
|
||||
redirect('/login');
|
||||
redirect('/logout');
|
||||
}
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
import { cookies } from 'next/headers';
|
||||
import { redirect } from 'next/navigation';
|
||||
|
||||
export async function clearAuthAndRedirect(to = '/login') {
|
||||
const c = await cookies();
|
||||
c.delete('session');
|
||||
c.delete('refresh');
|
||||
redirect(to);
|
||||
}
|
||||
|
||||
const BASE_URL = process.env.API_BASE_URL || 'http://localhost:8080';
|
||||
|
||||
type ApiResponse<T> = {
|
||||
@@ -35,7 +27,7 @@ export async function fetchServerAPI<T>(
|
||||
|
||||
if (!response.ok) {
|
||||
if (response.status == 401) {
|
||||
clearAuthAndRedirect();
|
||||
redirect('/logout');
|
||||
return { error: 'unauthorized' };
|
||||
}
|
||||
throw new Error(
|
||||
|
||||
@@ -12,7 +12,7 @@ export async function requireAuth() {
|
||||
const session = await getSession();
|
||||
|
||||
if (!session.token || !session.user) {
|
||||
redirect('/login');
|
||||
redirect('/logout');
|
||||
}
|
||||
|
||||
return session;
|
||||
|
||||
Reference in New Issue
Block a user