Fix login redirect behavior
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
import { NextResponse } from 'next/server'
|
||||
import { createSession } from '@/lib/auth'
|
||||
import { buildRedirectUrl } from '@/lib/url'
|
||||
|
||||
export async function POST(request: Request) {
|
||||
const formData = await request.formData()
|
||||
@ -11,8 +12,8 @@ export async function POST(request: Request) {
|
||||
password === (process.env.WA_TEST_LOGIN_PASSWORD || 'admin123')
|
||||
) {
|
||||
await createSession()
|
||||
return NextResponse.redirect(new URL('/settings', request.url))
|
||||
return NextResponse.redirect(buildRedirectUrl(request, '/login'))
|
||||
}
|
||||
|
||||
return NextResponse.redirect(new URL('/login?error=Login%20gagal', request.url))
|
||||
return NextResponse.redirect(buildRedirectUrl(request, '/login?error=Login%20gagal'))
|
||||
}
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
import { NextResponse } from 'next/server'
|
||||
import { clearSession } from '@/lib/auth'
|
||||
import { buildRedirectUrl } from '@/lib/url'
|
||||
|
||||
export async function POST(request: Request) {
|
||||
await clearSession()
|
||||
return NextResponse.redirect(new URL('/login', request.url))
|
||||
return NextResponse.redirect(buildRedirectUrl(request, '/login'))
|
||||
}
|
||||
|
||||
@ -1,14 +1,15 @@
|
||||
import { NextResponse } from 'next/server'
|
||||
import { sendTextMessage } from '@/lib/whatsapp'
|
||||
import { buildRedirectUrl } from '@/lib/url'
|
||||
|
||||
export async function POST(request: Request) {
|
||||
const formData = await request.formData()
|
||||
const message = formData.get('message')?.toString() || ''
|
||||
|
||||
if (!message.trim()) {
|
||||
return NextResponse.redirect(new URL('/test?status=Pesan%20kosong', request.url))
|
||||
return NextResponse.redirect(buildRedirectUrl(request, '/test?status=Pesan%20kosong'))
|
||||
}
|
||||
|
||||
await sendTextMessage(process.env.WA_TEST_NUMBER || '', message)
|
||||
return NextResponse.redirect(new URL('/test?status=Pesan%20berhasil%20dikirim', request.url))
|
||||
return NextResponse.redirect(buildRedirectUrl(request, '/test?status=Pesan%20berhasil%20dikirim'))
|
||||
}
|
||||
|
||||
@ -1,10 +1,7 @@
|
||||
import { redirect } from 'next/navigation'
|
||||
import { isAuthenticated } from '@/lib/auth'
|
||||
|
||||
export default async function LoginPage({ searchParams }: { searchParams: Promise<{ error?: string }> }) {
|
||||
if (await isAuthenticated()) {
|
||||
redirect('/settings')
|
||||
}
|
||||
await isAuthenticated()
|
||||
|
||||
const params = await searchParams
|
||||
|
||||
|
||||
7
src/lib/url.ts
Normal file
7
src/lib/url.ts
Normal file
@ -0,0 +1,7 @@
|
||||
export function getAppBaseUrl(request: Request) {
|
||||
return process.env.NEXT_PUBLIC_APP_URL || request.url
|
||||
}
|
||||
|
||||
export function buildRedirectUrl(request: Request, path: string) {
|
||||
return new URL(path, getAppBaseUrl(request))
|
||||
}
|
||||
Reference in New Issue
Block a user