Chúng ta đã đi qua 3 bài và xây dựng một ứng dụng web đơn giản với mô hình serverless trên cloud. Để ứng dụng web của chúng ta xác thực, các chức năng chỉ được sử dụng khi người dùng đã đăng nhập. Do đó bài này chúng ta sẽ tìm hiểu về AWS Cognito - cung cấp xác thực, ủy quyền và quản lý người dùng cho ứng dụng web và di động.
Kiến trúc của ứng dụng web sẽ như sau:
AWS Cognito cho phép chúng ta trong việc xây dựng luồng sign-in, sign-up, verify email, thay đổi password, đặt lại password,… một cách dễ dàng hơn, thay vì ta phải tự xây dựng DB cho user và tự làm nhiều thứ như JWT, hash password, send mail verify,… Điều này giúp bạn tập chung vào phát triển tính năng khác của ứng dụng. Người dùng có thể đăng nhập trực tiếp bằng tên người dùng và mật khẩu hoặc thông qua bên thứ ba như Facebook, Amazon, Google hoặc Apple.
Hai thành phần chính của Amazon Cognito là User pools and Identity pools:
Ví dụ sử dụng user pool và identity pool cùng nhau