© 2026 Laravel

Laravel Auth: Email Verification & Password Reset Internals

2 phút đọc
#laravel #auth #security #email #password-reset

Mục lục bài viết

Sử dụng các mục để điều hướng nhanh

#1. Signed Routes (Bí mật của URL Verification)

Khi bạn nhấn link xác thực email, Laravel kiểm tra Signature cuối URL.

  • Cách nó hoạt động: Nó tạo một HMAC hash dựa trên URL và APP_KEY. Khi user click, Laravel tính lại hash và so sánh. Nếu hacker đổi 1 ký tự, hash sẽ sai và Laravel từ chối truy cập.

#2. Password Reset Flow

  1. User request -> Laravel tạo Token, băm (Hash) token đó rồi lưu vào bảng password_reset_tokens.
  2. Gửi link chứa token thô cho user.
  3. Khi user nhập mật khẩu mới, Laravel lấy token thô, băm nó và so sánh với hash trong DB. Mẹo: Đây là lý do bạn không bao giờ được lộ APP_KEY, vì token reset mật khẩu dựa vào đó để xác thực.

#3. Câu hỏi nhanh

Q: Tại sao phải sử dụng Signed Routes cho Email Verification? A: Để tránh việc user tự ý thay đổi email trong URL để kích hoạt tài khoản của người khác.

Q: Tại sao token reset password được lưu dạng Hash trong DB? A: Để tránh trường hợp nếu database bị rò rỉ, hacker cũng không thể dùng các token đó để reset mật khẩu của toàn bộ người dùng.

Bài viết liên quan