1
00:00:00,000 --> 00:00:05,021
[МУЗЫКА]

2
00:00:05,021 --> 00:00:09,395
Теперь, когда мы поняли необходимость обычной аутентификации в нашем

3
00:00:09,395 --> 00:00:14,383
приложении Express, давайте приступим к упражнению, где мы добавим базовую

4
00:00:14,383 --> 00:00:19,372
аутентификацию на сервер Mistration, который мы разрабатываем до сих пор,

5
00:00:19,372 --> 00:00:21,311
сервер Express REST API.

6
00:00:22,470 --> 00:00:24,050
По пути мы

7
00:00:24,050 --> 00:00:29,170
узнаем, как мы можем использовать обычную аутентификацию на нашем сервере.

8
00:00:29,170 --> 00:00:34,811
А затем в последующих упражнениях мы расширим эту идею и

9
00:00:34,811 --> 00:00:41,107
добавим полноценный сервис аутентификации для нашего сервера Express REST API.

10
00:00:42,965 --> 00:00:46,576
В этом упражнении мы перейдем на сервер Mistration,

11
00:00:46,576 --> 00:00:49,290
над чем мы работали до сих пор.

12
00:00:49,290 --> 00:00:54,333
Таким образом, вы должны завершить реализацию второго задания к

13
00:00:54,333 --> 00:00:59,553
настоящему времени, где вы бы разработали промо-акции и модель лидеров.

14
00:00:59,553 --> 00:01:04,289
А также обновлены маршруты для ведущего роутера и

15
00:01:04,289 --> 00:01:09,470
промо-роутера в вашем серверном приложении UniCT.

16
00:01:09,470 --> 00:01:12,960
Поэтому в этом коде давайте перейдем к app.js, а

17
00:01:12,960 --> 00:01:17,392
затем добавим базовую аутентификацию в app.js.

18
00:01:17,392 --> 00:01:22,290
Поэтому в app.js, как мы поняли о том

19
00:01:22,290 --> 00:01:26,970
, как средний способ он работает в приложении Express.

20
00:01:26,970 --> 00:01:31,010
Поэтому мы начинаем здесь, в app.js

21
00:01:31,010 --> 00:01:36,640
, импортируя все различные модули узлов здесь.

22
00:01:36,640 --> 00:01:42,650
И затем, после этого, мы начинаем здесь, сначала говоря app.use logger dev.

23
00:01:42,650 --> 00:01:46,410
Таким образом, все это будет применено к нашей заявке.

24
00:01:46,410 --> 00:01:51,978
И затем этот вызов здесь app.use (express.static)

25
00:01:51,978 --> 00:01:58,128
- это то, что позволяет нам обслуживать статические данные из общей папки.

26
00:01:58,128 --> 00:02:03,068
Теперь они хотят выполнить аутентификацию прямо перед тем

27
00:02:03,068 --> 00:02:08,870
, как мы позволим клиенту получать данные с нашего сервера.

28
00:02:08,870 --> 00:02:14,570
Так что прямо там, мы войдем и добавим значок аутентификации.

29
00:02:14,570 --> 00:02:18,090
Таким образом, вы заметили, что все, что приходит после этого,

30
00:02:18,090 --> 00:02:22,970
все промежуточное программное обеспечение, которое смонтировано и приходит после этой конкретной точки.

31
00:02:22,970 --> 00:02:27,070
Мы должны пройти этап авторизации, прежде чем

32
00:02:27,070 --> 00:02:29,550
это промежуточное программное обеспечение сможет получить доступ.

33
00:02:29,550 --> 00:02:34,709
Поэтому прямо там я собираюсь добавить в app.use, а

34
00:02:34,709 --> 00:02:41,600
затем добавить функцию под названием auth, которую я собираюсь реализовать прямо сейчас.

35
00:02:41,600 --> 00:02:46,180
Таким образом, делая это, то, что мы указываем по умолчанию,

36
00:02:46,180 --> 00:02:50,200
клиент может получить доступ к любому из них,

37
00:02:50,200 --> 00:02:56,070
либо к своим статическим ресурсам в общей папке, либо к любым ресурсам,

38
00:02:56,070 --> 00:03:00,140
блюдам, акциям или лидерам, или даже пользователям, как мы увидим позже.

39
00:03:02,150 --> 00:03:05,700
Клиент должен быть сначала авторизован.

40
00:03:05,700 --> 00:03:08,220
Так что прямо там, мы добавим в auth.

41
00:03:08,220 --> 00:03:15,960
Поэтому позвольте мне добавить функцию здесь под названием auth прямо там.

42
00:03:15,960 --> 00:03:19,849
А затем немедленно используйте его в нашем

43
00:03:19,849 --> 00:03:23,147
приложении Express в качестве промежуточного программного обеспечения там.

44
00:03:23,147 --> 00:03:27,826
Таким образом, эта функция, auth будет принимать три параметра:

45
00:03:27,826 --> 00:03:33,914
объект запроса, объект ресурса и следующий объект, да.

46
00:03:37,015 --> 00:03:41,830
Поэтому в этой функции позвольте мне сначала,

47
00:03:41,830 --> 00:03:48,605
просто чтобы узнать, что содержится в заголовке запроса.

48
00:03:50,265 --> 00:03:56,175
Позвольте мне просто записать заголовки запросов прямо там, чтобы продемонстрировать вам,

49
00:03:56,175 --> 00:03:59,970
потому что как только вы добавите заголовок авторизации,

50
00:03:59,970 --> 00:04:03,390
тогда мы хотим видеть его прямо там.

51
00:04:03,390 --> 00:04:07,390
Поэтому мы сначала сделаем журнал консоли,

52
00:04:07,390 --> 00:04:10,142
просто чтобы увидеть, что приходит со стороны клиента.

53
00:04:10,142 --> 00:04:14,379
Затем позвольте мне получить их

54
00:04:14,379 --> 00:04:20,401
заголовок авторизации, сказав

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

56
00:04:26,900 --> 00:04:31,120
Таким образом, здесь мы получим заголовок авторизации, который добавляется

57
00:04:31,120 --> 00:04:33,320
нашей клиентской стороной.

58
00:04:33,320 --> 00:04:37,830
Если его нет, очевидно, то нам нужно действовать соответствующим образом.

59
00:04:37,830 --> 00:04:44,493
Поэтому, если AuthHeader имеет значение null,

60
00:04:44,493 --> 00:04:48,992
что означает, что в нашем входящем

61
00:04:48,992 --> 00:04:53,653
запросе нет заголовка аутентификации, то, очевидно, наш клиент не включил имя пользователя и

62
00:04:53,653 --> 00:04:56,650
пароль в заголовок аутентификации.

63
00:04:56,650 --> 00:05:01,230
Поэтому мы должны бросить вызов нашему клиенту, чтобы предоставить эту информацию.

64
00:05:01,230 --> 00:05:06,338
Поэтому, если заголовок авторизации равен нулю, то мы увидим,

65
00:05:06,338 --> 00:05:12,130
var err новая ошибка,

66
00:05:12,130 --> 00:05:19,140
поэтому мы не позволим нашему клиентскому запросу выходить дальше этой точки.

67
00:05:19,140 --> 00:05:23,803
Так что мы скажем, вы не аутентифицированы,

68
00:05:23,803 --> 00:05:28,222
и тогда мы вызовем клиента там.

69
00:05:28,222 --> 00:05:33,196
Итак, мы скажем res.setHeader, поэтому

70
00:05:33,196 --> 00:05:38,684
мы собираемся установить заголовок в

71
00:05:38,684 --> 00:05:46,061
ответном сообщении, говорящем WWW-Authenticate,

72
00:05:46,061 --> 00:05:50,520
и из лекции ранее,

73
00:05:50,520 --> 00:05:55,493
вы увидите, почему мы помещаем это

74
00:05:55,493 --> 00:06:00,120
в заголовок ответа.

75
00:06:00,120 --> 00:06:04,480
И тогда мы скажем ошибочный статус.401.

76
00:06:04,480 --> 00:06:07,710
401 - это несанкционированный доступ.

77
00:06:07,710 --> 00:06:12,740
И тогда мы просто сгенерируем наш вызов рядом с заголовком.

78
00:06:12,740 --> 00:06:17,960
Таким образом, это означает, что он пропустит все это и перейдет к

79
00:06:17,960 --> 00:06:20,710
обработчику ошибок, где обработчик ошибок создаст ответное сообщение и

80
00:06:20,710 --> 00:06:25,880
отправит обратно моему клиенту.

81
00:06:25,880 --> 00:06:31,290
Таким образом, если клиент не включил заголовок аутентификации или

82
00:06:31,290 --> 00:06:34,690
заголовок авторизации, то я собираюсь бросить вызов клиенту, чтобы

83
00:06:34,690 --> 00:06:38,980
попросить его предоставить мне заголовок авторизации там.

84
00:06:38,980 --> 00:06:45,570
Поэтому, если нет, я знаю, что заголовок авторизации существует.

85
00:06:45,570 --> 00:06:51,553
Таким образом, помимо этого, мы скажем var auth,

86
00:06:51,553 --> 00:06:55,760
и я собираюсь извлечь заголовок авторизации.

87
00:06:57,460 --> 00:07:02,880
И затем, поскольку authHeader является строкой,

88
00:07:02,880 --> 00:07:07,650
я собираюсь разделить это значение и

89
00:07:07,650 --> 00:07:12,690
этот заголовок авторизации, я собираюсь разделить значение.

90
00:07:12,690 --> 00:07:17,350
Таким образом, как вы можете видеть, буфер позволяет вам разделить значение, а

91
00:07:17,350 --> 00:07:23,805
затем мы также даем кодировку буфера, который является кодировкой Base64 здесь.

92
00:07:23,805 --> 00:07:28,790
Таким образом, мы преобразуем это в буфер, разделив его на две части,

93
00:07:30,250 --> 00:07:32,390
используя пространство в качестве разделительной части.

94
00:07:32,390 --> 00:07:37,614
Поэтому, когда вы посмотрели заголовок авторизации, вы видели, почему пространство

95
00:07:37,614 --> 00:07:42,656
разделяет значение basic, а затем дает вам остальную

96
00:07:42,656 --> 00:07:48,172
часть закодированной строки Base64, которая содержит имя пользователя и пароль.

97
00:07:48,172 --> 00:07:53,510
И из этого мы хотим извлечь имя пользователя и пароль.

98
00:07:53,510 --> 00:07:59,970
Таким образом, мы собираемся разделить это значение, а затем мы только рассмотрим, поэтому,

99
00:07:59,970 --> 00:08:07,510
когда вы разделите строку, используя это, она разделит это на массив.

100
00:08:07,510 --> 00:08:11,780
И первый элемент массива содержит Basic.

101
00:08:11,780 --> 00:08:17,370
Второй элемент массива - это то, где существует эта кодированная строка base64.

102
00:08:17,370 --> 00:08:21,280
Вот почему мы смотрим только на второй элемент этого массива.

103
00:08:21,280 --> 00:08:27,800
Таким образом, это разделение приведет к расколу строки на массив из двух элементов.

104
00:08:27,800 --> 00:08:32,944
Таким образом, мы могли бы, мы берем из этого закодированную строку base64.

105
00:08:32,944 --> 00:08:39,820
И затем мы в этот буфер, а затем мы собираемся преобразовать это в строку.

106
00:08:39,820 --> 00:08:45,830
И снова разделите строку еще раз, потому что

107
00:08:45,830 --> 00:08:51,200
сама строка будет содержать имя пользователя и пароль, разделенные двоеточием.

108
00:08:51,200 --> 00:08:56,040
Итак, я собираюсь разделить его, используя двоеточие

109
00:08:56,040 --> 00:09:01,350
в качестве точки разделения для этой строки здесь.

110
00:09:01,350 --> 00:09:05,727
Поэтому обратите внимание, что я загружаю два разделения здесь, один на пробел, а

111
00:09:05,727 --> 00:09:11,110
второй, используя двоеточие, которое отделяет имя пользователя и пароль.

112
00:09:11,110 --> 00:09:18,570
Таким образом, в конце этой переменной auth должен быть массив, содержащий два элемента,

113
00:09:18,570 --> 00:09:24,460
имя пользователя и пароль, который извлекается из строки base64.

114
00:09:24,460 --> 00:09:31,744
Итак, на данный момент я собираюсь сделать,

115
00:09:31,744 --> 00:09:35,908
просто для вашей ясности,

116
00:09:35,908 --> 00:09:40,695
я просто скажу var

117
00:09:40,695 --> 00:09:46,733
username = auth [0], а затем,

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

119
00:09:51,970 --> 00:09:57,760
Итак, теперь я извлек имя пользователя и пароль из моего заголовка авторизации.

120
00:09:57,760 --> 00:10:02,210
Теперь я собираюсь использовать значение по умолчанию для имени пользователя и

121
00:10:02,210 --> 00:10:06,030
пароля в этой реализации.

122
00:10:06,030 --> 00:10:10,950
Позже мы увидим, что мы можем позволить пользователям создавать свои собственные имя пользователя и

123
00:10:10,950 --> 00:10:11,530
пароль.

124
00:10:11,530 --> 00:10:14,304
Но на данный момент я просто собираюсь использовать

125
00:10:17,358 --> 00:10:20,925
закодированное имя пользователя и пароль как admin.

126
00:10:23,615 --> 00:10:30,705
И пароль будет просто паролем.

127
00:10:30,705 --> 00:10:32,778
Для этого основного упражнения

128
00:10:32,778 --> 00:10:37,970
мы будем использовать это как имя пользователя и пароль по умолчанию.

129
00:10:39,468 --> 00:10:47,520
Если имя пользователя, которое я получаю, является admin, а пароль - строковый пароль.

130
00:10:47,520 --> 00:10:52,490
Тогда я все в порядке, чтобы разрешить

131
00:10:52,490 --> 00:10:56,950
запрос клиента будет передан следующему промежуточному программному обеспечению, поэтому я скажу следующее.

132
00:10:56,950 --> 00:11:01,130
Поэтому, когда я говорю следующее, это означает, что из auth

133
00:11:01,130 --> 00:11:05,840
их запрос будет передан на следующий набор промежуточного программного обеспечения здесь, а

134
00:11:05,840 --> 00:11:10,660
затем Express попытается сопоставить конкретный запрос с

135
00:11:11,830 --> 00:11:15,420
конкретным промежуточным программным обеспечением, которое будет обслуживать этот запрос.

136
00:11:15,420 --> 00:11:19,440
Так вот где мы позволим ему пройти через него.

137
00:11:19,440 --> 00:11:24,000
Если нет, это означает, что имя пользователя и

138
00:11:24,000 --> 00:11:29,260
пароль не соответствуют запросу,

139
00:11:29,260 --> 00:11:33,010
имя пользователя и пароль по умолчанию, которые я настраиваю.

140
00:11:33,010 --> 00:11:34,930
Таким образом, это означает, что есть ошибка.

141
00:11:34,930 --> 00:11:39,310
Так что в этом случае я снова вызову ошибку здесь,

142
00:11:39,310 --> 00:11:43,280
так что мы скажем иначе, Error.

143
00:11:43,280 --> 00:11:49,540
Таким образом, мы снова создадим ошибку, а затем вызовем клиента, чтобы отправить

144
00:11:49,540 --> 00:11:55,430
правильную информацию авторизации, имя пользователя и пароль здесь.

145
00:11:55,430 --> 00:11:56,730
Так вот и всё.

146
00:11:56,730 --> 00:12:01,100
Это немного промежуточного программного обеспечения, которое мы только что реализовали здесь,

147
00:12:01,100 --> 00:12:04,010
промежуточное программное обеспечение для авторизации, которое мы только что реализовали здесь.

148
00:12:04,010 --> 00:12:08,840
Достаточно реализовать обычную аутентификацию внутри приложения.

149
00:12:08,840 --> 00:12:10,300
Итак, сделав эти изменения,

150
00:12:10,300 --> 00:12:15,210
давайте сохраним изменения, а затем посмотрим, как это действительно работает на практике.

151
00:12:15,210 --> 00:12:16,770
Давайте сохраним изменения.

152
00:12:16,770 --> 00:12:20,600
А потом мы пойдем и запустим наш сервер.

153
00:12:20,600 --> 00:12:22,980
Теперь, идя на терминал, конечно,

154
00:12:22,980 --> 00:12:26,916
убедитесь, что вы сервер MongoDB запущен и запущен.

155
00:12:26,916 --> 00:12:34,390
В противном случае ваш Express сервер не будет запущен.

156
00:12:34,390 --> 00:12:38,350
Поэтому у меня есть подсказка npm start, а

157
00:12:38,350 --> 00:12:41,810
затем ваш Express сервер будет запущен и запущен.

158
00:12:41,810 --> 00:12:46,760
Теперь откройте окно инкогнито в браузере.

159
00:12:46,760 --> 00:12:51,280
Причина, по которой я прошу вас использовать окно инкогнито, заключается в том, что, когда вы

160
00:12:51,280 --> 00:12:55,820
вводите имя пользователя и пароль, он будет кэширован вашим браузером.

161
00:12:55,820 --> 00:12:59,490
Поэтому, если вы используете окно инкогнито, если вы перезапустите браузер...

162
00:12:59,490 --> 00:13:01,710
Затем кэш будет очищен автоматически,

163
00:13:01,710 --> 00:13:04,300
поэтому эта информация не запомнится.

164
00:13:04,300 --> 00:13:07,500
Теперь, что произойдет, если вы введете имя пользователя и пароль, он будет кэширован,

165
00:13:07,500 --> 00:13:11,570
поэтому впоследствии, когда вы попытаетесь получить доступ к серверу, кэшированная информация

166
00:13:11,570 --> 00:13:15,840
будет автоматически отправлена в запросе, который вы создаете.

167
00:13:15,840 --> 00:13:18,710
Поэтому важно

168
00:13:18,710 --> 00:13:23,400
использовать окно инкогнито, чтобы показать вам, что работает обычная аутентификация.

169
00:13:23,400 --> 00:13:31,140
Поэтому в адресной строке вашего браузера наберите localhost: 3000 и посмотрите, что произойдет.

170
00:13:31,140 --> 00:13:36,920
Поэтому, когда вы вводите localhost: 3000, вы сразу увидите, что ваш браузер всплывает

171
00:13:36,920 --> 00:13:43,290
этот диалог сверху с просьбой ввести имя пользователя и пароль.

172
00:13:43,290 --> 00:13:50,240
Если вы не напечатаете его, позвольте мне ввести какое-то случайное имя пользователя, а затем посмотреть, что произойдет.

173
00:13:50,240 --> 00:13:54,000
Поэтому, если я введу случайное имя пользователя и пароль,

174
00:13:54,000 --> 00:13:57,260
вы увидите, что запрос отклоняется.

175
00:13:57,260 --> 00:14:00,890
Мне не разрешено получить доступ к серверу, а

176
00:14:00,890 --> 00:14:06,100
затем, если сервер снова скажет, что клиент не авторизован.

177
00:14:06,100 --> 00:14:10,330
И поэтому он вернется и снова бросит нам вызов для правильной аутентификации.

178
00:14:10,330 --> 00:14:12,820
Поэтому позвольте мне ввести текущую аутентификацию.

179
00:14:12,820 --> 00:14:17,670
Поэтому позвольте мне ввести admin и пароль в качестве пароля.

180
00:14:17,670 --> 00:14:23,650
И затем войдите в систему, и вы увидите, что теперь

181
00:14:23,650 --> 00:14:28,530
приложение Express позволит вам войти и получить доступ к значению по умолчанию,

182
00:14:28,530 --> 00:14:34,700
которое в данном случае является файлом Index.html из этой статической общей папки.

183
00:14:34,700 --> 00:14:39,590
Теперь то же самое, если вы пытаетесь получить доступ к localhost: diss

184
00:14:39,590 --> 00:14:43,260
без авторизации, то это не сработает.

185
00:14:43,260 --> 00:14:49,320
И я продемонстрирую это вам с помощью почтальона через минуту.

186
00:14:50,630 --> 00:14:56,011
Теперь, увидев, как работает аутентификация, давайте

187
00:14:56,011 --> 00:15:00,985
посмотрим, что произошло на консоли на нашем сайте сервера.

188
00:15:06,181 --> 00:15:11,141
Перейдя на консоль на нашем сайте сервера вы видите, что

189
00:15:11,141 --> 00:15:13,769
здесь распечатана целая куча информации, так что, как вы видели,

190
00:15:13,769 --> 00:15:17,030
мы выходили заголовки запросов здесь.

191
00:15:17,030 --> 00:15:21,040
Таким образом, это первый запрос, который пришел с заголовком запроса.

192
00:15:21,040 --> 00:15:26,860
И здесь вы видите, что в запросе нет заголовка авторизации.

193
00:15:26,860 --> 00:15:34,620
И поэтому ваш сервер отклонил это с 401 просьбой к нашему клиенту авторизоваться.

194
00:15:34,620 --> 00:15:40,240
Второй раз также, поскольку мы не ввели правильную авторизацию, которую

195
00:15:40,240 --> 00:15:41,916
сервер отклонил.

196
00:15:41,916 --> 00:15:48,390
Конечно, теперь вы заметили, что в заголовке, прямо там, авторизация

197
00:15:48,390 --> 00:15:52,820
действительно включена, и вы видите, как включена авторизация.

198
00:15:52,820 --> 00:15:56,650
Он говорит, что Basic разделен пробелом и

199
00:15:56,650 --> 00:16:02,980
разделен 64-битной кодированной строкой, которая содержит имя пользователя и пароль.

200
00:16:02,980 --> 00:16:06,080
И затем мы видим, что сервер

201
00:16:06,080 --> 00:16:09,540
отклонил это, потому что авторизация была неправильной в тот момент.

202
00:16:09,540 --> 00:16:14,452
Теперь позже мы ввели правильное имя пользователя и пароль.

203
00:16:14,452 --> 00:16:18,938
Поэтому прямо там, в третьем запросе, который пришел, мы набрали правильное имя пользователя и

204
00:16:18,938 --> 00:16:19,597
пароль.

205
00:16:19,597 --> 00:16:27,323
Вот почему вы видите, что заголовок запроса содержит авторизацию,

206
00:16:27,323 --> 00:16:34,180
и эта строка использует правильную кодировку имени пользователя и пароля.

207
00:16:34,180 --> 00:16:35,720
Откуда мне это знать?

208
00:16:35,720 --> 00:16:38,384
Ну, я проверил и знаю,

209
00:16:38,384 --> 00:16:42,337
что это базовая иностранная кодированная версия строки там.

210
00:16:42,337 --> 00:16:47,470
Мы также увидим, что от нашего почтальона имиджа или что.

211
00:16:48,740 --> 00:16:53,740
Теперь вы видите, что запрос был принят, и

212
00:16:53,740 --> 00:16:55,740
он вернул значение правильно.

213
00:16:57,210 --> 00:17:05,150
И тогда, конечно, впоследствии, клиент запросил иконку, иконку.

214
00:17:05,150 --> 00:17:11,590
И так как у нас нет фавикона на стороне сервера, он отвечает 404 и,

215
00:17:11,590 --> 00:17:15,560
конечно, ваш любимый значок не отображается в адресной строке.

216
00:17:15,560 --> 00:17:18,640
Так что это нормально, но обратите внимание, в частности.

217
00:17:18,640 --> 00:17:21,430
Те, кого конкретно запросили, пришли,

218
00:17:21,430 --> 00:17:25,030
где был включен правильный заголовок авторизации.

219
00:17:25,030 --> 00:17:28,490
И так, в то время это было успешным.

220
00:17:28,490 --> 00:17:33,680
Давайте попробуем посмотреть, как мы можем сделать то же самое с почтой.

221
00:17:33,680 --> 00:17:38,480
Итак, здесь у меня открыто окно почтовой карты.

222
00:17:38,480 --> 00:17:42,250
И поэтому в моем окне Postman я собираюсь ввести

223
00:17:44,160 --> 00:17:50,670
get to localhost: на мой сервер, а затем отправить запрос, и

224
00:17:50,670 --> 00:17:57,260
вы сразу заметите, что он бросает вызов 401 несанкционированным.

225
00:17:57,260 --> 00:18:01,890
Таким образом, это ответное сообщение со стороны сервера,

226
00:18:01,890 --> 00:18:06,580
поэтому обратите внимание, что оно сохраняет, 401 Несанкционированный.

227
00:18:06,580 --> 00:18:12,550
И он говорит, что ответ должен включать поле заголовка WWW-Authenticate.

228
00:18:12,550 --> 00:18:18,153
И это вызовет клиента, чтобы отправить информацию авторизации,

229
00:18:18,153 --> 00:18:20,083
имя пользователя и пароль.

230
00:18:20,083 --> 00:18:25,833
Таким образом, просматривая это, мы видим, что предложение, которое вы не аутентифицированы, а

231
00:18:25,833 --> 00:18:27,940
затем код 401 здесь.

232
00:18:27,940 --> 00:18:31,341
Теперь глядя на заголовки ответного сообщения.

233
00:18:31,341 --> 00:18:36,781
Когда вы смотрите на заголовок ответного сообщения, вы можете увидеть, в частности,

234
00:18:36,781 --> 00:18:41,718
этот заголовок включен там, который является www.authenticatebasic.

235
00:18:41,718 --> 00:18:46,522
Теперь, как мы делаем аутентификацию или авторизацию в почте?

236
00:18:46,522 --> 00:18:51,090
Вот где они будут идти к этому прямо под этим окном здесь,

237
00:18:51,090 --> 00:18:53,952
вы увидите эту авторизацию здесь.

238
00:18:53,952 --> 00:18:58,050
И когда вы нажимаете на авторизацию, прямо сейчас он говорит НЕТ AUTH..

239
00:18:58,050 --> 00:19:01,240
Давайте используем обычную аутентификацию.

240
00:19:01,240 --> 00:19:04,820
Поэтому, когда я говорю базовую аутентификацию, он

241
00:19:04,820 --> 00:19:08,530
даст мне эти два поля здесь, где я могу ввести имя пользователя и пароль.

242
00:19:08,530 --> 00:19:11,160
Позвольте мне ввести правильное имя пользователя и пароль.

243
00:19:11,160 --> 00:19:19,170
Так что я скажу имя пользователя admin, пароль - пароль P-A-S-S-W-O-R-D.

244
00:19:19,170 --> 00:19:22,650
Так что вы видите, это именно тот пароль, который у нас есть.

245
00:19:22,650 --> 00:19:26,800
Поэтому, как только вы введете имя пользователя и пароль, они скажут запрос на обновление.

246
00:19:26,800 --> 00:19:30,980
Поэтому, когда я нажимаю на запрос обновления, вы увидите, что сразу в заголовке

247
00:19:32,130 --> 00:19:35,340
вы увидите, что

248
00:19:35,340 --> 00:19:40,770
здесь есть это поле, которое было добавлено здесь, говоря авторизация.

249
00:19:40,770 --> 00:19:45,080
И тогда, вы увидите, что эта вторая часть, ценность, которую вы можете принять.

250
00:19:45,080 --> 00:19:49,480
Он говорит basic и пробел, а затем эта конкретная строка.

251
00:19:49,480 --> 00:19:55,040
Поэтому, если вы проверите эту конкретную строку здесь, это будет точная

252
00:19:55,040 --> 00:20:01,219
строка, которую вы увидите в заголовке сообщения об успешном запросе.

253
00:20:01,219 --> 00:20:03,544
Обратите внимание, что говорит эта строка.

254
00:20:03,544 --> 00:20:09,309
Он говорит YWR что-то, а затем заканчивается Q равным.

255
00:20:09,309 --> 00:20:14,285
Перейдя к нашему терминалу, вы видите, что успешный запрос

256
00:20:14,285 --> 00:20:18,276
фактически содержал именно эту строку здесь.

257
00:20:18,276 --> 00:20:24,250
Он говорит YWR, а затем заканчивается Q равным там.

258
00:20:24,250 --> 00:20:28,400
Таким образом, введя информацию в авторизацию, а затем нажав

259
00:20:28,400 --> 00:20:34,240
на запрос обновления, эта информация добавляется в заголовки авторизации.

260
00:20:34,240 --> 00:20:36,410
Итак, теперь это запрос get,

261
00:20:37,410 --> 00:20:42,020
мне не нужен тип содержимого там, потому что он не содержит никакого тела.

262
00:20:42,020 --> 00:20:46,106
Итак, теперь, когда авторизация была включена,

263
00:20:46,106 --> 00:20:51,263
давайте отправим запрос сейчас правильно, а затем вы увидите, что

264
00:20:51,263 --> 00:20:57,990
ответ, поступающий с сайта сервера, будет содержать файл индекса, как вы ожидаете.

265
00:20:57,990 --> 00:21:02,524
Теперь позвольте мне удалить разрешение.

266
00:21:02,524 --> 00:21:07,351
Теперь это причина, по которой Postmap помогает мне намного

267
00:21:07,351 --> 00:21:11,662
легче проверить эти вещи, я могу удалить авторизацию, а затем отправить запрос.

268
00:21:11,662 --> 00:21:14,947
И он все равно будет содержать эту авторизацию,

269
00:21:14,947 --> 00:21:18,570
потому что я ввел это в поле авторизации.

270
00:21:18,570 --> 00:21:23,380
Поэтому позвольте мне очистить разрешение оттуда, а затем отправить запрос здесь.

271
00:21:23,380 --> 00:21:26,000
И тогда он говорит, что вы не аутентифицированы.

272
00:21:26,000 --> 00:21:30,230
Аналогично, если я отправлю запрос на блюда.

273
00:21:30,230 --> 00:21:32,000
Раньше это работало нормально, но

274
00:21:32,000 --> 00:21:37,750
теперь вы видите, что мы не можем получить доступ к конечной точке /dishes.

275
00:21:37,750 --> 00:21:41,400
И то же самое со всеми остальными конечными точками APR тоже.

276
00:21:41,400 --> 00:21:47,360
Вам не будет разрешен доступ, так как промежуточное программное обеспечение авторизации появляется до того, как

277
00:21:47,360 --> 00:21:50,600
вы получите доступ к любой из этих конечных точек

278
00:21:50,600 --> 00:21:56,070
в списке промежуточного программного обеспечения для вашего экспресс-сервера.

279
00:21:56,070 --> 00:21:59,945
Так что теперь, если я включу авторизацию,

280
00:22:04,774 --> 00:22:10,277
а затем обновлю свой запрос, а затем отправьте запрос на сервер,

281
00:22:10,277 --> 00:22:12,845
тогда сервер ответит.

282
00:22:12,845 --> 00:22:17,412
Теперь, очевидно, в этот момент моя база данных пуста, поэтому

283
00:22:17,412 --> 00:22:20,752
она отвечает с пустым массивом.

284
00:22:20,752 --> 00:22:24,109
Но теперь запрос прошел успешно, и

285
00:22:24,109 --> 00:22:28,004
я могу получить информацию с серверного носка.

286
00:22:28,004 --> 00:22:32,186
Таким образом, это быстрая демонстрация базовой

287
00:22:32,186 --> 00:22:37,724
авторизации в нашем приложении для экспресс-отдыха APR.

288
00:22:37,724 --> 00:22:40,730
С этим мы завершаем это упражнение.

289
00:22:40,730 --> 00:22:42,236
Это хорошее время для

290
00:22:42,236 --> 00:22:46,846
вас сделать комментарий с сообщением базовой аутентификации.

291
00:22:46,846 --> 00:22:50,116
[ МУЗЫКА]