Tôi nhận ra điều này đã muộn nhiều năm, nhưng tôi nghĩ rằng tôi có thể mở rộng câu trả lời của Conor và thêm một chút nữa vào cuộc thảo luận.
Ai đó có thể cho tôi mô tả từng bước về cách xác thực dựa trên cookie hoạt động không? Tôi chưa bao giờ làm bất cứ điều gì liên quan đến xác thực hoặc cookie. Trình duyệt cần làm gì? Máy chủ cần làm gì? Theo thứ tự? Làm thế nào để chúng ta giữ mọi thứ an toàn?
Bước 1: Khách hàng> Đăng ký
Trước bất cứ điều gì khác, người dùng phải đăng ký. Máy khách gửi yêu cầu HTTP đến máy chủ chứa tên người dùng và mật khẩu của mình.
Bước 2: Máy chủ> Xử lý đăng ký
Máy chủ nhận được yêu cầu này và băm mật khẩu trước khi lưu tên người dùng và mật khẩu trong cơ sở dữ liệu của bạn. Bằng cách này, nếu ai đó có quyền truy cập vào cơ sở dữ liệu của bạn, họ sẽ không thấy mật khẩu thực tế của người dùng của bạn.
Bước 3: Khách hàng> Đăng nhập người dùng
Bây giờ người dùng của bạn đăng nhập. Anh ấy / cô ấy cung cấp tên người dùng / mật khẩu của họ và một lần nữa, điều này được đăng dưới dạng yêu cầu HTTP đến máy chủ.
Bước 4: Máy chủ> Xác thực đăng nhập
Máy chủ tra cứu tên người dùng trong cơ sở dữ liệu, băm mật khẩu đăng nhập được cung cấp và so sánh nó với mật khẩu được băm trước đó trong cơ sở dữ liệu. Nếu nó không kiểm tra, chúng tôi có thể từ chối họ truy cập bằng cách gửi mã trạng thái 401 và kết thúc yêu cầu .
Bước 5: Máy chủ> Tạo mã thông báo truy cập
Nếu mọi thứ kiểm tra, chúng tôi sẽ tạo mã thông báo truy cập, xác định duy nhất phiên của người dùng. Vẫn trong máy chủ, chúng tôi thực hiện hai điều với mã thông báo truy cập:
- Lưu trữ nó trong cơ sở dữ liệu liên kết với người dùng đó
- Đính kèm nó vào một cookie phản hồi để được trả lại cho khách hàng. Đảm bảo đặt ngày / thời gian hết hạn để giới hạn phiên của người dùng
Do đó, các cookie sẽ được đính kèm theo mọi yêu cầu (và phản hồi) được thực hiện giữa máy khách và máy chủ.
Bước 6: Khách hàng> Tạo yêu cầu trang
Quay lại về phía khách hàng, chúng tôi hiện đã đăng nhập. Mỗi khi khách hàng yêu cầu một trang yêu cầu ủy quyền (nghĩa là họ cần phải đăng nhập), máy chủ sẽ nhận được mã thông báo truy cập từ cookie và kiểm tra nó trong cơ sở dữ liệu liên quan đến người dùng đó. Nếu nó kiểm tra, truy cập được cấp.
Điều này sẽ giúp bạn bắt đầu. Hãy chắc chắn để xóa cookie khi đăng xuất!