Tôi chắc chắn bạn có một hoặc nhiều tài khoản truyền thông xã hội.
Có thể là Facebook, Twitter, YouTube, Google, GitHub,
hoặc nhiều nhà cung cấp dịch vụ khác, nơi bạn đăng ký điện thoại và tài khoản.
Bây giờ, các nhà cung cấp dịch vụ lần lượt,
sẵn sàng cung cấp dịch vụ xác thực thay mặt cho bạn.
Vì vậy, ví dụ, bạn thấy sự gia tăng của một số trang web
và ứng dụng di động nơi bạn được phép đăng nhập
bằng tài khoản truyền thông xã hội của mình.
Bây giờ, làm thế nào để điều này thực sự hoạt động?
Nhiều người trong số các nhà cung cấp tài khoản truyền thông xã hội này hoạt động
như các nhà cung cấp dịch vụ xác thực sử dụng một giao thức được gọi là OAuth.
Chúng tôi sẽ xem xét OAuth và làm thế nào nó cho phép các nhà cung cấp xác thực bên thứ ba
cung cấp xác thực thay mặt bạn
và cho phép bạn đăng nhập vào các dịch vụ khác bằng tài khoản truyền thông xã hội của họ.
Tôi chắc chắn rằng bạn có thể đã nghe nói trong việc đi qua về OAuth 1 và OAuth 2,
và có thể đã nghe từ mọi người nói
rằng Facebook cung cấp xác thực dựa trên OAuth 2,
hoặc Google cung cấp xác thực dựa trên OAuth 2 và vân vân.
Tôi chắc chắn bạn phải tự hỏi,
chính xác những OAuth1 và OAuth 2 có nghĩa là gì?
Bây giờ, OAuth1 và OAuth 2 là các khung ủy quyền
dựa trên các tiêu chuẩn mở.
Và chúng có thể được sử dụng qua internet để xác thực
danh tính của bạn với nhiều trang web hoặc ứng dụng di động.
Bây giờ, khi bạn sử dụng các dịch vụ này,
bạn phụ thuộc vào một trong các tài khoản truyền thông xã hội như Facebook,
Google, Twitter, Microsoft, Instagram,
GitHub, DigitalOcean, và nhiều hơn nữa,
những người cung cấp các dịch vụ xác thực này cho người khác sử dụng.
Các nhà cung cấp dịch vụ xác thực này hứa hẹn với
người dùng của các dịch vụ xác thực rằng họ sẽ xác thực danh tính
của người dùng dựa trên việc họ gửi thông
tin xác thực của họ cho các dịch vụ truyền thông xã hội.
Bây giờ, có một dịch vụ bổ sung OpenID.
Nhưng, tất nhiên, không liên quan đến OAuth nhưng cung cấp loại dịch vụ tương tự.
Nhưng hầu hết các nhà cung cấp dịch vụ truyền thông xã hội tiêu chuẩn,
như bạn sẽ thấy được liệt kê ở đây,
cung cấp các dịch vụ dựa trên OAuth 2 trong những ngày này.
Bây giờ, như tôi đã đề cập, OAuth1 và OAuth 2 là các giao thức xác thực,
và OAuth 1 là giao thức đầu tiên đi vào hiện tại.
Điều này được phát triển từ Twitter,
Blaine Cook là người đứng sau nó,
và điều này được ghi lại trong Internet Engineering Task Force, RFC 5849.
Vì vậy, nếu bạn muốn đọc các chi tiết đẫm máu về cách thức các giao thức này hoạt động,
đó là nơi để tìm ra điều đó.
Giao thức OAuth 2 phát triển từ OAuth 1 để làm cho nó đơn giản hơn,
và để cung cấp một cách đơn giản hơn cho việc phát triển khách hàng.
Và điều này được ghi lại trong IETF RFC 6749 và sau đó,
một cách sử dụng token mang khác đến trong IETF RFC 6750.
Bây giờ, theo quan điểm của chúng
tôi, chúng tôi không thực sự muốn đi sâu vào chi tiết về cách thức các giao thức này thực sự hoạt động.
Thay vào đó, tất cả những gì chúng tôi quan tâm là,
làm thế nào để chúng tôi tận dụng những điều này
để xác thực người dùng trong ứng dụng web của chúng tôi, hoặc trong ứng dụng di động của chúng tôi, khi chúng tôi cần xác thực người dùng đến
máy chủ Express mà chúng tôi đã xây dựng trên cho đến nay?
Bây giờ, chúng ta sẽ tập trung chủ yếu vào OAuth 2,
bởi vì trong bài tập,
chúng ta sẽ xem xét việc sử dụng Facebook như một nhà cung cấp dịch vụ xác thực OAuth 2,
và ở đây, chúng ta cần phải hiểu
một vài thuật ngữ để xem chính xác như thế nào giao thức OAuth 2 này hoạt động.
Ít nhất, các chi tiết xương trần về cách thức giao thức chính nó hoạt động.
Bây giờ, trong trường hợp của OAuth 2,
chúng ta luôn nói về một quyền sở hữu tài nguyên.
Bây giờ trong trường hợp này,
tài nguyên mà tôi đang đề cập đến không phải là
tài nguyên được lưu trữ trên máy chủ Express.
Thay vào đó, tài nguyên mà chúng tôi đang đề cập đến ở đây,
là danh tính của người dùng.
Bây giờ, bất kỳ máy chủ nào, như máy chủ Express mà chúng tôi đã xây dựng,
muốn có được quyền truy cập vào tài nguyên này,
đó là danh tính của bạn.
Bây giờ, danh tính của anh đâu?
Danh tính của bạn được lưu trữ trên một trong
những nhà cung cấp dịch vụ xác thực truyền thông xã hội như Facebook và vân vân,
bởi vì bạn đã tạo một tài khoản trên các trang mạng xã hội này.
Vì vậy, thông tin hoặc thông tin nhận dạng của
bạn hoặc thông tin hồ sơ của bạn được lưu trữ tại Facebook, ví dụ.
Bây giờ, máy chủ Express của bạn muốn có được quyền truy cập vào danh tính của bạn và
xác minh rằng nó thực sự là bạn đang cố gắng truy cập vào máy chủ Express.
Vì vậy, trong trường hợp này,
máy chủ Express mà chúng tôi đã phát triển,
hoạt động như ứng dụng khách hàng.
Vì vậy, đây là nơi ứng dụng khách hàng,
đó là trang web hoặc ứng dụng di động muốn
truy cập vào máy chủ tài nguyên để có được thông tin về bạn.
Một máy chủ tài nguyên mà chúng ta đang nói về là gì?
Đây là máy chủ xác thực OAuth của Facebook,
cũng cung cấp thông tin hồ sơ của bạn theo yêu cầu.
Bây giờ, tất nhiên, bạn sẽ không ngẫu nhiên tiếp tục phân phối thông tin hồ sơ của bạn.
Thay vào đó, bạn muốn có thể xác minh rằng bạn đang cung cấp quyền truy cập vào
thông tin hồ sơ của bạn cho một nhà cung cấp dịch vụ xác thực hoặc một máy chủ xác thực.
Bây giờ, đây là nơi ứng dụng khách hàng của bạn hoặc máy chủ Express ở đây,
ví dụ, sẽ đăng ký trên Facebook với một tài khoản nói rằng tôi đang điều hành một ứng dụng,
và tôi muốn đăng ký bản thân mình như một nguồn tiềm năng có thể
tiếp cận bạn để xác thực người dùng khi họ cung cấp
quyền truy cập vào hồ sơ của họ được lưu trữ trên trang web của bạn.
Vì vậy, máy chủ Express,
trong trường hợp này hoạt động như ứng dụng khách hàng,
sẽ đăng ký chính nó trên Facebook và có được một ClientID và một bí mật của khách hàng từ Facebook.
Bây giờ, khi máy chủ Express đăng ký trên Facebook,
bạn cần phải có một tài khoản trên Facebook,
một tài khoản được xác thực trên Facebook,
mà bạn sẽ sử dụng để thiết lập ứng dụng này trên Facebook.
Vì vậy, một khi bạn đăng ký chính mình,
sau đó bạn sẽ nhận được quyền truy cập vào một ClientID và một bí mật của khách hàng.
Bây giờ, máy chủ tài nguyên,
như tôi đã đề cập, là máy chủ lưu trữ dữ liệu được bảo vệ.
Dữ liệu được bảo vệ có nghĩa là hồ sơ của người dùng muốn truy cập vào máy chủ Express.
Vì vậy, máy chủ Express muốn truy cập vào máy chủ tài nguyên này,
và giữ dữ liệu hồ sơ của người dùng muốn truy cập máy chủ Express.
Vì vậy, bạn thấy mối quan hệ ở đây.
Vì vậy, khi tôi nói về một ứng dụng khách hàng,
tôi không có nghĩa là ứng dụng front-end của họ,
nhưng máy chủ Express của họ đang cố gắng cung cấp cho bạn
quyền truy cập vào tài nguyên mà nó có trên trang web của nó.
Nhưng máy chủ Express,
để cho phép bạn truy cập,
sẽ cần truy cập vào máy chủ tài nguyên Facebook của bạn,
sẽ xác thực bạn và cung cấp thông tin hồ sơ của bạn cho máy chủ Express.
Vì vậy, máy chủ tài nguyên mà tôi đang nói về ở đây,
là máy chủ xác thực OAuth 2 của Facebook
cộng với máy chủ tài nguyên cung cấp cho bạn quyền truy cập vào thông tin hồ sơ của người dùng.
Và máy chủ ủy quyền là máy chủ sẽ
cho phép ai đó truy cập
vào máy chủ tài nguyên để truy xuất thông tin hồ sơ.
Bây giờ, người dùng là một trong đó có thông tin hồ sơ trên máy chủ tài nguyên.
Người dùng nên cho phép máy chủ Express để đi
đến máy chủ tài nguyên này để lấy thông tin hồ sơ.
Nhưng nếu người dùng cần ủy quyền cho máy chủ Express,
người dùng cần đăng nhập vào tài khoản Facebook,
và sau đó lấy thông tin từ Facebook được gọi là mã thông báo truy cập,
mà người dùng sau đó sẽ chuyển sang máy chủ Express.
Bây giờ, khi mã thông báo truy cập được lấy từ Facebook thông qua giao thức OAuth 2,
mã thông báo truy cập sẽ được phát hành trong điều khoản
cho phép ứng dụng khách này hoặc máy chủ Express,
đã được đăng ký trên Facebook nói rằng
máy chủ khách này tôi sẽ cho phép
truy cập thông tin hồ sơ của họ từ nhà cung cấp dịch vụ Facebook OAuth của họ.
Vì vậy, một lần nữa, điều này hơi khó hiểu.
Chúng ta sẽ thấy một sơ đồ nơi dòng
thông tin này được giải thích rõ ràng hơn một chút cho bạn.
Một điểm mà tôi vừa đề cập là về một mã thông báo OAuth hoặc mã thông báo truy cập.
Mã truy cập này là gì?
Mã thông báo truy cập là một cái gì đó mà máy chủ ủy quyền phát hành cho bạn.
Máy chủ ủy quyền nào?
Đây là máy chủ ủy quyền OAuth 2 của bên thứ ba,
máy chủ Facebook, trong ví dụ này.
Vì vậy, họ là ứng dụng máy chủ Express.
Bây giờ, bạn, với tư cách là người dùng đầu cuối của họ,
muốn truy cập một cái gì đó từ ứng dụng máy chủ Express.
Ứng dụng máy chủ Express sẽ cho bạn biết rằng bạn xác thực
chính mình từ Facebook và sau đó có được mã thông báo truy cập từ Facebook.
Mã thông báo truy cập này được cấp cho
người dùng front-end từ Facebook khi người dùng đăng nhập vào tài khoản Facebook của họ.
Bây giờ mã thông báo truy cập này được phát hành dưới tên của ứng dụng khách hàng
, máy chủ Express, đã đăng ký trên Facebook.
Vì vậy, để người dùng truy cập Facebook để có được mã thông báo truy cập của mình,
người dùng yêu cầu ID khách hàng của ứng dụng khách hàng hoặc ứng dụng Express.
Vì vậy, ID khách hàng này được nhúng
trong ứng dụng front-end rằng máy chủ Express này sẽ phục vụ lên cho bạn.
Vì vậy, Express server đang phục vụ lên một trang web mà bạn đang truy cập,
sau đó trang web đó sẽ chứa mã mà
ID khách hàng của máy chủ Express đó đã được nhúng trong đó.
Một thông tin nữa mà tôi đã đề cập là một bí mật của khách hàng.
Bây giờ, trong dòng xác thực mà tôi sẽ nói về,
bí mật của khách hàng sẽ không bao giờ được tiết lộ cho bất cứ ai.
Bí mật của khách hàng sẽ chỉ ở phía máy chủ Express.
Trở lại khi máy chủ Express cố gắng xác thực và
có được quyền truy cập vào hồ sơ của người dùng từ Facebook,
ứng dụng khách hàng, máy chủ Express sẽ
gửi cả ID khách hàng và bí mật khách hàng,
cùng với mã thông báo truy cập mà người dùng cung cấp cho nó cho Facebook.
Và Facebook, lần lượt,
cho phép ứng dụng khách hàng của họ truy cập
vào máy chủ tài nguyên để có được dữ liệu hồ sơ của người dùng.
Và một khi dữ liệu hồ sơ của người dùng thu được từ máy chủ tài nguyên Facebook,
sau đó máy chủ Express của tôi sẽ tạo một tài khoản
cho người dùng cụ thể này đã đăng nhập chúng bằng tài khoản Facebook của họ.
Và sau đó, cung cấp một mã thông báo web JSON cho người dùng,
sau đó người dùng có thể sử dụng để truy cập
các tài nguyên được lưu trữ trên máy chủ Express.
Vì vậy, một lần nữa, để tóm tắt điều này,
tôi có một sơ đồ ở đây để giải thích cho bạn một chút chi tiết hơn.
Ngoài ra,
đó cũng là một mã thông báo làm mới.
Khi một mã thông báo truy cập được phát hành bởi máy chủ Facebook OAuth 2,
mã thông báo truy cập có tuổi thọ giới hạn.
Sau đó, mã thông báo truy cập sẽ trở nên không hợp lệ.
Vì vậy, mã thông báo truy cập phải được giữ bí mật.
Vì vậy, tất cả các trao đổi thẻ giữa các trang web khác nhau
sẽ được thực hiện trong một vấn đề được mã hóa bằng cách sử dụng giao thức HTTPS.
Vì vậy, hãy chắc chắn rằng khi bạn đang gửi mã thông báo truy cập
của bạn từ ứng dụng front-end người dùng của bạn đến máy chủ Express,
bạn sẽ chỉ gửi mã thông báo truy cập thông qua HTTPS, chứ không phải HTTP. Điều
này rất quan trọng bởi vì bạn không
muốn mã thông báo truy cập của bạn được tiết lộ cho bất cứ ai bởi vì bất cứ
ai có thể nhận được một trong các mã thông báo truy cập của bạn có thể giả vờ là
ứng dụng khách hàng của họ và sau đó có quyền truy cập vào hồ sơ người dùng của bạn.
Vì vậy, điều đó rất quan trọng.
Bây giờ, kể từ khi mã thông báo truy cập có tuổi thọ giới hạn,
cũng có một mã thông báo làm mới tương ứng,
có thể được sử dụng để làm mới mã thông báo truy cập đã hết hạn.
Bây giờ, trong loại dòng chảy mà chúng tôi sẽ được
sử dụng với ứng dụng của chúng tôi trong bài tập,
chúng tôi sẽ không thể sử dụng mã thông báo làm mới.
Bất cứ khi nào người dùng muốn ủy quyền
cho máy chủ Express đi và lấy thông tin hồ sơ từ Facebook,
người dùng sẽ phải cung cấp rõ ràng
một mã thông báo truy cập mới thu được từ Facebook.
Một phần mà tôi vừa đề cập ngắn gọn,
nhưng tôi đã không xây dựng,
là làm thế nào để ứng dụng khách hàng, máy chủ Express,
quy mô, làm thế nào để nó đăng ký chính nó tại nhà cung cấp dịch vụ OAuth 2?
Bây giờ, đây là nơi mà nhiều nhà cung cấp dịch vụ OAuth 2
cung cấp một cách để đăng ký một ứng dụng trên trang web của họ.
Vì vậy, một ứng dụng khách hàng,
các máy chủ Express trong ví dụ của chúng tôi,
sẽ tự đăng ký như là một ứng dụng khách hàng trên nhà cung cấp dịch vụ OAuth.
Vì vậy, như bạn sẽ thấy trong bài tập,
bước đầu tiên mà chúng tôi sẽ làm là đăng nhập vào Facebook bằng
tài khoản của chúng tôi và sau đó tạo một ứng dụng trên trang Facebook.
Khi bạn làm điều đó, Facebook sẽ cấp cho bạn một ID ứng dụng khách hàng và một bí mật của khách hàng.
Quy trình này áp dụng cho nhiều nhà cung cấp dịch vụ OAuth khác vì
đây là dòng chảy chung mà giao thức OAuth 2 nói về.
Vì vậy, ID ứng dụng khách hàng và bí mật của khách hàng rất hữu ích cho chúng tôi
để có thể chứng minh danh tính của chúng tôi cho
máy chủ OAuth khi chúng tôi đang truyền một mã thông báo truy cập mà chúng tôi có được từ người dùng.
Bây giờ, đó cũng là một URL chuyển hướng mà bạn cần phải
đăng ký khi bạn đang đăng ký ứng dụng khách hàng,
và bạn sẽ thấy tôi thực hiện điều đó trong các bước mà tôi đăng ký
ứng dụng trên trang Facebook.
Bây giờ, để tóm tắt dòng thông tin
mà chúng ta vừa nói ngắn gọn trong trường hợp trước đó,
hãy để tôi bắt đầu từ thời điểm này.
Điểm đầu tiên để xem là chủ sở hữu tài nguyên.
Vì vậy, chủ sở hữu tài nguyên ở đây
là người dùng sẽ sử dụng tài khoản truyền thông xã hội của mình.
Facebook, trong ví dụ này,
có xác thực cho người dùng.
Vì vậy, chủ sở hữu tài nguyên là một trong đó có hồ sơ về tài nguyên.
Và thông tin hồ sơ này cho mỗi tài khoản Facebook,
chúng được lưu trữ trên máy chủ Facebook.
Và vì vậy máy chủ Facebook cung cấp máy chủ tài nguyên ở đây.
Vì vậy, đó là nhà cung cấp dịch vụ OAuth mà bạn thấy ở
phía bên phải của bức ảnh này ở đây.
Vì vậy, hãy tưởng tượng máy chủ Facebook ở phía bên phải, ứng dụng khách hàng
đó, trong đó có máy chủ API còn lại, máy
chủ Express mà chúng tôi đã thực hiện,
là một ứng dụng khách hàng trong trường hợp này,
và chủ sở hữu tài nguyên là người sử dụng.
URL người dùng front-end, đó là sẽ cho
phép bạn truy cập Facebook để xác minh rằng ủy nhiệm của người dùng.
Vì vậy, khi bạn muốn truy cập thông tin về phía khách hàng,
trước tiên bạn sẽ phải đi và cho
phép ứng dụng khách này
để có thể truy cập vào thông tin hồ sơ của bạn.
Vì vậy, các ứng dụng khách hàng,
nếu nó hoạt động như một ứng dụng web,
nó sẽ cung cấp một nút thích hợp trong đó nói đăng nhập bằng cách sử dụng Facebook.
Và vì vậy khi bạn nhấp vào nút,
về cơ bản, bước đầu tiên được bắt đầu.
Yêu cầu ủy quyền người dùng được khởi xướng.
Vì vậy, ứng dụng khách hàng của bạn,
thông qua tác nhân
người dùng, tác nhân người dùng về cơ bản là ứng dụng khách hàng, ứng dụng front-end.
Nó có thể là ứng dụng Angular mà chúng tôi đã phát triển hoặc ứng dụng di động đó, cho
dù đó là Ionic hoặc cho dù đó là
một ứng dụng NativeScript mà chúng tôi đã phát triển trong các khóa học trước đó trong
chuyên môn hóa hoặc thậm chí là một ứng dụng bản địa như một ứng dụng iOS hoặc một ứng dụng Android.
Tất cả những hoạt động như các đại lý người dùng.
Vì vậy, các đại lý người dùng,
họ sử dụng một quá trình yêu cầu ủy quyền thông qua
các đại lý người dùng đến máy chủ ủy quyền,
đó là máy chủ Facebook.
Bây giờ, khi
nó được thông qua, sau đó chủ sở hữu tài nguyên hoặc người dùng, những người đang cố gắng cung cấp quyền truy cập vào hồ sơ của mình cho ứng dụng khách hàng này,
sẽ phải ủy quyền cho Facebook để có
thể chia sẻ thông tin này với ứng dụng khách hàng.
Trong cách tiếp cận cấp dòng chảy tiềm ẩn mà chúng tôi đang sử dụng trong
ví dụ của chúng tôi ở đây và cũng trong bài tập sau,
cách tiếp cận cấp dòng chảy tiềm ẩn là cách tiếp
cận phù hợp nhất khi bạn đang thực hiện một ứng dụng web bằng cách sử dụng
một framework như Angular hoặc các ứng dụng di động lai
với Ionic hoặc một NativeScript hoặc thậm chí là một ứng dụng gốc.
Cách tiếp cận cấp dòng chảy tiềm ẩn là cách đơn giản hơn nhiều để
vận hành OAuth 2 cho các loại ứng dụng như vậy.
Vì vậy, sau đó chủ sở hữu tài nguyên nhấp vào nút đăng nhập,
sau đó máy chủ ủy quyền sẽ nhắc chủ sở hữu tài nguyên với thông tin nói rằng,
“Ứng dụng khách hàng này muốn truy cập thông tin hồ sơ của bạn.
Ông có cho phép nó không?”
Và vì vậy điều này sẽ được bật lên bởi Facebook,
và sau đó bạn sẽ nhấp vào một nút có nói, “Vâng,
tôi cho phép ứng dụng khách hàng này để truy cập thay mặt cho tôi.”
Vì vậy, vào thời điểm đó,
máy chủ ủy quyền trên Facebook, máy
chủ ủy quyền OAuth 2 trên Facebook,
sẽ tạo ra một mã thông báo truy cập.
Để tạo ra mã thông báo truy cập này,
nó sẽ sử dụng ID khách hàng cho ứng dụng khách hàng này, ứng dụng
máy chủ Express mà chúng tôi đăng ký.
Vì vậy, ID khách hàng nên là một phần của đại lý người dùng mà người dùng này sử dụng.
Vì vậy, ID khách hàng này sẽ được nhúng vào ứng dụng Angular,
Ionic hoặc ứng dụng NativeScript hoặc thậm chí là một iOS hoặc một ứng dụng Android.
Vì vậy, ID khách hàng sau đó sẽ được sử dụng bởi
đại lý người dùng để biến máy chủ ủy quyền nói rằng,
“Ứng dụng khách hàng này muốn truy cập vào hồ sơ của tôi,
và tôi sẵn sàng cho phép bạn truy cập vào hồ sơ.”
Vì vậy, tại thời điểm đó,
máy chủ ủy quyền sẽ gửi một mã thông báo truy cập đến đại lý người dùng trong trường hợp này.
Vì vậy, hãy nhớ rằng, mã thông báo truy cập này đi vào đại lý người dùng,
đó là ứng dụng di động hoặc ứng dụng Angular của họ được thực hiện bởi chúng tôi.
Sau đó, đại lý người dùng này sẽ lấy mã thông báo truy cập này và
sau đó vượt qua mã thông báo truy cập này cho ứng dụng khách hàng đó.
Vì vậy, OAuth để đăng nhập,
nhưng mã thông báo truy cập sẽ được chuyển vào ứng dụng khách hàng,
máy chủ Express trong trường hợp này,
tại một tuyến đường cụ thể trên bộ định tuyến của người dùng,
tuyến xác thực trên trang web ứng dụng khách hàng.
Bây giờ, trước đây, chúng tôi đã thấy việc sử dụng xác thực địa phương,
nơi chúng tôi đã gửi một yêu cầu để gạch chéo người dùng dấu gạch chéo đăng nhập.
Bây giờ, để điều này làm việc trong ứng dụng của
chúng tôi, chúng tôi sẽ thiết lập một trong những người dùng
gạch chéo, gạch chéo Facebook, gạch chéo mã thông báo, v.v.
Vì vậy, một URL mà trên đó chúng tôi cung cấp mã thông báo truy cập này qua máy chủ Express.
Bây giờ, khi mã thông báo truy cập này được lấy bởi máy chủ Express,
máy chủ Express sẽ lấy mã thông báo truy cập này,
và sau đó cùng với ID khách hàng và bí mật khách hàng,
nó sẽ gửi thông tin này qua máy chủ ủy quyền.
Và máy chủ ủy quyền sau đó sẽ cho phép ứng dụng khách hàng của họ
truy cập vào máy chủ tài nguyên để có được thông tin hồ sơ.
Và như vậy thông tin hồ sơ sẽ được gửi trở lại trong bước số sáu,
trở lại ứng dụng khách hàng trong trường hợp này.
Vì vậy, khi ứng dụng khách có được thông tin hồ sơ cho người dùng,
thì ứng dụng khách hàng sẽ tạo một tài khoản mới cho
người dùng trên mỗi trang web nếu một tài khoản không tồn tại.
Nếu người dùng đó đã đăng nhập trước đó bằng cách sử dụng ID Facebook của họ,
một tài khoản sẽ tồn tại để ứng dụng khách hàng và máy chủ API Rest sẽ
chỉ đơn giản là chéo để thấy rằng tài khoản người dùng này đã tồn tại.
Và, tại thời điểm đó,
người dùng được xác thực cho bên thứ ba đăng nhập chức năng
được cung cấp bởi dịch vụ xác thực OAuth 2 của Facebook.
Tại thời điểm đó, sau đó ứng dụng khách hàng sẽ tạo ra một JSON Web Token,
trong ví dụ mà chúng tôi sẽ thực hiện
và thực hiện, và sau đó chuyển JSON Web Token này trở lại tác nhân người dùng hoặc ứng dụng front-end,
hoặc ứng dụng Angular, hoặc ứng dụng Ionic,
hoặc ứng dụng NativeScript.
Sau đó, JSON Web Token sẽ được người dùng sử dụng
để xác thực bản thân bất cứ khi nào anh ta hoặc cô ấy muốn
truy cập bất kỳ tài nguyên nào được lưu trữ trên máy chủ Express.
Vì vậy, một khi bạn có được JSON Web Token,
tất cả các hoạt động tiếp theo, bạn đã thấy làm thế nào để làm điều đó với JSON Web Token.
Vì vậy, một khi bạn có được JSON Web Token,
công việc của bạn được thực hiện,
và sau đó bạn có thể tiến hành về phía trước với các hoạt động bình thường từ thời điểm đó trở đi.
Bây giờ, khi Token Web JSON hết hạn,
sau đó bạn phải trải qua toàn bộ quá trình xác thực lại chính mình và,
sau đó, cho phép người dùng truy cập thông tin trên trang web của bạn.
Vì vậy, với sự hiểu biết nhanh chóng này về cách hoạt động OAuth 2, một
lần nữa, như bạn thấy, có rất nhiều chi tiết ở đây.
Nhưng, may mắn thay, chúng tôi không phải đối phó với tất cả các chi tiết này bởi vì chúng tôi sẽ được
sử dụng một mô-đun nút mà chăm sóc của nhiều chi tiết trên danh nghĩa của chúng tôi.
Vì chúng tôi đã thiết lập máy chủ Express của chúng tôi để sử dụng Passport,
bây giờ chúng tôi có thể sử dụng một mã mô-đun nút khác như mô-đun Passport-Facebook-Token.
Mô-đun Passport-Facebook-Token về cơ bản thực hiện
cách tiếp cận cấp tiềm ẩn mà tôi đã nói về trước đó.
Và sau đó bạn có thể khởi tạo
một chiến lược mới trong chiến lược Hộ chiếu của bạn, trong ứng dụng của bạn.
Và để mô-đun Passport-Facebook-Token cho phép bạn thiết lập
một chiến lược xác thực hộ chiếu mới để sử dụng API OAuth 2 dựa trên FaceBook.
Và vì vậy để sử dụng mô-đun này,
bạn cài đặt này bằng cách nói quá khứ npm cài đặt hộ chiếu - facebook-token,
trừ trừ lưu, và sau đó một khi bạn cài đặt,
sau đó bạn sẽ cấu hình một chiến lược Facebook trong ứng dụng của bạn, và, sau đó,
sử dụng điều này để cấu hình chiến lược cho Hộ chiếu của bạn
để sử dụng nếu chúng tôi đang sử dụng xác thực dựa trên OAuth 2 cho ứng dụng của chúng tôi.
Với sự hiểu biết nhanh chóng này của OAuth 2, chúng ta
hãy chuyển sang bài tập,
nơi chúng tôi sẽ cấu hình máy chủ Express của chúng tôi để thực sự sử dụng
cách tiếp cận cấp tiềm ẩn này để cho phép chúng
tôi xác minh danh tính của chúng tôi đến máy chủ Express và,
sau đó, truy cập vào các tài nguyên, các món ăn,
các chương trình khuyến mãi và thông tin của các nhà lãnh đạo được lưu trữ trên máy chủ Express của chúng tôi.