Drupal lưu mật khẩu đã băm trong cơ sở dữ liệu và đó là mã hóa một chiều, có nghĩa là bạn không thể lấy mật khẩu gốc từ nó, trong quá trình xác thực, drupal mã hóa mật khẩu đầu vào của người dùng và kiểm tra xem mật khẩu được mã hóa có bằng mật khẩu trong cơ sở dữ liệu hay không và khi đáp ứng điều kiện này, trong một dự án nguyên khối (không tách rời), nó tạo một cookie có thông tin về người dùng và gửi lại cho trình duyệt, cookie này sẽ được lưu trữ và sử dụng cho các lần sử dụng sau.
Nhưng khi phát triển một cách tiếp cận tách rời như sử dụng GraphQL hoặc JsonAPI hoặc Rest API, bạn không thể luôn sử dụng cookie vì ứng dụng giao diện người dùng có thể không hỗ trợ nó (như ứng dụng di động Android hoặc ...), vì vậy trong trường hợp này, tốt hơn là sử dụng Mã thông báo cho xác thực, có một số mô-đun mà một trong những mô-đun phổ biến nhất là Kết nối OAuth (OAuth2) & OpenID đơn giản (ỔN ĐỊNH VÀ ĐƯỢC SỬ DỤNG RỘNG RÃI)
sau khi thiết lập mô-đun này (cài đặt bằng trình soạn thảo, tạo khóa riêng và khóa chung và giới thiệu người tiêu dùng), bạn có thể chỉ cần nhận mã thông báo bằng cách thực hiện yêu cầu Đăng tới:
{SiteName}/oauth/token
và trong cơ thể nên thuộc loại nhiều phần/biểu mẫu dữ liệu
(application/json không được hỗ trợ) bạn có thể có:
Grant_type = mật khẩu
client_id = ID NGƯỜI TIÊU DÙNG BẠN CÓ THỂ XÂY DỰNG THÔNG QUA UI
client_secret = MẬT KHẨU NGƯỜI TIÊU DÙNG (NẾU BẠN ĐÃ ĐẶT)
tên người dùng = TÊN NGƯỜI DÙNG
mật khẩu = MẬT KHẨU
phạm vi = VAI TRÒ BẠN MUỐN NGƯỜI DÙNG CÓ MÀ KHÔNG PHỤ THUỘC VÀO NGƯỜI TIÊU DÙNG (SẼ KHÔNG ẢNH HƯỞNG NẾU NGƯỜI DÙNG KHÔNG CÓ VAI TRÒ ĐÓ, VÌ VẬY KHÔNG CẦN QUAN TÂM VỀ BẢO MẬT)
và thế là xong, bạn sẽ nhận được mã thông báo truy cập và làm mới khi phản hồi. mà sau đó có thể được sử dụng trong các yêu cầu trong tương lai gọi GraphQL hoặc bất kỳ dịch vụ REST nào khác.
Một thông báo quan trọng về mô-đun này là về việc sử dụng Phạm vi, đó là khi giới thiệu một ứng dụng khách, bạn có thể chỉ định một hoặc nhiều phạm vi cho ứng dụng khách đó và khi người dùng đăng nhập thông qua ứng dụng khách đó sẽ có tất cả các vai trò được gán cho ứng dụng khách đó