Bây giờ chúng tôi đã hoàn thành việc thực hiện
máy chủ REST API bằng cách sử dụng Express và MongoDB trong khóa học này,
suy nghĩ ngay lập tức tiếp theo có thể xảy ra trong tâm trí của bạn là,
vì chúng tôi đã phát triển các ứng dụng khách hàng trong các khóa học trước đó,
làm thế nào để chúng tôi tích hợp cả hai với nhau để ứng dụng khách hàng có thể tương
tác với máy chủ REST API đầy đủ mà chúng tôi đã phát triển trong khóa học này?
Vì vậy, đây là những gì chúng ta sẽ kiểm tra trong bài
giảng này và hai bài tập theo sau bài giảng này.
Vì vậy, ở phần cuối của bài học này,
bạn sẽ có React Client mà sẽ có
thể giao tiếp với máy chủ mà bạn vừa phát triển trong
khóa học này và có thể hỗ trợ
xem phía khách hàng đầy đủ của toàn bộ ứng dụng của chúng tôi.
Vì vậy, theo cách đó chúng ta sẽ thấy rằng chúng ta đã phát triển
ứng dụng kết thúc hoàn chỉnh từ phía khách hàng tất cả các cách để phía máy chủ trong khóa học này.
Để tích hợp máy khách và máy chủ,
như chúng tôi đã nhận ra máy chủ của chúng tôi đã được
thực hiện để hỗ trợ API REST đầy đủ.
Từ phía khách hàng của chúng tôi,
cho dù đó là khách hàng góc cạnh,
khách hàng ion hoặc khách hàng kịch bản gốc,
tất cả chúng tương tác với máy chủ bằng cách sử dụng điểm cuối REST API.
Vì vậy, khi máy khách gửi yêu cầu tới máy chủ tại điểm cuối REST API,
máy chủ sẽ đáp ứng với dữ liệu JSON tương ứng trở lại máy khách.
Sau đó, khách hàng có thể sử dụng dữ liệu JSON để hiển thị các quan điểm cho người dùng.
Vì vậy, với sự hiểu biết này về giao tiếp giữa máy khách và máy
chủ, việc tích hợp phải khá đơn giản.
Bây giờ chúng tôi đã xác thực người dùng được tích
hợp vào phía máy chủ của chúng tôi, chúng tôi cần phải trang bị thêm các ứng dụng khách hàng của
chúng tôi để cho phép họ thực hiện userauthentication ở phía máy chủ
bằng cách đăng thông tin đăng nhập vào máy chủ sau đó
lấy mã thông báo xác thực từ
phía máy chủ và sau đó giao tiếp với máy chủ
bao gồm mã thông báo xác thực trong tiêu đề của các thông báo yêu cầu.
Vì vậy, tất cả điều này có nghĩa là chúng ta cần phải làm điều chỉnh nhỏ cho cả
khách hàng và máy chủ để hai người có thể giao tiếp với nhau.
Một khía cạnh mà tôi đã không xử lý trong bài tập trước đó
là làm thế nào máy chủ sẽ xử lý các tham số truy vấn đến từ phía khách hàng.
Vì vậy, như chúng tôi nhận ra,
khi phía khách hàng gửi một yêu cầu cho
một món ăn đặc trưng hoặc một nhà lãnh đạo đặc trưng hoặc một chương trình khuyến mãi đặc trưng
, chúng tôi thấy rằng URL bao gồm,
món ăn dấu hỏi tính năng là bằng
đúng trong URL yêu cầu đến từ phía khách hàng.
Bây giờ, trong dữ liệu ở phía máy chủ,
chúng tôi đã thấy rằng món ăn,
chương trình khuyến mãi hoặc nhà lãnh đạo bao gồm cờ đặc trưng đã có trong dữ liệu JSON.
Vì vậy, khi yêu cầu này đến phía máy chủ,
sau đó máy chủ sẽ có thể trích xuất
tham số truy vấn này từ yêu cầu đến và sau đó
một cách thích hợp làm truy vấn của
MongoDB và sau đó chỉ có được kết quả mà cờ đặc trưng này được thiết lập thành true.
Vì vậy, để làm điều đó như chúng ta đã thấy,
URL được sử dụng để gửi yêu cầu đến máy chủ là, dấu
gạch chéo các món ăn dấu chấm hỏi đặc trưng là bằng đúng.
Vì vậy, đó là cách chúng tôi sẽ cung cấp các tham số truy vấn cho phía máy chủ của chúng tôi.
Bây giờ ngoài ra, khi thông tin này được nhận ở phía máy chủ,
bây giờ chúng tôi thấy rằng trước đó khi chúng tôi đã làm yêu cầu get ở phía máy chủ,
chúng tôi chỉ đơn giản là nói món ăn tìm thấy và sau đó chúng tôi sẽ tìm thấy
tất cả các món ăn và sau đó trả lại chúng khi
yêu cầu get được gửi đến các món ăn router đường slash .
Logic tương tự áp dụng cho cả bộ định tuyến quảng cáo cũng như cho bộ định tuyến lãnh đạo.
Bây giờ, khi bạn bao gồm một tham số truy vấn như thế
nào trong URL, phía máy chủ của chúng tôi sẽ có thể trích xuất tham số truy vấn này như thế nào?
Vì vậy, đây là nơi,
khi yêu cầu đến có tham số truy vấn này gắn liền với URL đến,
máy chủ express sẽ tự động xử lý điều đó và biến nó thành
một đối tượng JSON được nạp vào một thông điệp yêu cầu đến ở phía máy chủ.
Bây giờ, điều này có sẵn ở phía máy chủ dưới dạng req.query.
Vì vậy, bất cứ tham số truy vấn nào bạn bao gồm trong URL sẽ được biến thành các
đối tượng JSON tương ứng với các thông tin được thiết lập như
được hiển thị ở đây và sau đó được nạp vào đối tượng yêu cầu ở phía máy chủ.
Vì vậy, bằng cách sử dụng req.query ở phía máy chủ,
chúng tôi sẽ có thể có được các tham số truy vấn này.
Vì vậy, khi bạn thực hiện một yêu cầu get ở phía máy chủ bạn nói
dishes.find và sau đó bạn bao gồm req.query vào tìm ở đó.
Vì vậy, do đó, khi MongoDB được
truy vấn sau đó chỉ những hồ sơ hoặc chỉ những tài liệu
mà tính năng được thiết lập thành true sẽ được trích xuất từ MongoDB và cung cấp lại cho
chúng tôi trong phương pháp get này ở đây và sau đó có thể được trả về phía khách hàng.
Vì vậy, điều này là đơn giản như trong việc xử lý các tham số truy vấn ở phía máy chủ của chúng tôi.
Vì vậy, bản cập nhật này chúng tôi sẽ làm cho cả bộ định tuyến đĩa, bộ
định tuyến quảng cáo và bộ định tuyến lãnh đạo ở phía máy chủ của chúng tôi.
Phần tiếp theo là,
tất nhiên, xác thực người dùng.
Vì vậy, như chúng tôi đã nhận ra,
ở phía máy chủ chúng tôi đã có
những điểm cuối REST API rất hữu ích cho việc xác thực người dùng,
đặc biệt khi bạn thực hiện một bài viết để
cắt xén người dùng đăng nhập bằng tên người dùng và mật khẩu,
sau đó bạn sẽ có thể xác thực người dùng trên máy chủ bên.
Bây giờ, khi người dùng được xác thực ở phía máy chủ thành công,
sau đó thư trả lời đến từ phía máy chủ sẽ bao gồm
JSON Web Token trong cơ thể trả lời của thư trả lời đến từ phía máy chủ.
Vì vậy, ở phía khách hàng,
chúng ta sẽ có thể trích xuất mã thông báo này và sau đó sử dụng mã thông báo này sau đó.
Vì vậy, khi khách hàng nhận được thông báo trả lời từ
phía máy chủ và người dùng được xác thực thành công ở phía máy chủ,
thông báo trả lời sẽ chứa JSON Web Token,
mà phải được trích xuất,
và sau đó khách hàng nên bao gồm JSON Web Token này
trong cho mọi yêu cầu gửi đi từ phía khách hàng.
Điều này được thực hiện bằng cách lưu JSON Web Token vào bộ nhớ cục bộ.
Sau đó, đối với mỗi yêu cầu lấy mà chúng tôi phát hành,
chúng tôi có thể thiết lập tiêu đề ủy quyền để chứa JSON Web Token.
Bây giờ, quá trình đăng xuất là khá đơn giản,
nếu chúng ta phá hủy JSON Web Token mà chúng tôi có ở phía khách hàng,
sau đó khách hàng sẽ không còn có thể truy cập vào máy chủ.
Vì vậy, nó là đơn giản như chỉ
phá hủy JSON Web Token ở phía khách hàng để đăng xuất máy khách đó.
Vì vậy, với sự hiểu biết này,
chúng ta hãy xem các bước có liên quan đến
việc thực hiện xác thực người dùng về xử lý xác thực người dùng ở phía khách hàng.
Vì vậy, để xử lý xác thực người dùng ở phía client,
client sẽ gửi một post request tới người dùng slash slash slash login endpoint,
và nội dung của post request sẽ chứa tên người dùng và mật khẩu.
Chúng tôi đang sử dụng xác thực đăng nhập trong trường hợp này.
Bây giờ, để xác thực Facebook, một lần nữa,
đó là một thiết lập khác mà tôi sẽ không thảo luận ngay bây giờ.
Nhưng nội dung yêu cầu như bạn thấy để
xác thực cục bộ sẽ chứa tên người dùng và mật khẩu.
Vì vậy, khi người dùng được xác thực thành công ở phía máy chủ,
máy chủ sau đó sẽ trả lời lại cho
khách hàng bằng cách bao gồm JSON Web Token trong thư trả lời.
Vì vậy, khi khách hàng nhận được thông báo trả lời từ phía máy chủ,
sau đó khách hàng sẽ phải nắm bắt JSON Web Token này và sau đó
lưu JSON Web Token vào bộ nhớ cục bộ ở phía khách hàng.
Sau đó, khách hàng nên bao gồm mã thông báo này trong mọi yêu cầu gửi đi.
Vì vậy, làm thế nào là điều này được thực hiện ở phía khách hàng?
Đầu tiên và quan trọng nhất, chúng ta cần lưu JSON Web Token vào bộ nhớ cục bộ.
Bây giờ, điều này được thực hiện bên trong tác giả hành động xử lý quá trình đăng nhập người dùng.
Vì vậy, khi bài đăng được thực hiện cho máy chủ từ phía khách hàng người tạo cảm ứng,
sau đó thông điệp trả lời sẽ chứa mã thông báo
và mã thông báo này được lưu trong tác giả hành động xử lý quá trình đăng nhập người dùng.
Bây giờ sau đó, khi bất kỳ yêu cầu lấy được thực hiện,
sau đó chúng ta có thể dễ dàng thiết lập các tiêu đề ủy quyền trong yêu cầu lấy đi.
Bây giờ, một khi khách hàng đăng xuất,
JSON Web Token sẽ bị phá hủy ở phía khách hàng.
Vì vậy, sau đó, yêu cầu đi sẽ không chứa
JSON Web Token nữa bởi vì JSON Web Token không tồn tại ở phía máy khách.
Vì vậy, do đó, người dùng mất xác thực.
Vì vậy, đó là cách chúng tôi sẽ xử lý đăng nhập và quá trình đăng xuất ở phía khách hàng.
Bằng cách giao tiếp với máy chủ và sau đó có được JSON Web Token và
sau đó bao gồm JSON Web Token trong mọi yêu cầu đi.
Bây giờ, với sự hiểu biết này về cách khách hàng và máy chủ sẽ tương tác,
bây giờ chúng ta hãy tiến hành hai bài tập tiếp theo.
Đầu tiên, chúng tôi sẽ cập nhật phía máy chủ với một vài bổ sung để
nó có thể tích hợp tốt với phía khách hàng của chúng tôi.
Sau đó, chúng tôi sẽ cập nhật phía khách hàng hay đúng hơn tôi sẽ cung cấp cho bạn
một ứng dụng khách hàng chính thức mà tôi đã lấy
từ lực lượng phản ứng trước đó và điều chỉnh nó, cập nhật nó.
Vì vậy, chúng tôi sẽ đối phó với cả hai trong hai bài tập tiếp theo,
và ở phần cuối của nó, bạn sẽ hiểu làm thế nào để tích hợp khách hàng và phía máy chủ của bạn.