5 Mẹo sử dụng Cookie để Debug các vấn đề Xác thực (Auth)

Việc debug xác thực trong các ứng dụng web thường rất chậm. Bạn thường lãng phí thời gian để tạo tài khoản mới hoặc xóa tất cả cookie để kiểm tra các loại người dùng khác nhau.

Bạn có thể kiểm tra bất kỳ trạng thái nào mà không cần tác động đến cơ sở dữ liệu. Hãy sử dụng năm kỹ thuật này để thao tác trực tiếp với cookie.

1. Nhắm mục tiêu vào các cookie cụ thể thay vì xóa tất cả

Việc xóa tất cả cookie sẽ phá hủy session trên dev server, local storage và các chế độ test của Stripe. Thay vào đó, chỉ xóa cookie xác thực (auth cookie).

Các tên phổ biến bao gồm:

  • session
  • sid
  • auth_token
  • _session_id

Trong DevTools, hãy đi tới Application > Cookies > [tên miền của bạn]. Nhấp chuột phải vào cookie session và chọn Delete. Việc này sẽ đặt lại trạng thái người dùng về trạng thái chưa đăng nhập trong khi vẫn giữ nguyên các cài đặt khác của bạn.

2. Mô phỏng người dùng mới bằng cách xóa các flag onboarding

Các ứng dụng sử dụng cookie để theo dõi xem người dùng đã hoàn tất thiết lập hay chưa. Hãy tìm các tên như onboarding_complete hoặc first_visit.

Để kiểm tra luồng người dùng mới:

  • Xuất (Export) các cookie hiện tại của bạn.
  • Xóa flag onboarding.
  • Tải lại trang.

Điều này cho phép bạn kiểm tra các nhánh UI tiến triển (progressive UI branches) mà không cần tài khoản mới.

3. Chuyển đổi vai trò người dùng trong 30 giây bằng cách sử dụng snapshot

Nếu ứng dụng của bạn có các vai trò khác nhau như Admin hoặc Guest, đừng đăng nhập và đăng xuất thủ công. Hãy sử dụng cookie snapshots.

  • Đăng nhập với quyền Admin. Xuất các cookie thành admin-session.json.
  • Đăng nhập với quyền Người dùng thông thường (Regular User). Xuất chúng thành user-session.json.
  • Để chuyển đổi vai trò, chỉ cần nhập (import) tệp JSON và tải lại trang.

Máy chủ tin tưởng session token. Bạn đang sử dụng các session hợp lệ mà bạn đã tạo trước đó. Hãy giữ các tệp JSON này ở máy cục bộ. Chúng chứa các session token nhạy cảm.

4. Kiểm tra các phiên hết hạn ngay lập tức

Đừng đợi hàng giờ để một phiên hết hạn. Hãy thay đổi ngày hết hạn một cách thủ công.

Trong DevTools, nhấp đúp vào cột Expires cho cookie session của bạn. Đặt nó thành một ngày trong quá khứ. Tải lại trang. Bạn sẽ thấy chính xác những gì xảy ra khi một phiên hết hạn (timeout).

5. Khắc phục lỗi vòng lặp chuyển hướng đăng nhập

Vòng lặp thường xảy ra do cookie cũ hoặc bị lỗi định dạng. Session vẫn tồn tại nhưng máy chủ lại từ chối nó.

Để tìm nguyên nhân:

  • Xác định tất cả các cookie liên quan đến auth.
  • Xóa chúng từng cái một.
  • Tải lại trang sau mỗi lần xóa.

Ngay khi vòng lặp dừng lại, bạn đã tìm thấy cookie bị lỗi. Điều này giúp bạn xác định xem vấn đề là do token không hợp lệ hay do domain của cookie không chính xác.

Các phương pháp này hoạt động ngay cả với cookie HttpOnly vì DevTools và các tiện ích mở rộng như CookieJar hoạt động ở cấp độ trình duyệt.

Source: https://dev.to/ktg0215/5-cookie-tricks-for-debugging-auth-issues-in-chrome-no-more-creating-test-accounts-43b5