فصل ۱۰.۵.
خروج کاربر (User Logout)
در این بخش، نحوه پیادهسازی خروج کاربر (User Logout) را بررسی میکنیم. این شامل پایان نشست (Session Termination)، پاکسازی کوکیها (Cookie Cleanup) و هدایت کاربر (User Redirection) میشود.
در عین حال، بهتر است شناسه جلسه را دوباره تجدید کنیم و همچنین یک پیام فلش به دادههای جلسه اضافه کنیم تا به کاربر تأیید کنیم که از سیستم خارج شده است.
بیایید handler userLogoutPost را بهروزرسانی کنیم تا دقیقاً این کار را انجام دهد.
package main ... func (app *application) userLogoutPost(w http.ResponseWriter, r *http.Request) { // Use the RenewToken() method on the current session to change the session // ID again. err := app.sessionManager.RenewToken(r.Context()) if err != nil { app.serverError(w, r, err) return } // Remove the authenticatedUserID from the session data so that the user is // 'logged out'. app.sessionManager.Remove(r.Context(), "authenticatedUserID") // Add a flash message to the session to confirm to the user that they've been // logged out. app.sessionManager.Put(r.Context(), "flash", "You've been logged out successfully!") // Redirect the user to the application home page. http.Redirect(w, r, "/", http.StatusSeeOther) }
فایل را ذخیره کنید و برنامه را مجدداً راهاندازی کنید. اگر اکنون روی لینک ‘خروج’ در نوار ناوبری کلیک کنید، باید از سیستم خارج شده و به صفحه اصلی هدایت شوید، به این صورت:
واژهنامه اصطلاحات فنی
| اصطلاح فارسی | معادل انگلیسی | توضیح |
|---|---|---|
| خروج کاربر | User Logout | فرآیند خروج از حساب کاربری |
| پایان نشست | Session Termination | پایان دادن به نشست کاربری |
| پاکسازی کوکیها | Cookie Cleanup | حذف کوکیهای نشست |
| هدایت کاربر | User Redirection | انتقال کاربر به صفحه دیگر |
| هندلر خروج | Logout Handler | پردازشکننده درخواست خروج |
| کد برنامه | Application Code | کد منبع برنامه |
| امنیت نشست | Session Security | حفاظت از نشست کاربری |
| مدیریت نشست | Session Management | کنترل نشستهای کاربری |
| حذف نشست | Session Removal | پاک کردن اطلاعات نشست |
| صفحه خروج | Logout Page | صفحه پردازش خروج |