1
00:00:00,000 --> 00:00:05,021
[MUSIC]

2
00:00:05,021 --> 00:00:09,395
Bây giờ chúng tôi đã hiểu được sự cần thiết phải xác thực cơ bản trong

3
00:00:09,395 --> 00:00:14,383
ứng dụng Express của chúng tôi, chúng ta hãy tiến hành bài tập nơi chúng tôi sẽ thêm

4
00:00:14,383 --> 00:00:19,372
xác thực cơ bản vào máy chủ Confance mà chúng tôi đã phát triển cho đến nay,

5
00:00:19,372 --> 00:00:21,311
máy chủ Express REST API.

6
00:00:22,470 --> 00:00:24,050
Chúng tôi sẽ, trên đường đi,

7
00:00:24,050 --> 00:00:29,170
tìm hiểu cách chúng tôi có thể sử dụng xác thực cơ bản trong máy chủ của chúng tôi.

8
00:00:29,170 --> 00:00:34,811
Và sau đó trong các bài tập tiếp theo, chúng tôi sẽ mở rộng ý tưởng này hơn nữa

9
00:00:34,811 --> 00:00:41,107
để thêm một dịch vụ xác thực chính thức cho máy chủ Express REST API của chúng tôi.

10
00:00:42,965 --> 00:00:46,576
Trong bài tập này, chúng tôi sẽ đi đến máy chủ Confect,

11
00:00:46,576 --> 00:00:49,290
những gì chúng tôi đã làm việc cho đến nay.

12
00:00:49,290 --> 00:00:54,333
Vì vậy, bạn phải đã hoàn thành việc thực hiện nhiệm vụ thứ hai

13
00:00:54,333 --> 00:00:59,553
ngay bây giờ, nơi bạn đã có thể phát triển các chương trình khuyến mãi và mô hình lãnh đạo.

14
00:00:59,553 --> 00:01:04,289
Và cũng cập nhật các tuyến đường cho bộ định tuyến dẫn đầu và bộ định

15
00:01:04,289 --> 00:01:09,470
tuyến quảng cáo trong ứng dụng máy chủ Confect của bạn.

16
00:01:09,470 --> 00:01:12,960
Vì vậy, trong mã này, chúng ta hãy đi đến app.js và

17
00:01:12,960 --> 00:01:17,392
sau đó thêm vào xác thực cơ bản vào app.js.

18
00:01:17,392 --> 00:01:22,290
Vì vậy, trong app.js như chúng ta đã hiểu về

19
00:01:22,290 --> 00:01:26,970
cách giữa nó hoạt động trong ứng dụng Express.

20
00:01:26,970 --> 00:01:31,010
Vì vậy, chúng tôi bắt đầu ở đây trong app.js

21
00:01:31,010 --> 00:01:36,640
bằng cách nhập tất cả các module nút khác nhau ở đây.

22
00:01:36,640 --> 00:01:42,650
Và sau đó, chúng tôi bắt đầu ra ở đây bằng cách đầu tiên nói app.use logger dev.

23
00:01:42,650 --> 00:01:46,410
Vì vậy, tất cả những điều này sẽ được áp dụng cho ứng dụng của chúng tôi.

24
00:01:46,410 --> 00:01:51,978
Và sau đó, cuộc gọi này ở đây app.use (express.static)

25
00:01:51,978 --> 00:01:58,128
là những gì cho phép chúng tôi để phục vụ dữ liệu tĩnh từ thư mục công cộng.

26
00:01:58,128 --> 00:02:03,068
Bây giờ, họ muốn thực hiện xác thực ngay trước khi chúng tôi

27
00:02:03,068 --> 00:02:08,870
cho phép khách hàng có thể lấy dữ liệu từ máy chủ của chúng tôi.

28
00:02:08,870 --> 00:02:14,570
Vì vậy, ngay tại đó, chúng tôi sẽ đi vào và thêm một huy hiệu xác thực.

29
00:02:14,570 --> 00:02:18,090
Vì vậy, bạn nhận thấy rằng tất cả mọi thứ mà đến sau này,

30
00:02:18,090 --> 00:02:22,970
tất cả các middleware được gắn kết và đi kèm sau điểm cụ thể này.

31
00:02:22,970 --> 00:02:27,070
Chúng ta sẽ phải trải qua giai đoạn ủy quyền trước khi

32
00:02:27,070 --> 00:02:29,550
phần mềm trung gian đó có thể được truy cập.

33
00:02:29,550 --> 00:02:34,709
Vì vậy, ngay tại đó, tôi sẽ thêm vào app.use và

34
00:02:34,709 --> 00:02:41,600
sau đó thêm một chức năng gọi là auth, mà tôi sẽ thực hiện ngay bây giờ.

35
00:02:41,600 --> 00:02:46,180
Vì vậy, bằng cách làm điều này, những gì chúng tôi đang chỉ định là mặc

36
00:02:46,180 --> 00:02:50,200
định, khách hàng có thể truy cập bất kỳ trong số này,

37
00:02:50,200 --> 00:02:56,070
hoặc tài nguyên tĩnh của họ trong thư mục công cộng, hoặc bất kỳ tài nguyên,

38
00:02:56,070 --> 00:03:00,140
món ăn, chương trình khuyến mãi hoặc nhà lãnh đạo, hoặc thậm chí người dùng như chúng ta sẽ thấy sau này.

39
00:03:02,150 --> 00:03:05,700
Khách hàng phải được ủy quyền lần đầu tiên.

40
00:03:05,700 --> 00:03:08,220
Vì vậy, ngay tại đó, chúng tôi sẽ thêm vào auth.

41
00:03:08,220 --> 00:03:15,960
Vì vậy, hãy để tôi thêm vào các chức năng ở đây gọi là auth ngay tại đó.

42
00:03:15,960 --> 00:03:19,849
Và sau đó ngay lập tức sử dụng nó trong

43
00:03:19,849 --> 00:03:23,147
ứng dụng Express của chúng tôi như là middleware ở đó.

44
00:03:23,147 --> 00:03:27,826
Vì vậy, chức năng này, auth sẽ mất trong ba tham số,

45
00:03:27,826 --> 00:03:33,914
đối tượng yêu cầu, đối tượng tài nguyên, và đối tượng tiếp theo, yeah.

46
00:03:37,015 --> 00:03:41,830
Vì vậy, trong chức năng này cho phép tôi đầu tiên,

47
00:03:41,830 --> 00:03:48,605
chỉ để biết những gì được chứa trong tiêu đề yêu cầu.

48
00:03:50,265 --> 00:03:56,175
Hãy để tôi chỉ cần đăng nhập các tiêu đề yêu cầu ngay tại đó chỉ để chứng minh cho bạn,

49
00:03:56,175 --> 00:03:59,970
bởi vì một khi bạn thêm tiêu đề ủy quyền,

50
00:03:59,970 --> 00:04:03,390
sau đó chúng tôi muốn có thể nhìn thấy nó ngay tại đó.

51
00:04:03,390 --> 00:04:07,390
Vì vậy, trước tiên chúng tôi sẽ làm một bản ghi giao diện điều khiển,

52
00:04:07,390 --> 00:04:10,142
chỉ để xem những gì đang đến từ phía khách hàng.

53
00:04:10,142 --> 00:04:14,379
Sau đó, hãy để tôi có được

54
00:04:14,379 --> 00:04:20,401
tiêu đề ủy quyền của họ bằng cách nói

55
00:04:20,401 --> 00:04:26,900
req.header .authorization.

56
00:04:26,900 --> 00:04:31,120
Vì vậy, đây là nơi chúng tôi sẽ nhận được giữ của tiêu đề ủy quyền được thêm vào

57
00:04:31,120 --> 00:04:33,320
bởi phía khách hàng của chúng tôi.

58
00:04:33,320 --> 00:04:37,830
Nếu nó không có, rõ ràng, sau đó chúng ta cần phải hành động cho phù hợp.

59
00:04:37,830 --> 00:04:44,493
Vì vậy, nếu, AuthHeader là null,

60
00:04:44,493 --> 00:04:48,992
có nghĩa là không có tiêu đề xác thực trong

61
00:04:48,992 --> 00:04:53,653
yêu cầu đến của chúng tôi sau đó rõ ràng, khách hàng của chúng tôi đã không bao gồm tên người dùng và

62
00:04:53,653 --> 00:04:56,650
mật khẩu vào tiêu đề xác thực.

63
00:04:56,650 --> 00:05:01,230
Vì vậy, chúng tôi cần thách thức khách hàng của chúng tôi để cung cấp thông tin này.

64
00:05:01,230 --> 00:05:06,338
Vì vậy, nếu tiêu đề ủy quyền là null, sau đó chúng ta sẽ thấy,

65
00:05:06,338 --> 00:05:12,130
var err lỗi mới,

66
00:05:12,130 --> 00:05:19,140
vì vậy chúng tôi sẽ không cho phép yêu cầu khách hàng của chúng tôi để đi xa hơn thời điểm này.

67
00:05:19,140 --> 00:05:23,803
Vì vậy, chúng tôi sẽ nói, bạn không được chứng thực,

68
00:05:23,803 --> 00:05:28,222
và sau đó chúng tôi sẽ thách thức khách hàng ở đó.

69
00:05:28,222 --> 00:05:33,196
Vì vậy, chúng tôi sẽ nói res.Setheader, vì vậy

70
00:05:33,196 --> 00:05:38,684
chúng tôi sẽ được thiết lập các tiêu đề trong

71
00:05:38,684 --> 00:05:46,061
thông báo phản ứng nói WWW xác thực,

72
00:05:46,061 --> 00:05:50,520
và từ các bài giảng trước đó,

73
00:05:50,520 --> 00:05:55,493
bạn sẽ thấy lý do tại sao chúng tôi đang đặt điều này

74
00:05:55,493 --> 00:06:00,120
vào tiêu đề phản ứng.

75
00:06:00,120 --> 00:06:04,480
Và sau đó chúng ta sẽ nói err status.401.

76
00:06:04,480 --> 00:06:07,710
401 là truy cập trái phép.

77
00:06:07,710 --> 00:06:12,740
Và sau đó chúng tôi sẽ chỉ đơn giản tạo ra cuộc gọi của chúng tôi tiếp theo với tiêu đề.

78
00:06:12,740 --> 00:06:17,960
Vì vậy, điều đó có nghĩa là nó sẽ bỏ qua tất cả điều này và đi đến trình xử lý lỗi,

79
00:06:17,960 --> 00:06:20,710
nơi trình xử lý lỗi sẽ xây dựng thông điệp trả lời và

80
00:06:20,710 --> 00:06:25,880
gửi lại cho khách hàng của tôi ở đó.

81
00:06:25,880 --> 00:06:31,290
Vì vậy, đó là, nếu khách hàng đã không bao gồm tiêu đề xác thực hoặc

82
00:06:31,290 --> 00:06:34,690
tiêu đề ủy quyền, sau đó tôi sẽ thách thức khách hàng để

83
00:06:34,690 --> 00:06:38,980
yêu cầu nó cung cấp cho tôi tiêu đề ủy quyền ở đó.

84
00:06:38,980 --> 00:06:45,570
Vì vậy, nếu không, sau đó tôi biết rằng tiêu đề ủy quyền tồn tại.

85
00:06:45,570 --> 00:06:51,553
Vì vậy, ngoài thời điểm này, chúng ta sẽ nói var auth,

86
00:06:51,553 --> 00:06:55,760
và tôi sẽ trích xuất các tiêu đề ủy quyền.

87
00:06:57,460 --> 00:07:02,880
Và sau đó kể từ khi AuthHeader là một chuỗi,

88
00:07:02,880 --> 00:07:07,650
tôi sẽ chia giá trị đó và

89
00:07:07,650 --> 00:07:12,690
tiêu đề ủy quyền này, tôi sẽ chia giá trị.

90
00:07:12,690 --> 00:07:17,350
Vì vậy, như bạn có thể thấy, bộ đệm cho phép bạn chia giá trị và

91
00:07:17,350 --> 00:07:23,805
sau đó chúng tôi cũng cung cấp cho mã hóa của bộ đệm đó là mã hóa Base64 ở đây.

92
00:07:23,805 --> 00:07:28,790
Vì vậy, chúng tôi sẽ chuyển đổi nó thành một bộ đệm bằng cách tách nó thành hai phần,

93
00:07:30,250 --> 00:07:32,390
sử dụng không gian như là một phần tách.

94
00:07:32,390 --> 00:07:37,614
Vì vậy, khi bạn nhìn vào tiêu đề ủy quyền, bạn thấy tại sao không gian

95
00:07:37,614 --> 00:07:42,656
tách giá trị nói cơ bản, và sau đó nó cung cấp cho bạn phần còn lại

96
00:07:42,656 --> 00:07:48,172
của chuỗi mã hóa Base64 chứa tên người dùng và mật khẩu.

97
00:07:48,172 --> 00:07:53,510
Và từ đó, chúng tôi muốn trích xuất tên người dùng và mật khẩu.

98
00:07:53,510 --> 00:07:59,970
Vì vậy, chúng tôi sẽ chia giá trị đó, và sau đó chúng tôi sẽ chỉ xem xét Vì vậy,

99
00:07:59,970 --> 00:08:07,510
khi bạn chia chuỗi bằng cách sử dụng này, nó sẽ chia thành một mảng.

100
00:08:07,510 --> 00:08:11,780
Và phần tử đầu tiên của mảng chứa Basic.

101
00:08:11,780 --> 00:08:17,370
Yếu tố thứ hai của mảng là nơi chuỗi mã hóa base64 này tồn tại.

102
00:08:17,370 --> 00:08:21,280
Vì vậy, đó là lý do tại sao chúng ta chỉ nhìn vào phần tử thứ hai của mảng này.

103
00:08:21,280 --> 00:08:27,800
Vì vậy việc chia tách này sẽ làm cho chuỗi chia thành một mảng gồm hai mục.

104
00:08:27,800 --> 00:08:32,944
Vì vậy, chúng tôi có thể, chúng tôi đang chọn chuỗi mã hóa base64 từ đó.

105
00:08:32,944 --> 00:08:39,820
Và sau đó chúng tôi vào bộ đệm này, và sau đó chúng tôi sẽ chuyển đổi đó để chuỗi.

106
00:08:39,820 --> 00:08:45,830
Và sau đó một lần nữa, chia chuỗi một lần nữa bởi vì chuỗi

107
00:08:45,830 --> 00:08:51,200
chính nó sẽ chứa tên người dùng và mật khẩu được phân tách bởi dấu hai chấm.

108
00:08:51,200 --> 00:08:56,040
Vì vậy, tôi sẽ chia nó bằng cách sử dụng dấu hai chấm như là

109
00:08:56,040 --> 00:09:01,350
điểm tách cho chuỗi này ở đây.

110
00:09:01,350 --> 00:09:05,727
Vì vậy, lưu ý rằng tôi đang tải hai chia tách ở đây, một trên không gian và

111
00:09:05,727 --> 00:09:11,110
thứ hai, bằng cách sử dụng dấu hai chấm tách tên người dùng và mật khẩu.

112
00:09:11,110 --> 00:09:18,570
Vì vậy, ở phần cuối của auth biến này nên là một mảng chứa hai

113
00:09:18,570 --> 00:09:24,460
mục, tên người dùng và mật khẩu được trích xuất từ chuỗi base64.

114
00:09:24,460 --> 00:09:31,744
Vì vậy, tại thời điểm này, những gì tôi sẽ làm là,

115
00:09:31,744 --> 00:09:35,908
chỉ để rõ ràng của bạn,

116
00:09:35,908 --> 00:09:40,695
Tôi sẽ chỉ đơn giản là nói var

117
00:09:40,695 --> 00:09:46,733
username = auth [0] và sau đó,

118
00:09:46,733 --> 00:09:51,970
var password = auth [1].

119
00:09:51,970 --> 00:09:57,760
Vì vậy, bây giờ tôi đã trích xuất tên người dùng và mật khẩu từ tiêu đề ủy quyền của tôi.

120
00:09:57,760 --> 00:10:02,210
Bây giờ tôi sẽ sử dụng một giá trị mặc định cho tên người dùng và

121
00:10:02,210 --> 00:10:06,030
mật khẩu trong thực hiện này.

122
00:10:06,030 --> 00:10:10,950
Sau đó, chúng ta sẽ thấy rằng chúng ta có thể cho phép người dùng tạo tên người dùng và

123
00:10:10,950 --> 00:10:11,530
mật khẩu riêng của họ.

124
00:10:11,530 --> 00:10:14,304
Nhưng cho thời điểm này, tôi sẽ chỉ sử dụng,

125
00:10:17,358 --> 00:10:20,925
Tên người dùng mã hóa và mật khẩu như quản trị viên.

126
00:10:23,615 --> 00:10:30,705
Và Mật khẩu sẽ chỉ là mật khẩu.

127
00:10:30,705 --> 00:10:32,778
Đối với bài tập cơ bản này,

128
00:10:32,778 --> 00:10:37,970
chúng tôi sẽ sử dụng điều này làm tên người dùng và mật khẩu mặc định.

129
00:10:39,468 --> 00:10:47,520
Nếu tên người dùng mà tôi có được là admin và mật khẩu là mật khẩu chuỗi.

130
00:10:47,520 --> 00:10:52,490
Sau đó, tôi là tất cả tốt để cho phép các

131
00:10:52,490 --> 00:10:56,950
yêu cầu khách hàng sẽ được chuyển qua các middleware tiếp theo như vậy, tôi sẽ nói tiếp theo.

132
00:10:56,950 --> 00:11:01,130
Vì vậy, khi tôi nói tiếp theo, điều này có nghĩa rằng từ auth

133
00:11:01,130 --> 00:11:05,840
yêu cầu của họ sẽ thông qua trên tập tiếp theo của middleware ở đây và

134
00:11:05,840 --> 00:11:10,660
sau đó Express sẽ cố gắng để phù hợp với yêu cầu cụ

135
00:11:11,830 --> 00:11:15,420
thể là middleware cụ thể mà sẽ phục vụ yêu cầu đó.

136
00:11:15,420 --> 00:11:19,440
Vì vậy, đây là nơi chúng tôi sẽ cho phép nó đi qua.

137
00:11:19,440 --> 00:11:24,000
Nếu không, điều đó có nghĩa là tên người dùng và

138
00:11:24,000 --> 00:11:29,260
mật khẩu không khớp với yêu cầu,

139
00:11:29,260 --> 00:11:33,010
tên người dùng và mật khẩu mặc định mà tôi đang thiết lập.

140
00:11:33,010 --> 00:11:34,930
Vì vậy, điều đó có nghĩa là có một lỗi.

141
00:11:34,930 --> 00:11:39,310
Vì vậy, trong trường hợp này, tôi sẽ lại gây ra một lỗi ở đây,

142
00:11:39,310 --> 00:11:43,280
vì vậy chúng tôi sẽ nói khác, Lỗi.

143
00:11:43,280 --> 00:11:49,540
Vì vậy, chúng tôi sẽ một lần nữa tạo ra một lỗi và sau đó thách thức khách hàng để gửi

144
00:11:49,540 --> 00:11:55,430
thông tin ủy quyền chính xác, tên người dùng và mật khẩu ở đây.

145
00:11:55,430 --> 00:11:56,730
Vậy là vậy.

146
00:11:56,730 --> 00:12:01,100
Điều này chút middleware mà chúng tôi vừa thực hiện ở đây,

147
00:12:01,100 --> 00:12:04,010
ủy quyền middleware mà chúng tôi vừa thực hiện ở đây.

148
00:12:04,010 --> 00:12:08,840
Là đủ để thực hiện xác thực cơ bản trong ứng dụng ra ngoài.

149
00:12:08,840 --> 00:12:10,300
Vì vậy, khi thực hiện những thay đổi này, chúng ta

150
00:12:10,300 --> 00:12:15,210
hãy lưu các thay đổi và sau đó chúng ta sẽ thấy cách này thực sự hoạt động trong thực tế.

151
00:12:15,210 --> 00:12:16,770
Hãy lưu các thay đổi.

152
00:12:16,770 --> 00:12:20,600
Và sau đó chúng tôi sẽ đi và khởi động máy chủ của chúng tôi.

153
00:12:20,600 --> 00:12:22,980
Bây giờ, đi đến thiết bị đầu cuối, tất nhiên,

154
00:12:22,980 --> 00:12:26,916
hãy chắc chắn rằng bạn đang MongoDB server là lên và chạy.

155
00:12:26,916 --> 00:12:34,390
Nếu không, máy chủ Express của bạn sẽ không khởi động.

156
00:12:34,390 --> 00:12:38,350
Vì vậy, tôi có các loại nhắc nhở npm bắt đầu, và

157
00:12:38,350 --> 00:12:41,810
sau đó máy chủ Express của bạn sẽ được lên và chạy.

158
00:12:41,810 --> 00:12:46,760
Bây giờ, mở trong cửa sổ ẩn danh trong trình duyệt của bạn.

159
00:12:46,760 --> 00:12:51,280
Lý do tại sao tôi yêu cầu bạn sử dụng một cửa sổ ẩn danh là khi bạn nhập

160
00:12:51,280 --> 00:12:55,820
tên người dùng và mật khẩu sau đó, nó sẽ được lưu trữ bởi trình duyệt của bạn.

161
00:12:55,820 --> 00:12:59,490
Vì vậy, nếu bạn sử dụng một cửa sổ ẩn danh, nếu bạn khởi động lại trình duyệt...

162
00:12:59,490 --> 00:13:01,710
Sau đó, bộ nhớ cache sẽ được xóa tự động,

163
00:13:01,710 --> 00:13:04,300
vì vậy thông tin này sẽ không được ghi nhớ.

164
00:13:04,300 --> 00:13:07,500
Bây giờ điều gì xảy ra nếu bạn nhập tên người dùng và mật khẩu, nó sẽ được lưu trữ,

165
00:13:07,500 --> 00:13:11,570
vì vậy sau đó khi bạn cố gắng truy cập vào máy chủ, thông tin được lưu trữ

166
00:13:11,570 --> 00:13:15,840
sẽ được tự động gửi trong yêu cầu mà bạn tạo ra.

167
00:13:15,840 --> 00:13:18,710
Vì vậy, đó là lý do tại sao điều quan trọng là

168
00:13:18,710 --> 00:13:23,400
sử dụng một cửa sổ ẩn danh chỉ để cho bạn thấy rằng xác thực cơ bản hoạt động.

169
00:13:23,400 --> 00:13:31,140
Vì vậy, trong thanh địa chỉ trình duyệt của bạn, hãy gõ localhost:3000 và xem những gì sẽ xảy ra.

170
00:13:31,140 --> 00:13:36,920
Vì vậy, khi bạn gõ localhost:3000 bạn ngay lập tức thấy rằng trình duyệt của bạn bật lên

171
00:13:36,920 --> 00:13:43,290
hộp thoại này trên đầu yêu cầu bạn gõ vào tên người dùng và mật khẩu.

172
00:13:43,290 --> 00:13:50,240
Nếu bạn không gõ nó, hãy để tôi gõ vào một số tên người dùng ngẫu nhiên và sau đó xem điều gì sẽ xảy ra.

173
00:13:50,240 --> 00:13:54,000
Vì vậy, nếu tôi gõ vào một tên người dùng và mật khẩu ngẫu nhiên,

174
00:13:54,000 --> 00:13:57,260
sau đó bạn thấy rằng yêu cầu bị từ chối.

175
00:13:57,260 --> 00:14:00,890
Tôi không được phép truy cập vào máy chủ, và

176
00:14:00,890 --> 00:14:06,100
sau đó nếu máy chủ sẽ một lần nữa nói rằng máy khách không được phép.

177
00:14:06,100 --> 00:14:10,330
Và vì vậy nó sẽ trở lại và thách thức chúng tôi một lần nữa để xác thực chính xác.

178
00:14:10,330 --> 00:14:12,820
Vì vậy, hãy để tôi gõ vào xác thực hiện tại.

179
00:14:12,820 --> 00:14:17,670
Vì vậy, hãy để tôi gõ vào admin và mật khẩu làm mật khẩu.

180
00:14:17,670 --> 00:14:23,650
Và sau đó đăng nhập, và bạn sẽ thấy rằng bây giờ

181
00:14:23,650 --> 00:14:28,530
ứng dụng Express sẽ cho phép bạn đi vào và truy cập vào giá trị mặc định,

182
00:14:28,530 --> 00:14:34,700
mà trong trường hợp này là tệp Index.html từ thư mục công cộng tĩnh đó.

183
00:14:34,700 --> 00:14:39,590
Bây giờ, điều tương tự nếu bạn đang cố gắng truy cập localhost:các món ăn

184
00:14:39,590 --> 00:14:43,260
mà không có sự cho phép, sau đó nó sẽ không làm việc.

185
00:14:43,260 --> 00:14:49,320
Và tôi sẽ chứng minh điều đó với bạn sử dụng người đưa thư trong một phút.

186
00:14:50,630 --> 00:14:56,011
Bây giờ đã nhìn thấy cách thức xác thực hoạt động, chúng ta hãy đi và

187
00:14:56,011 --> 00:15:00,985
nhìn vào những gì đã xảy ra trên giao diện điều khiển trên trang web máy chủ của chúng tôi.

188
00:15:06,181 --> 00:15:11,141
Đi đến giao diện điều khiển trên trang web máy chủ của chúng tôi, bạn thấy rằng một loạt các thông tin

189
00:15:11,141 --> 00:15:13,769
đã được in ra ở đây, vì vậy như bạn đã thấy,

190
00:15:13,769 --> 00:15:17,030
chúng tôi đã đăng xuất các tiêu đề yêu cầu ở đây.

191
00:15:17,030 --> 00:15:21,040
Vì vậy, đây là yêu cầu đầu tiên đi kèm với tiêu đề yêu cầu.

192
00:15:21,040 --> 00:15:26,860
Và ở đây bạn thấy rằng không có tiêu đề ủy quyền trong yêu cầu.

193
00:15:26,860 --> 00:15:34,620
Và vì vậy máy chủ của bạn đã từ chối điều đó với một 401 yêu cầu khách hàng của chúng tôi để ủy quyền cho chính nó.

194
00:15:34,620 --> 00:15:40,240
Lần thứ hai cũng kể từ khi chúng tôi không gõ vào chính xác ủy quyền mà

195
00:15:40,240 --> 00:15:41,916
máy chủ từ chối.

196
00:15:41,916 --> 00:15:48,390
Tất nhiên, bây giờ bạn nhận thấy rằng trong tiêu đề, ngay tại đó, ủy quyền

197
00:15:48,390 --> 00:15:52,820
thực sự được bao gồm ở đó, và bạn thấy cách thức ủy quyền được bao gồm.

198
00:15:52,820 --> 00:15:56,650
Nó nói Basic được phân cách bởi một khoảng trắng, và

199
00:15:56,650 --> 00:16:02,980
được phân cách bởi chuỗi mã hóa 64 bit có chứa tên người dùng và mật khẩu.

200
00:16:02,980 --> 00:16:06,080
Và sau đó, chúng ta thấy rằng máy chủ đã

201
00:16:06,080 --> 00:16:09,540
từ chối điều này bởi vì ủy quyền là sai tại thời điểm đó.

202
00:16:09,540 --> 00:16:14,452
Bây giờ sau đó, chúng tôi đã nhập đúng tên người dùng và mật khẩu.

203
00:16:14,452 --> 00:16:18,938
Vì vậy, ngay tại đó trong yêu cầu thứ ba mà đi vào, chúng tôi gõ đúng tên người dùng và

204
00:16:18,938 --> 00:16:19,597
mật khẩu.

205
00:16:19,597 --> 00:16:27,323
Và như vậy, đó là lý do tại sao bạn thấy rằng tiêu đề yêu cầu chứa ủy quyền,

206
00:16:27,323 --> 00:16:34,180
và chuỗi này sử dụng mã hóa chính xác của tên người dùng và mật khẩu.

207
00:16:34,180 --> 00:16:35,720
Làm sao tôi biết được?

208
00:16:35,720 --> 00:16:38,384
Vâng, tôi đã kiểm tra chéo và biết

209
00:16:38,384 --> 00:16:42,337
rằng, đó là phiên bản mã hóa nước ngoài cơ bản của chuỗi ở đó.

210
00:16:42,337 --> 00:16:47,470
Chúng tôi cũng sẽ thấy điều đó từ hình ảnh người đưa thư của chúng tôi hoặc những gì.

211
00:16:48,740 --> 00:16:53,740
Bây giờ sau đó, bạn thấy rằng yêu cầu đã được chấp nhận và

212
00:16:53,740 --> 00:16:55,740
nó trả về giá trị một cách chính xác.

213
00:16:57,210 --> 00:17:05,150
Và sau đó tất nhiên, sau đó, khách hàng yêu cầu cho một favicon, biểu tượng.

214
00:17:05,150 --> 00:17:11,590
Và vì chúng tôi không có favicon ở phía máy chủ của chúng tôi, nó trả lời với 404 và

215
00:17:11,590 --> 00:17:15,560
tất nhiên biểu tượng yêu thích của bạn không được hiển thị trong thanh địa chỉ.

216
00:17:15,560 --> 00:17:18,640
Vì vậy, đó là tốt, nhưng lưu ý đặc biệt.

217
00:17:18,640 --> 00:17:21,430
Những yêu cầu đặc biệt đến,

218
00:17:21,430 --> 00:17:25,030
nơi tiêu đề ủy quyền chính xác đã được bao gồm.

219
00:17:25,030 --> 00:17:28,490
Và như vậy, nó đã thành công vào thời điểm đó.

220
00:17:28,490 --> 00:17:33,680
Hãy thử xem làm thế nào chúng ta có thể làm điều tương tự với postmap.

221
00:17:33,680 --> 00:17:38,480
Vì vậy, ở đây tôi có cửa sổ postmap của tôi mở ra.

222
00:17:38,480 --> 00:17:42,250
Và như vậy trong cửa sổ Postman của tôi, tôi sẽ gõ vào

223
00:17:44,160 --> 00:17:50,670
một get để localhost: đến máy chủ của tôi, và sau đó gửi yêu cầu và

224
00:17:50,670 --> 00:17:57,260
bạn sẽ ngay lập tức nhận thấy rằng nó thách thức nói 401 trái phép.

225
00:17:57,260 --> 00:18:01,890
Vì vậy, đây là thông điệp trả lời từ phía máy chủ,

226
00:18:01,890 --> 00:18:06,580
vì vậy hãy chú ý những gì nó tiết kiệm, 401 trái phép.

227
00:18:06,580 --> 00:18:12,550
Và nó nói rằng phản ứng phải bao gồm một lĩnh vực tiêu đề WWW xác thực.

228
00:18:12,550 --> 00:18:18,153
Và điều này sẽ là thách thức khách hàng để gửi thông tin ủy quyền,

229
00:18:18,153 --> 00:18:20,083
tên người dùng và mật khẩu.

230
00:18:20,083 --> 00:18:25,833
Vì vậy, xem trước này, chúng ta thấy rằng các câu bạn không được chứng thực và

231
00:18:25,833 --> 00:18:27,940
sau đó là mã 401 ở đây.

232
00:18:27,940 --> 00:18:31,341
Bây giờ nhìn vào tiêu đề của tin nhắn trả lời.

233
00:18:31,341 --> 00:18:36,781
Khi bạn nhìn vào tiêu đề của thư trả lời, bạn có thể thấy đặc biệt

234
00:18:36,781 --> 00:18:41,718
tiêu đề này bao gồm ở đó, đó là www.authenticatebasic.

235
00:18:41,718 --> 00:18:46,522
Bây giờ, làm thế nào để chúng ta thực hiện xác thực hoặc ủy quyền trong bưu điện?

236
00:18:46,522 --> 00:18:51,090
Vì vậy, đây là nơi họ sẽ đi đến này ngay bên dưới hộp này ở đây,

237
00:18:51,090 --> 00:18:53,952
bạn sẽ thấy ủy quyền này ở đây.

238
00:18:53,952 --> 00:18:58,050
Và khi bạn nhấp vào ủy quyền, ngay bây giờ nó nói KHÔNG AUTH..

239
00:18:58,050 --> 00:19:01,240
Hãy sử dụng xác thực cơ bản.

240
00:19:01,240 --> 00:19:04,820
Vì vậy, khi tôi nói xác thực cơ bản, nó sẽ

241
00:19:04,820 --> 00:19:08,530
cung cấp cho tôi hai lĩnh vực ở đây, nơi tôi có thể gõ vào tên người dùng và mật khẩu.

242
00:19:08,530 --> 00:19:11,160
Hãy để tôi nhập đúng tên người dùng và mật khẩu.

243
00:19:11,160 --> 00:19:19,170
Vì vậy, tôi sẽ nói tên người dùng quản trị, mật khẩu là mật khẩu P-A-S-S-W-O-R-D.

244
00:19:19,170 --> 00:19:22,650
Vì vậy, bạn có thể thấy rằng, đó chính xác là mật khẩu mà chúng tôi có ở đây.

245
00:19:22,650 --> 00:19:26,800
Vì vậy, khi bạn nhập tên người dùng và mật khẩu, họ sẽ nói Yêu cầu Cập nhật.

246
00:19:26,800 --> 00:19:30,980
Vì vậy, khi tôi nhấp vào Yêu cầu Cập nhật, bạn sẽ thấy rằng ngay lập tức trong tiêu đề,

247
00:19:32,130 --> 00:19:35,340
bạn sẽ thấy rằng

248
00:19:35,340 --> 00:19:40,770
có trường này ở đây đã được thêm vào đây nói ủy quyền.

249
00:19:40,770 --> 00:19:45,080
Và sau đó, bạn sẽ thấy phần thứ hai này, giá trị bạn có thể lấy.

250
00:19:45,080 --> 00:19:49,480
Nó nói cơ bản và một không gian, và sau đó chuỗi đặc biệt này.

251
00:19:49,480 --> 00:19:55,040
Vì vậy, nếu bạn kiểm tra chuỗi cụ thể này ở đây, đây sẽ là

252
00:19:55,040 --> 00:20:01,219
chuỗi chính xác mà bạn sẽ thấy trong tiêu đề của thông điệp yêu cầu thành công.

253
00:20:01,219 --> 00:20:03,544
Chú ý những gì chuỗi này nói.

254
00:20:03,544 --> 00:20:09,309
Nó nói YWR một cái gì đó, và sau đó kết thúc với một Q bằng.

255
00:20:09,309 --> 00:20:14,285
Đi đến thiết bị đầu cuối của chúng tôi, bạn thấy rằng yêu cầu thành công

256
00:20:14,285 --> 00:20:18,276
thực sự chứa chính xác chuỗi đó ở đây.

257
00:20:18,276 --> 00:20:24,250
Nó nói YWR và sau đó kết thúc bằng Q bằng ở đó.

258
00:20:24,250 --> 00:20:28,400
Vì vậy, bằng cách nhập thông tin vào ủy quyền và sau đó nhấp

259
00:20:28,400 --> 00:20:34,240
vào yêu cầu cập nhật, thông tin này được thêm vào các tiêu đề ủy quyền.

260
00:20:34,240 --> 00:20:36,410
Vì vậy, bây giờ đây là một yêu cầu get,

261
00:20:37,410 --> 00:20:42,020
tôi không cần loại nội dung có bởi vì nó không chứa bất kỳ cơ thể.

262
00:20:42,020 --> 00:20:46,106
Vì vậy, bây giờ ủy quyền đã được bao gồm,

263
00:20:46,106 --> 00:20:51,263
chúng ta hãy gửi yêu cầu ngay bây giờ một cách chính xác và sau đó bạn sẽ thấy rằng

264
00:20:51,263 --> 00:20:57,990
câu trả lời đến từ trang web máy chủ sẽ chứa tệp chỉ mục như bạn mong đợi.

265
00:20:57,990 --> 00:21:02,524
Bây giờ, để tôi xóa ủy quyền.

266
00:21:02,524 --> 00:21:07,351
Bây giờ đây là lý do tại sao Postmap giúp tôi kiểm tra những điều này một

267
00:21:07,351 --> 00:21:11,662
cách dễ dàng hơn, tôi có thể xóa ủy quyền và sau đó gửi yêu cầu.

268
00:21:11,662 --> 00:21:14,947
Và nó vẫn sẽ chứa ủy quyền này,

269
00:21:14,947 --> 00:21:18,570
bởi vì tôi đã gõ điều này vào trường ủy quyền.

270
00:21:18,570 --> 00:21:23,380
Vì vậy, hãy để tôi xóa ủy quyền từ đó, và sau đó gửi yêu cầu ở đây.

271
00:21:23,380 --> 00:21:26,000
Và sau đó nó nói rằng bạn không được chứng thực.

272
00:21:26,000 --> 00:21:30,230
Tương tự như vậy, nếu tôi gửi yêu cầu đến các món ăn.

273
00:21:30,230 --> 00:21:32,000
Trước đây, điều này làm việc tốt nhưng

274
00:21:32,000 --> 00:21:37,750
bây giờ bạn thấy rằng chúng tôi đang ngăn chặn truy cập các /dishes điểm cuối cũng.

275
00:21:37,750 --> 00:21:41,400
Và điều tương tự với tất cả các điểm cuối APR còn lại khác cũng.

276
00:21:41,400 --> 00:21:47,360
Bạn sẽ không được phép truy cập, bởi vì phần mềm trung gian ủy quyền đến trước khi

277
00:21:47,360 --> 00:21:50,600
bạn nhận được quyền truy cập vào bất kỳ điểm cuối nào

278
00:21:50,600 --> 00:21:56,070
trong danh sách phần mềm trung gian cho máy chủ express của bạn.

279
00:21:56,070 --> 00:21:59,945
Vì vậy, bây giờ nếu tôi bao gồm ủy quyền,

280
00:22:04,774 --> 00:22:10,277
Và sau đó cập nhật yêu cầu của tôi và sau đó gửi yêu cầu đến máy chủ,

281
00:22:10,277 --> 00:22:12,845
sau đó máy chủ sẽ trả lời.

282
00:22:12,845 --> 00:22:17,412
Bây giờ rõ ràng tại thời điểm này cơ sở dữ liệu của tôi là trống rỗng, vì vậy

283
00:22:17,412 --> 00:22:20,752
nó là trả lời với một mảng trống ở đó.

284
00:22:20,752 --> 00:22:24,109
Nhưng bây giờ yêu cầu đã đi qua thành công, và

285
00:22:24,109 --> 00:22:28,004
tôi có thể lấy thông tin từ vớ máy chủ.

286
00:22:28,004 --> 00:22:32,186
Vì vậy, đây là một minh chứng nhanh chóng của

287
00:22:32,186 --> 00:22:37,724
ủy quyền cơ bản trong ứng dụng APR nghỉ ngơi nhanh của chúng tôi.

288
00:22:37,724 --> 00:22:40,730
Với điều này, chúng tôi hoàn thành bài tập này.

289
00:22:40,730 --> 00:22:42,236
Đây là thời điểm tốt cho

290
00:22:42,236 --> 00:22:46,846
bạn để làm một nhận xét get với thông điệp xác thực cơ bản.

291
00:22:46,846 --> 00:22:50,116
[ NHẠC]