𝗝𝗪𝗧 𝗔𝘂𝘁𝗵𝗲𝗻𝘁𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗶𝗻 𝗙𝗮𝘀𝘁𝗔𝗣𝗜

Xác thực trả lời câu hỏi "Bạn là ai?" Ủy quyền trả lời câu hỏi "Bạn có thể làm gì?"

Nếu bạn xây dựng một nền tảng AI mà không có bảo mật, bất kỳ ai cũng có thể truy cập dữ liệu riêng tư. Họ có thể thay đổi hồ sơ người dùng hoặc xem tiến trình của học viên. Bạn phải bảo vệ các tài nguyên của mình.

JWT (JSON Web Token) giải quyết vấn đề này. Thay vì gửi mật khẩu với mỗi yêu cầu, người dùng sẽ gửi một token bảo mật.

Quy trình làm việc:

Bạn nên sử dụng các công cụ này:

Đừng bao giờ lưu trữ mật khẩu dưới dạng văn bản thuần túy. Nếu một hacker đánh cắp được cơ sở dữ liệu của bạn, họ sẽ có được mọi thứ. Thay vào đó, hãy lưu trữ một mã băm (hash).

Một mã băm sẽ chuyển đổi "password123" thành một chuỗi dài các ký tự ngẫu nhiên. Bạn không thể chuyển đổi mã băm ngược lại thành mật khẩu. Bạn chỉ có thể xác minh xem dữ liệu nhập vào có khớp với mã băm hay không.

Cách xây dựng:

  1. Đăng ký Người dùng gửi tên đăng nhập và mật khẩu. Bạn băm mật khẩu và lưu nó vào cơ sở dữ liệu của mình.

  2. Đăng nhập Người dùng gửi thông tin xác thực. Bạn tìm mã băm đã lưu. Bạn sử dụng thư viện để xác minh mật khẩu. Nếu khớp, bạn sẽ tạo một token.

  3. Tạo JWT Một token chứa dữ liệu người dùng và thời gian hết hạn. Bạn ký token bằng một khóa bí mật. Nếu người dùng cố gắng thay đổi dữ liệu, chữ ký sẽ không hợp lệ.

Phản hồi đăng nhập trông như thế này: { "access_token": "eyJhbGciOiJIUzI1Ni...", "token_type": "bearer" }

Giờ đây, người dùng đang nắm giữ chìa khóa để vào hệ thống của bạn.

Trong phần tiếp theo, chúng ta sẽ tìm hiểu cách sử dụng các token này để bảo vệ các route cụ thể và quản lý vai trò người dùng.

Tóm tắt các bước:

Nguồn: https://dev.to/zeroshotanu/fastapi-for-ai-engineers-part-6-jwt-authentication-in-fastapi-5fpk

Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi