នៅ​ក្នុង​ផ្នែក​គ្រប់គ្រង អ្នក​និពន្ធ​ទាំងឡាយ​អាច​ចេញ​ក្រៅ​វិញ​បាន​ ដោយ​ចុចពាក្យ​ថា «ចេញ​ក្រៅ» ។ នៅ​ក្នុង​កម្មវិធី​ Astro យន្តការ​ចេញ​ក្រៅ​នេះ​ គឺ​ជា​ការលុប​កូដ​អាថ៌កំបាំង​នៅ​ក្នុង browser របស់​អ្នកនិពន្ធ​​។ ការលុប​កូដ​នេះ​ត្រូវ​ធ្វើឡើង​នៅ​ក្នុង​ក្បួនចុង​ផ្លូវ​ឬ API Endpoint ណា​មួយ។ យើង​អាច​បង្កើត​ផ្លូវ​ /api/logout សំរាប់​ក្បួនចុង​ផ្លូវ​ឬ API Endpoint ដែល​មាន​ឈ្មោះ​ថា logout.js នៅ​ក្នុង​ថត src/pages/api ។ ក្រោយ​ពី​ការលុប​កូដ​អាថ៌កំបាំងហើយ យើង​អាច​បញ្ជូន​អ្នក​និពន្ធ​ទៅ​ទំព័រ​ណា​មួយ​ក៏​បាន​ដែរ មាន​ដូច​ជា​ទំព័រ​ចូល​ក្នុង​ជា​ដើម​។

 

// src/pages/api/logout.js

export async function GET({ cookies, redirect }){
    cookies.delete("access_token", { path: '/' })
    return redirect('/login', 302)
}

 

<!--src/layouts/admin/Header.astro-->
---
const { pageTitle="ក្បាល​ទំព័រ" } = Astro.props
const { userAuth } = Astro.locals
---

<section class="bg-teal-600 text-white md:px-0 px-2">
    <div class="max-w-5xl mx-auto py-1 flex flex-col md:flex-row items-center">
        <div class="flex flex-col md:flex-row items-center gap-2 md:w-1/4 w-full">
            <a class="hover:opacity-75" href="/admin">
                <img class="w-12" src="/images/siteLogo.png" />
            </a>
            <span class="font-title text-2xl md:pt-2 pt-0 md:py-0 py-2">
                {pageTitle}
            </span>
        </div>
        <form class="flex flex-row md:w-1/2 w-full text-gray-800" action="/api/admin/search" method="post">
            <select name="type" class="pl-2">
                <option>ការផ្សាយ</option>
                <option>ទំព័រស្តាទិក</option>
                <option>ជំពូក</option>
                <option>អ្នកនិពន្ធ</option>
            </select>
            <input class="grow px-2" name="q" type="text" required placeholder="Search..." />
            <input class="bg-gray-200 hover:opacity-75  px-2 py-1" 
                type="submit" value="ស្វែងរក" />
        </form>
        <div class="md:w-1/4 w-full md:text-right text-center md:py-0 py-2">
            <span class="">{userAuth?.userName}</span> | 
            <a class="hover:opacity-75" href="/">ទំព័រ​មុខ</a> | 
            <a class="hover:opacity-75" href="/api/logout">ចេញ​ក្រៅ</a>
        </div>
    </div>
</section>

 

Netlify: https://khmerweb-dynamic-blog.netlify.app/login

GitHub: https://github.com/Sokhavuth/dynamic-blog