1
00:00:00,000 --> 00:00:05,021
[MÚSICA]

2
00:00:05,021 --> 00:00:09,395
Agora que entendemos a necessidade de autenticação básica em nosso

3
00:00:09,395 --> 00:00:14,383
aplicativo Express, vamos prosseguir para o exercício em que adicionaremos

4
00:00:14,383 --> 00:00:19,372
a autenticação básica ao servidor ConFusion que temos vindo a desenvolver até agora,

5
00:00:19,372 --> 00:00:21,311
o servidor de API REST Express.

6
00:00:22,470 --> 00:00:24,050
Ao longo do caminho,

7
00:00:24,050 --> 00:00:29,170
aprenderemos como podemos usar a autenticação básica dentro do nosso servidor.

8
00:00:29,170 --> 00:00:34,811
E, em exercícios subsequentes, expandiremos essa ideia ainda mais

9
00:00:34,811 --> 00:00:41,107
para adicionar um serviço de autenticação completo para o nosso servidor Express REST API.

10
00:00:42,965 --> 00:00:46,576
Neste exercício, vamos para o servidor ConFusion,

11
00:00:46,576 --> 00:00:49,290
o que temos trabalhado até agora.

12
00:00:49,290 --> 00:00:54,333
Então você deve ter completado a implementação da segunda tarefa até

13
00:00:54,333 --> 00:00:59,553
agora, onde você teria desenvolvido as promoções e o modelo de líderes.

14
00:00:59,553 --> 00:01:04,289
E também atualizou as rotas para o roteador líder e

15
00:01:04,289 --> 00:01:09,470
o roteador promocional em seu aplicativo de servidor ConFusion.

16
00:01:09,470 --> 00:01:12,960
Então, dentro deste código, vamos para app.js e,

17
00:01:12,960 --> 00:01:17,392
em seguida, adicionar a autenticação básica em app.js.

18
00:01:17,392 --> 00:01:22,290
Então, em app.js como temos entendido sobre a forma como

19
00:01:22,290 --> 00:01:26,970
o meio caminho ele funciona na aplicação Express.

20
00:01:26,970 --> 00:01:31,010
Então começamos aqui no app.js

21
00:01:31,010 --> 00:01:36,640
importando todos os vários módulos de nó aqui.

22
00:01:36,640 --> 00:01:42,650
E depois disso, começamos aqui primeiro dizendo app.use logger dev.

23
00:01:42,650 --> 00:01:46,410
Então, tudo isso vai ser aplicado à nossa aplicação.

24
00:01:46,410 --> 00:01:51,978
E então, esta chamada aqui app.use (express.static)

25
00:01:51,978 --> 00:01:58,128
é o que nos permite servir dados estáticos da pasta pública.

26
00:01:58,128 --> 00:02:03,068
Agora, eles querem fazer a autenticação antes de

27
00:02:03,068 --> 00:02:08,870
permitirmos que o cliente seja capaz de buscar dados do nosso servidor.

28
00:02:08,870 --> 00:02:14,570
Então, ali mesmo, vamos entrar e adicionar um emblema de autenticação.

29
00:02:14,570 --> 00:02:18,090
Então você percebe que tudo o que vem depois disso,

30
00:02:18,090 --> 00:02:22,970
todo o middleware que é montado e vem depois deste ponto em particular.

31
00:02:22,970 --> 00:02:27,070
Teremos que passar pela fase de autorização antes

32
00:02:27,070 --> 00:02:29,550
que o middleware possa ser acessado.

33
00:02:29,550 --> 00:02:34,709
Então, bem ali, eu vou adicionar em app.use e, em

34
00:02:34,709 --> 00:02:41,600
seguida, adicionar uma função chamada auth, que eu vou implementar agora.

35
00:02:41,600 --> 00:02:46,180
Então, fazendo isso, o que estamos especificando é o padrão,

36
00:02:46,180 --> 00:02:50,200
o cliente pode acessar qualquer um desses recursos,

37
00:02:50,200 --> 00:02:56,070
seja seus recursos estáticos na pasta pública, ou qualquer um dos recursos

38
00:02:56,070 --> 00:03:00,140
, pratos, promoções ou líderes, ou até mesmo usuários como veremos mais tarde.

39
00:03:02,150 --> 00:03:05,700
O cliente tem que ser autorizado primeiro.

40
00:03:05,700 --> 00:03:08,220
Então, bem ali, vamos adicionar no auth.

41
00:03:08,220 --> 00:03:15,960
Então deixe-me adicionar na função aqui chamada auth bem ali.

42
00:03:15,960 --> 00:03:19,849
E, em seguida, usá-lo imediatamente dentro do nosso

43
00:03:19,849 --> 00:03:23,147
aplicativo Express como o middleware lá.

44
00:03:23,147 --> 00:03:27,826
Então esta função, auth vai levar em três parâmetros,

45
00:03:27,826 --> 00:03:33,914
o objeto request, o objeto de recurso, e o próximo objeto, sim.

46
00:03:37,015 --> 00:03:41,830
Então, dentro desta função deixe-me primeiro,

47
00:03:41,830 --> 00:03:48,605
apenas para saber o que está contido no cabeçalho do pedido.

48
00:03:50,265 --> 00:03:56,175
Deixe-me apenas registrar os cabeçalhos de solicitação ali apenas para demonstrar a você,

49
00:03:56,175 --> 00:03:59,970
porque uma vez que você adicionar o cabeçalho de autorização,

50
00:03:59,970 --> 00:04:03,390
então nós queremos ser capazes de vê-lo bem ali.

51
00:04:03,390 --> 00:04:07,390
Então vamos primeiro fazer um log de console,

52
00:04:07,390 --> 00:04:10,142
apenas para ver o que está vindo do lado do cliente.

53
00:04:10,142 --> 00:04:14,379
Em seguida, deixe-me obter o

54
00:04:14,379 --> 00:04:20,401
cabeçalho de autorização dizendo

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

56
00:04:26,900 --> 00:04:31,120
Então, este é o lugar onde vamos obter o cabeçalho de autorização que é adicionado no

57
00:04:31,120 --> 00:04:33,320
lado do nosso cliente.

58
00:04:33,320 --> 00:04:37,830
Se não existe, obviamente, então temos de agir em conformidade.

59
00:04:37,830 --> 00:04:44,493
Então, se, O AuthHeader é nulo, o

60
00:04:44,493 --> 00:04:48,992
que significa que não há nenhum cabeçalho de autenticação em nossa

61
00:04:48,992 --> 00:04:53,653
solicitação de entrada, então, obviamente, nosso cliente não incluiu o nome de usuário e

62
00:04:53,653 --> 00:04:56,650
senha no cabeçalho de autenticação.

63
00:04:56,650 --> 00:05:01,230
Por isso, precisamos desafiar o nosso cliente a fornecer esta informação.

64
00:05:01,230 --> 00:05:06,338
Então, se o cabeçalho de autorização é nulo, então vamos ver,

65
00:05:06,338 --> 00:05:12,130
var err novo erro,

66
00:05:12,130 --> 00:05:19,140
então não vamos permitir que a nossa solicitação de cliente para ir além deste ponto.

67
00:05:19,140 --> 00:05:23,803
Então vamos dizer, você não está autenticado,

68
00:05:23,803 --> 00:05:28,222
e então vamos desafiar o cliente lá.

69
00:05:28,222 --> 00:05:33,196
Então vamos dizer Res.SetHeader, então

70
00:05:33,196 --> 00:05:38,684
vamos definir o cabeçalho na

71
00:05:38,684 --> 00:05:46,061
mensagem de resposta dizendo WWW-Authenticate,

72
00:05:46,061 --> 00:05:50,520
e da palestra anterior,

73
00:05:50,520 --> 00:05:55,493
você verá por que estamos

74
00:05:55,493 --> 00:06:00,120
colocando isso no cabeçalho de resposta.

75
00:06:00,120 --> 00:06:04,480
E então vamos dizer err status.401.

76
00:06:04,480 --> 00:06:07,710
401 é acesso não autorizado.

77
00:06:07,710 --> 00:06:12,740
E, em seguida, vamos simplesmente gerar a nossa chamada seguinte com o cabeçalho.

78
00:06:12,740 --> 00:06:17,960
Então isso significa que ele vai pular sobre tudo isso e ir para o manipulador de erros,

79
00:06:17,960 --> 00:06:20,710
onde o manipulador de erros irá construir a mensagem de resposta e

80
00:06:20,710 --> 00:06:25,880
enviar de volta para o meu cliente lá.

81
00:06:25,880 --> 00:06:31,290
Então, se o cliente não incluiu o cabeçalho de autenticação ou

82
00:06:31,290 --> 00:06:34,690
o cabeçalho de autorização, então eu vou desafiar o cliente a

83
00:06:34,690 --> 00:06:38,980
pedir-lhe para me fornecer o cabeçalho de autorização lá.

84
00:06:38,980 --> 00:06:45,570
Então, se não, então eu sei que o cabeçalho de autorização existe.

85
00:06:45,570 --> 00:06:51,553
Então, além deste ponto, vamos dizer var auth,

86
00:06:51,553 --> 00:06:55,760
e eu vou extrair o cabeçalho de autorização.

87
00:06:57,460 --> 00:07:02,880
E, em seguida, uma vez que o AuthHeader é uma string,

88
00:07:02,880 --> 00:07:07,650
eu vou dividir

89
00:07:07,650 --> 00:07:12,690
esse valor e este cabeçalho de autorização, eu vou dividir o valor.

90
00:07:12,690 --> 00:07:17,350
Então, como você pode ver, o buffer permite dividir o valor e

91
00:07:17,350 --> 00:07:23,805
, em seguida, nós também dar a codificação do buffer que é codificação Base64 aqui.

92
00:07:23,805 --> 00:07:28,790
Então vamos converter isso em um buffer dividindo isso em duas partes,

93
00:07:30,250 --> 00:07:32,390
usando o espaço como a parte de divisão.

94
00:07:32,390 --> 00:07:37,614
Então, quando você olhou para o cabeçalho de autorização, você viu por que o espaço

95
00:07:37,614 --> 00:07:42,656
separa o valor dizendo básico, e então ele lhe dá o resto da

96
00:07:42,656 --> 00:07:48,172
string codificada Base64 que contém o nome de usuário e senha.

97
00:07:48,172 --> 00:07:53,510
E a partir disso, queremos extrair o nome de usuário e a senha.

98
00:07:53,510 --> 00:07:59,970
Então nós vamos dividir esse valor, e então nós só vamos considerar Então

99
00:07:59,970 --> 00:08:07,510
quando você dividir a string usando isso, ele vai dividir isso em uma matriz.

100
00:08:07,510 --> 00:08:11,780
E o primeiro elemento da matriz contém Básico.

101
00:08:11,780 --> 00:08:17,370
O segundo elemento da matriz é onde esta string codificada base64 existe.

102
00:08:17,370 --> 00:08:21,280
Então é por isso que estamos apenas olhando para o segundo elemento desta matriz.

103
00:08:21,280 --> 00:08:27,800
Portanto, esta divisão fará com que a string se divida em uma matriz de dois itens.

104
00:08:27,800 --> 00:08:32,944
Então nós poderíamos, nós estamos pegando a string codificada base64 a partir disso.

105
00:08:32,944 --> 00:08:39,820
E então nós entramos neste Buffer, e então nós vamos converter isso para string.

106
00:08:39,820 --> 00:08:45,830
E, novamente, dividir a string mais uma vez porque a string

107
00:08:45,830 --> 00:08:51,200
em si conterá o nome de usuário e a senha separados por dois pontos.

108
00:08:51,200 --> 00:08:56,040
Então, eu vou dividi-lo usando os dois pontos como

109
00:08:56,040 --> 00:09:01,350
o ponto de divisão para esta string aqui.

110
00:09:01,350 --> 00:09:05,727
Então note que eu estou carregando duas divisões aqui, uma no espaço e

111
00:09:05,727 --> 00:09:11,110
a segunda, usando os dois pontos que separa o nome de usuário e senha.

112
00:09:11,110 --> 00:09:18,570
Assim, no final desta variável auth deve ser uma matriz contendo dois itens,

113
00:09:18,570 --> 00:09:24,460
o nome de usuário e a senha que é extraída da string base64.

114
00:09:24,460 --> 00:09:31,744
Então, neste ponto, o que eu vou fazer é,

115
00:09:31,744 --> 00:09:35,908
apenas para sua clareza,

116
00:09:35,908 --> 00:09:40,695
eu vou simplesmente dizer var

117
00:09:40,695 --> 00:09:46,733
username = auth [0] e, em seguida,

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

119
00:09:51,970 --> 00:09:57,760
Então agora eu extraí o nome de usuário e senha do meu cabeçalho de autorização.

120
00:09:57,760 --> 00:10:02,210
Agora vou usar um valor padrão para o nome de usuário e

121
00:10:02,210 --> 00:10:06,030
senha nesta implementação.

122
00:10:06,030 --> 00:10:10,950
Mais tarde, veremos que podemos permitir que os usuários criem seu próprio nome de usuário e

123
00:10:10,950 --> 00:10:11,530
senha.

124
00:10:11,530 --> 00:10:14,304
Mas por enquanto, vou usar o nome de

125
00:10:17,358 --> 00:10:20,925
usuário codificado e a senha como administrador.

126
00:10:23,615 --> 00:10:30,705
E a senha será apenas senha.

127
00:10:30,705 --> 00:10:32,778
Para este exercício básico,

128
00:10:32,778 --> 00:10:37,970
vamos usar isso como nome de usuário e senha padrão.

129
00:10:39,468 --> 00:10:47,520
Se o nome de usuário que obtenho for admin e a senha for a senha da string.

130
00:10:47,520 --> 00:10:52,490
Então eu estou tudo bem para permitir que o

131
00:10:52,490 --> 00:10:56,950
pedido do cliente será passado através do próximo middleware assim, Eu vou dizer seguinte.

132
00:10:56,950 --> 00:11:01,130
Então, quando eu digo a seguir, isso significa que a partir da autenticação

133
00:11:01,130 --> 00:11:05,840
sua solicitação será passada no próximo conjunto de middleware aqui e

134
00:11:05,840 --> 00:11:10,660
, em seguida, Express tentará corresponder a solicitação específica para eram

135
00:11:11,830 --> 00:11:15,420
middleware específico que servirá essa solicitação.

136
00:11:15,420 --> 00:11:19,440
Então é aqui que vamos permitir que ele passe.

137
00:11:19,440 --> 00:11:24,000
Caso contrário, isso significa que o nome de usuário e

138
00:11:24,000 --> 00:11:29,260
senha não corresponderam à solicitação,

139
00:11:29,260 --> 00:11:33,010
ao nome de usuário e senha padrão que estou configurando.

140
00:11:33,010 --> 00:11:34,930
Então isso significa que há um erro.

141
00:11:34,930 --> 00:11:39,310
Então, neste caso, eu vou novamente causar um erro aqui,

142
00:11:39,310 --> 00:11:43,280
então vamos dizer outra coisa, Erro.

143
00:11:43,280 --> 00:11:49,540
Então vamos novamente gerar um erro e,

144
00:11:49,540 --> 00:11:55,430
em seguida, desafiar o cliente a enviar as informações de autorização corretas, o nome de usuário e senha aqui.

145
00:11:55,430 --> 00:11:56,730
Então é isso.

146
00:11:56,730 --> 00:12:01,100
Este pouco de middleware que acabamos de implementar aqui,

147
00:12:01,100 --> 00:12:04,010
middleware de autorização que acabamos de implementar aqui.

148
00:12:04,010 --> 00:12:08,840
É suficiente o suficiente para implementar a autenticação básica dentro do aplicativo fora.

149
00:12:08,840 --> 00:12:10,300
Então, tendo feito essas alterações,

150
00:12:10,300 --> 00:12:15,210
vamos salvar as alterações e, em seguida, veremos como isso realmente funciona na prática.

151
00:12:15,210 --> 00:12:16,770
Vamos salvar as alterações.

152
00:12:16,770 --> 00:12:20,600
E então vamos começar o nosso servidor.

153
00:12:20,600 --> 00:12:22,980
Agora, indo para o terminal, é claro,

154
00:12:22,980 --> 00:12:26,916
certifique-se de que você está MongoDB servidor está funcionando.

155
00:12:26,916 --> 00:12:34,390
Caso contrário, o servidor Express não inicializará.

156
00:12:34,390 --> 00:12:38,350
Então eu tenho o tipo de prompt npm start e,

157
00:12:38,350 --> 00:12:41,810
em seguida, seu servidor Express estará ativo e em execução.

158
00:12:41,810 --> 00:12:46,760
Agora, abra na janela anônima em seu navegador.

159
00:12:46,760 --> 00:12:51,280
A razão pela qual eu estou pedindo que você use uma janela anônima é que quando você digitar

160
00:12:51,280 --> 00:12:55,820
o nome de usuário e senha, em seguida, ele será armazenado em cache pelo seu navegador.

161
00:12:55,820 --> 00:12:59,490
Então, se você usar uma janela anônima, se você reiniciar o navegador...

162
00:12:59,490 --> 00:13:01,710
Em seguida, o cache será limpo automaticamente,

163
00:13:01,710 --> 00:13:04,300
então essa informação não será lembrada.

164
00:13:04,300 --> 00:13:07,500
Agora, o que acontece se você digitar o nome de usuário e senha, ele será armazenado em cache,

165
00:13:07,500 --> 00:13:11,570
então, posteriormente, quando você tentar acessar o servidor, as informações em cache

166
00:13:11,570 --> 00:13:15,840
serão enviadas automaticamente na solicitação que você gerar.

167
00:13:15,840 --> 00:13:18,710
É por isso que é importante

168
00:13:18,710 --> 00:13:23,400
usar uma janela anônima apenas para mostrar que a autenticação básica funciona.

169
00:13:23,400 --> 00:13:31,140
Então, na barra de endereço do seu navegador vamos digitar localhost:3000, e ver o que acontece.

170
00:13:31,140 --> 00:13:36,920
Então, quando você digita localhost:3000 você vê imediatamente que seu navegador aparece

171
00:13:36,920 --> 00:13:43,290
esta caixa de diálogo no topo pedindo que você digite o nome de usuário e a senha.

172
00:13:43,290 --> 00:13:50,240
Se você não digitar, deixe-me digitar um nome de usuário aleatório e ver o que acontece.

173
00:13:50,240 --> 00:13:54,000
Então, se eu digitar um nome de usuário e senha aleatórios,

174
00:13:54,000 --> 00:13:57,260
então você verá que a solicitação é rejeitada.

175
00:13:57,260 --> 00:14:00,890
Não tenho permissão para acessar o servidor e,

176
00:14:00,890 --> 00:14:06,100
em seguida, se o servidor vai dizer novamente que o cliente não está autorizado.

177
00:14:06,100 --> 00:14:10,330
E assim ele voltará e nos desafiará novamente para a autenticação correta.

178
00:14:10,330 --> 00:14:12,820
Então deixe-me digitar a autenticação atual.

179
00:14:12,820 --> 00:14:17,670
Então deixe-me digitar admin e a senha como senha.

180
00:14:17,670 --> 00:14:23,650
E, em seguida, faça login, e você verá que agora o

181
00:14:23,650 --> 00:14:28,530
aplicativo Express permitirá que você entre e acesse o valor padrão,

182
00:14:28,530 --> 00:14:34,700
que neste caso é o arquivo Index.html dessa pasta pública estática.

183
00:14:34,700 --> 00:14:39,590
Agora, a mesma coisa se você está tentando acessar localhost: pratos

184
00:14:39,590 --> 00:14:43,260
sem a autorização, então não vai funcionar.

185
00:14:43,260 --> 00:14:49,320
E vou demonstrar isso para você usando o carteiro em um minuto.

186
00:14:50,630 --> 00:14:56,011
Agora, tendo visto como a autenticação funciona, vamos

187
00:14:56,011 --> 00:15:00,985
ver o que aconteceu no console em nosso site do servidor.

188
00:15:06,181 --> 00:15:11,141
Indo para o console em nosso site do servidor, você vê que um monte de informações

189
00:15:11,141 --> 00:15:13,769
foram impressas aqui, então, como você viu,

190
00:15:13,769 --> 00:15:17,030
nós estávamos desconectando os cabeçalhos de solicitação aqui.

191
00:15:17,030 --> 00:15:21,040
Então, esta é a primeira solicitação que veio com o cabeçalho da solicitação.

192
00:15:21,040 --> 00:15:26,860
E aqui você vê que não há cabeçalho de autorização na solicitação.

193
00:15:26,860 --> 00:15:34,620
E assim o seu servidor rejeitou isso com um 401 pedindo ao nosso cliente para se autorizar.

194
00:15:34,620 --> 00:15:40,240
A segunda vez também desde que não digitamos a autorização correta que o

195
00:15:40,240 --> 00:15:41,916
servidor rejeitou.

196
00:15:41,916 --> 00:15:48,390
É claro que agora você percebe que no cabeçalho, bem ali, a autorização é

197
00:15:48,390 --> 00:15:52,820
realmente incluída lá, e você vê a forma como a autorização está incluída.

198
00:15:52,820 --> 00:15:56,650
Ele diz Básico separado por um espaço, e

199
00:15:56,650 --> 00:16:02,980
separado pela string codificada de 64 bits que contém o nome de usuário e senha.

200
00:16:02,980 --> 00:16:06,080
E então, vemos que o servidor

201
00:16:06,080 --> 00:16:09,540
rejeitou isso porque a autorização estava errada naquele momento.

202
00:16:09,540 --> 00:16:14,452
Agora, mais tarde, digitamos o nome de usuário e a senha corretos.

203
00:16:14,452 --> 00:16:18,938
Então, na terceira solicitação que chegou, digitamos o nome de usuário e a

204
00:16:18,938 --> 00:16:19,597
senha corretos.

205
00:16:19,597 --> 00:16:27,323
Então, é por isso que você vê que o cabeçalho da solicitação contém a autorização,

206
00:16:27,323 --> 00:16:34,180
e essa string usa a codificação correta do nome de usuário e senha.

207
00:16:34,180 --> 00:16:35,720
Como é que eu sei disso?

208
00:16:35,720 --> 00:16:38,384
Bem, eu cruzei e sei que,

209
00:16:38,384 --> 00:16:42,337
essa é a versão básica codificada estrangeira da string lá.

210
00:16:42,337 --> 00:16:47,470
Nós também veremos isso da nossa imagem de carteiro ou o quê.

211
00:16:48,740 --> 00:16:53,740
Agora, então, você vê que a solicitação foi aceita e

212
00:16:53,740 --> 00:16:55,740
retornou o valor corretamente.

213
00:16:57,210 --> 00:17:05,150
E então, claro, posteriormente, o cliente solicitou um favicon, o ícone.

214
00:17:05,150 --> 00:17:11,590
E como não temos o favicon no lado do servidor, ele responde com o 404 e,

215
00:17:11,590 --> 00:17:15,560
claro, seu ícone favorito não é exibido na barra de endereços.

216
00:17:15,560 --> 00:17:18,640
Então, tudo bem, mas note em particular.

217
00:17:18,640 --> 00:17:21,430
Os pedidos específicos entraram,

218
00:17:21,430 --> 00:17:25,030
onde o cabeçalho de autorização correto foi incluído.

219
00:17:25,030 --> 00:17:28,490
E assim, foi bem sucedido na época.

220
00:17:28,490 --> 00:17:33,680
Vamos tentar e ver como podemos fazer a mesma coisa com postmap.

221
00:17:33,680 --> 00:17:38,480
Aqui tenho a janela do mapa postal aberta.

222
00:17:38,480 --> 00:17:42,250
E assim, na minha janela Postman eu vou digitar em

223
00:17:44,160 --> 00:17:50,670
um get to localhost: para o meu servidor, e, em seguida, enviar o pedido e

224
00:17:50,670 --> 00:17:57,260
você vai notar imediatamente que ele desafia dizendo 401 não autorizado.

225
00:17:57,260 --> 00:18:01,890
Então esta é a mensagem de resposta do lado do servidor,

226
00:18:01,890 --> 00:18:06,580
então observe o que ele salva, 401 Não autorizado.

227
00:18:06,580 --> 00:18:12,550
E diz que a resposta deve incluir um campo de cabeçalho WWW-Authenticate.

228
00:18:12,550 --> 00:18:18,153
E isso desafiará o cliente a enviar as informações de autorização,

229
00:18:18,153 --> 00:18:20,083
o nome de usuário e a senha.

230
00:18:20,083 --> 00:18:25,833
Então, visualizando isso, vemos que a frase que você não está autenticado e

231
00:18:25,833 --> 00:18:27,940
, em seguida, o código 401 aqui.

232
00:18:27,940 --> 00:18:31,341
Agora olhando para os cabeçalhos da mensagem de resposta.

233
00:18:31,341 --> 00:18:36,781
Quando você olha para o cabeçalho da mensagem de resposta, você pode ver em particular

234
00:18:36,781 --> 00:18:41,718
este cabeçalho incluído lá, que é www.authenticatebasic.

235
00:18:41,718 --> 00:18:46,522
Agora, como fazemos autenticação ou autorização no post?

236
00:18:46,522 --> 00:18:51,090
Então é aqui que eles iriam para isto logo abaixo desta caixa aqui,

237
00:18:51,090 --> 00:18:53,952
você verá esta autorização aqui.

238
00:18:53,952 --> 00:18:58,050
E quando você clica na autorização, agora ele diz NÃO AUTH..

239
00:18:58,050 --> 00:19:01,240
Vamos usar a autenticação básica.

240
00:19:01,240 --> 00:19:04,820
Então, quando eu digo autenticação básica, ele vai

241
00:19:04,820 --> 00:19:08,530
me dar esses dois campos aqui onde eu posso digitar o nome de usuário e senha.

242
00:19:08,530 --> 00:19:11,160
Deixe-me digitar o nome de usuário e senha corretos.

243
00:19:11,160 --> 00:19:19,170
Então eu vou dizer nome de usuário admin, senha é senha P-A-S-S-W-O-R-D.

244
00:19:19,170 --> 00:19:22,650
Então você pode ver que, essa é exatamente a senha que temos aqui.

245
00:19:22,650 --> 00:19:26,800
Assim que você digitar o nome de usuário e a senha, eles dirão Solicitação de Atualização.

246
00:19:26,800 --> 00:19:30,980
Então, quando eu clicar em Atualizar solicitação, você veria que imediatamente no cabeçalho,

247
00:19:32,130 --> 00:19:35,340
você verá que

248
00:19:35,340 --> 00:19:40,770
há este campo aqui que foi adicionado aqui dizendo autorização.

249
00:19:40,770 --> 00:19:45,080
E então, você verá o que esta segunda parte, o valor que você pode tomar.

250
00:19:45,080 --> 00:19:49,480
Ele diz básico e um espaço, e então esta cadeia particular.

251
00:19:49,480 --> 00:19:55,040
Então, se você marcar esta string particular aqui, esta será a

252
00:19:55,040 --> 00:20:01,219
string exata que você verá no cabeçalho da mensagem de solicitação bem-sucedida.

253
00:20:01,219 --> 00:20:03,544
Observe o que esta string diz.

254
00:20:03,544 --> 00:20:09,309
Diz YWR alguma coisa, e depois termina com um Q igual a.

255
00:20:09,309 --> 00:20:14,285
Indo para o nosso terminal, você vê que a solicitação bem-sucedida

256
00:20:14,285 --> 00:20:18,276
realmente continha exatamente essa string aqui.

257
00:20:18,276 --> 00:20:24,250
Diz YWR e, em seguida, terminando com Q igual a lá.

258
00:20:24,250 --> 00:20:28,400
Então, digitando as informações na autorização e clicando

259
00:20:28,400 --> 00:20:34,240
na solicitação de atualização, essas informações são adicionadas aos cabeçalhos de autorização.

260
00:20:34,240 --> 00:20:36,410
Então agora este é um pedido get,

261
00:20:37,410 --> 00:20:42,020
eu não preciso do tipo de conteúdo lá porque ele não contém nenhum corpo.

262
00:20:42,020 --> 00:20:46,106
Então, agora que a autorização foi incluída,

263
00:20:46,106 --> 00:20:51,263
vamos enviar a solicitação agora corretamente e,

264
00:20:51,263 --> 00:20:57,990
em seguida, você verá que a resposta vinda do site do servidor irá conter o arquivo de índice como você espera.

265
00:20:57,990 --> 00:21:02,524
Agora, deixe-me apagar a autorização.

266
00:21:02,524 --> 00:21:07,351
Agora esta é a razão pela qual Postmap me ajuda a verificar essas coisas muito mais

267
00:21:07,351 --> 00:21:11,662
facilmente, eu posso excluir a autorização e, em seguida, enviar o pedido.

268
00:21:11,662 --> 00:21:14,947
E ainda conterá essa autorização,

269
00:21:14,947 --> 00:21:18,570
porque digitei isso no campo de autorização.

270
00:21:18,570 --> 00:21:23,380
Então deixe-me limpar a autorização a partir daí, e então enviar o pedido aqui.

271
00:21:23,380 --> 00:21:26,000
E aí diz que você não está autenticado.

272
00:21:26,000 --> 00:21:30,230
Da mesma forma, se eu enviar o pedido para os pratos.

273
00:21:30,230 --> 00:21:32,000
Anteriormente, isso funcionava bem, mas

274
00:21:32,000 --> 00:21:37,750
agora você vê que estamos impedidos de acessar o endpoint /meals também.

275
00:21:37,750 --> 00:21:41,400
E a mesma coisa com todos os outros endpoints APR resto também.

276
00:21:41,400 --> 00:21:47,360
Você não terá permissão para acessar, porque o middleware de autorização vem antes de

277
00:21:47,360 --> 00:21:50,600
você obter acesso a qualquer um desses endpoints

278
00:21:50,600 --> 00:21:56,070
na lista de middleware para seu servidor expresso.

279
00:21:56,070 --> 00:21:59,945
Então, agora, se eu incluir a autorização,

280
00:22:04,774 --> 00:22:10,277
e depois atualizar minha solicitação e enviar a solicitação para o servidor,

281
00:22:10,277 --> 00:22:12,845
então o servidor responderá.

282
00:22:12,845 --> 00:22:17,412
Agora, obviamente, neste momento meu banco de dados está vazio, então

283
00:22:17,412 --> 00:22:20,752
ele está respondendo com um array vazio lá.

284
00:22:20,752 --> 00:22:24,109
Mas agora o pedido foi feito com sucesso, e

285
00:22:24,109 --> 00:22:28,004
eu sou capaz de recuperar a informação da meia do servidor.

286
00:22:28,004 --> 00:22:32,186
Portanto, esta é uma demonstração rápida de

287
00:22:32,186 --> 00:22:37,724
autorização básica em nosso aplicativo APR descanso expresso.

288
00:22:37,724 --> 00:22:40,730
Com isso, completamos este exercício.

289
00:22:40,730 --> 00:22:42,236
Este é um bom momento

290
00:22:42,236 --> 00:22:46,846
para você fazer um comentário get com a mensagem de autenticação básica.

291
00:22:46,846 --> 00:22:50,116
[ MUSIC]