1
00:00:00,000 --> 00:00:04,514
[MÚSICA]

2
00:00:04,514 --> 00:00:09,803
Neste exercício, analisaremos o uso de sessões Express.

3
00:00:09,803 --> 00:00:13,115
Vamos configurar o middleware de sessões expressas e,

4
00:00:13,115 --> 00:00:16,356
em seguida, o middleware de armazenamento de arquivos express-sessions.

5
00:00:16,356 --> 00:00:21,315
E, em seguida, configurar nosso aplicativo para usar sessões expressas em vez de

6
00:00:21,315 --> 00:00:25,885
usar seus cookies de atribuição como fizemos no exercício anterior.

7
00:00:25,885 --> 00:00:30,870
Vamos também ver como as informações da sessão em si rastreado sob o

8
00:00:30,870 --> 00:00:32,145
lado do servidor.

9
00:00:33,750 --> 00:00:36,556
Para começar com este exercício,

10
00:00:36,556 --> 00:00:40,672
vá para a pasta ConfusionServer em seu terminal ou

11
00:00:40,672 --> 00:00:45,643
janela de comando e, em seguida, vamos instalar express-session.

12
00:00:45,643 --> 00:00:52,672
Então, para fazer isso, digite npm install express-session

13
00:00:52,672 --> 00:00:56,678
e, em seguida, armazenamento de arquivos de sessão.

14
00:00:58,792 --> 00:01:03,320
Porque usaremos o armazenamento de arquivos para persistir as informações da sessão.

15
00:01:03,320 --> 00:01:08,623
Então irá instalar o módulo de sessão de armazenamento aqui para o propósito.

16
00:01:08,623 --> 00:01:13,399
Uma vez que ambos estão instalados, e como você pode ver agora,

17
00:01:13,399 --> 00:01:17,008
estou usando a sessão expressa 1.15.6 e o

18
00:01:17,008 --> 00:01:21,430
armazenamento de arquivos de sessão 1.2.0 neste curso.

19
00:01:21,430 --> 00:01:26,397
Uma vez que ambos estão instalados, vamos para o nosso aplicativo ConfusionServer.

20
00:01:27,510 --> 00:01:31,868
Indo para o aplicativo ConfusionServer

21
00:01:31,868 --> 00:01:36,921
, aqui em cima, vamos agora importar a sessão expressa.

22
00:01:36,921 --> 00:01:44,414
Então, vamos dizer, var sessão exigem, sessão expressa.

23
00:01:46,639 --> 00:01:53,560
E var FileStore = requer

24
00:01:53,560 --> 00:01:59,908
sessão -file-store.

25
00:02:02,812 --> 00:02:07,064
E isso leva a sessão como seus parâmetros,

26
00:02:07,064 --> 00:02:13,830
esta sessão referindo-se a isso que acabamos de importar aqui.

27
00:02:13,830 --> 00:02:18,970
Agora, uma vez que fazemos isso, então vamos para baixo para o nosso código aqui,

28
00:02:18,970 --> 00:02:22,490
e então vamos ver em vez do CookieParser.

29
00:02:22,490 --> 00:02:26,598
Então eu vou comentar o CookieParser de lá, e

30
00:02:26,598 --> 00:02:33,401
então eu vou agora usar, Sessão aqui.

31
00:02:36,481 --> 00:02:41,823
E então, vamos configurar a sessão com

32
00:02:41,823 --> 00:02:47,175
as várias opções, vamos dizer nome,

33
00:02:50,402 --> 00:02:56,909
eu estou apenas usando um id de sessão aleatório aqui, e então, Secret.

34
00:02:58,871 --> 00:03:02,880
Vou usar o segredo que usei antes.

35
00:03:02,880 --> 00:03:06,493
Então deixe-me copiar essa corda ali.

36
00:03:06,493 --> 00:03:11,981
E, em seguida, Salvar,

37
00:03:13,422 --> 00:03:21,119
Ativar, Salvar falso não inicializado.

38
00:03:27,180 --> 00:03:28,390
Resave, falso.

39
00:03:28,390 --> 00:03:32,198
Estas não vão fazer muito diferente da simples aplicação que estamos escrevendo

40
00:03:32,198 --> 00:03:33,330
neste momento.

41
00:03:33,330 --> 00:03:37,604
E então diremos que a loja é nova,

42
00:03:39,643 --> 00:03:42,497
FileStore que declaramos anteriormente.

43
00:03:45,441 --> 00:03:46,330
É isso.

44
00:03:46,330 --> 00:03:53,330
Agora meu middleware de sessão está tudo configurado para fazer uso de nosso aplicativo.

45
00:03:53,330 --> 00:03:58,295
Agora, como eu mencionei, este middleware de sessão irá adicionar este

46
00:03:58,295 --> 00:04:03,560
req.session à mensagem de solicitação,

47
00:04:03,560 --> 00:04:08,630
então eu vou fazer um log de console de req.session apenas para ver o que ele contém.

48
00:04:08,630 --> 00:04:13,910
E, em seguida, abaixo aqui, em vez de verificar para req atribuir cookies usuário,

49
00:04:13,910 --> 00:04:18,370
eu vou verificar para req.session.user aqui.

50
00:04:19,390 --> 00:04:23,620
E, em seguida, vamos olhar para o cabeçalho de autorização, e assim por diante.

51
00:04:23,620 --> 00:04:27,460
Toda essa parte permanecerá exatamente a mesma de antes.

52
00:04:27,460 --> 00:04:32,760
Mas aqui, em vez de configurar o cookie, o que eu vou configurar aqui é,

53
00:04:32,760 --> 00:04:38,052
em vez de configurar o cookie, então em vez de usar res.cookie aqui,

54
00:04:38,052 --> 00:04:45,470
vamos dizer, req.session.user = para 'admin'.

55
00:04:45,470 --> 00:04:50,030
Então, vamos estar configurando a propriedade do usuário

56
00:04:50,030 --> 00:04:55,510
na sessão de requisição para admin aqui e, em seguida, avançar a partir deste ponto.

57
00:04:55,510 --> 00:04:59,090
Então o resto do código aqui permanecerá exatamente o mesmo de antes,

58
00:04:59,090 --> 00:05:01,030
não haverá nenhuma mudança aqui.

59
00:05:01,030 --> 00:05:06,240
E aceitar aqui mesmo, vamos estar verificando req.session,

60
00:05:09,462 --> 00:05:11,770
usuário, é admin ou não?

61
00:05:11,770 --> 00:05:14,340
Então esse é o cheque que vamos fazer aqui.

62
00:05:14,340 --> 00:05:15,360
É isso.

63
00:05:15,360 --> 00:05:18,820
Essas são as mudanças que precisamos fazer

64
00:05:18,820 --> 00:05:23,850
em nosso aplicativo para usar sessões no lugar de cookies assinados.

65
00:05:23,850 --> 00:05:30,040
Vamos salvar as alterações e, em seguida, olhar para esta versão do nosso servidor express.

66
00:05:30,040 --> 00:05:34,480
Voltando ao nosso terminal ou janela de comando, vamos reiniciar o nosso

67
00:05:35,600 --> 00:05:39,860
servidor, se o seu servidor estiver em execução, basta pará-lo e reiniciar o servidor.

68
00:05:40,870 --> 00:05:42,730
E então, uma vez que o servidor estiver funcionando,

69
00:05:42,730 --> 00:05:48,600
vamos ao carteiro e fazer se você pedir.

70
00:05:48,600 --> 00:05:56,350
Indo para o carteiro, deixe-me limpar todas essas coisas,

71
00:05:56,350 --> 00:06:01,970
vamos limpar os cabeçalhos, vamos limpar a autorização.

72
00:06:01,970 --> 00:06:03,630
E então eu vou para os cookies, e

73
00:06:03,630 --> 00:06:08,540
eu vou excluir esse cookie de usuário, porque esse cookie não é mais válido.

74
00:06:08,540 --> 00:06:16,030
E então, vamos enviar um pedido para, os pratos locais anfitriões.

75
00:06:16,030 --> 00:06:21,160
E então, como esperamos, ele volta dizendo: Você não está autenticado.

76
00:06:21,160 --> 00:06:24,520
Agora, vamos nos autenticar usando autenticação básica.

77
00:06:24,520 --> 00:06:29,483
Então vamos dizer, admin, senha.

78
00:06:29,483 --> 00:06:32,223
E, em seguida, vamos atualizar o pedido e

79
00:06:32,223 --> 00:06:35,740
, em seguida, vamos enviar um pedido GET para o mesmo ponto.

80
00:06:35,740 --> 00:06:39,400
E então, obtemos a resposta de volta do lado do servidor.

81
00:06:39,400 --> 00:06:46,000
Agora, note que nos cabeçalhos, agora você vai ver novamente ele disse cookie aqui.

82
00:06:46,000 --> 00:06:52,500
Agora isso foi causado pelo armazenamento de sessão aqui.

83
00:06:52,500 --> 00:06:57,492
E, quando você olha para os cookies, você vê que houve outro cookie que

84
00:06:57,492 --> 00:07:02,570
está configurado aqui e o nome é session-id.

85
00:07:02,570 --> 00:07:06,398
Então este é o nome que damos para a nossa sessão lá, então

86
00:07:06,398 --> 00:07:09,744
esse é o id de sessão que estamos usando aqui.

87
00:07:11,172 --> 00:07:16,880
E se você clicar em cookies, você notará que a sessão-id está bem ali.

88
00:07:16,880 --> 00:07:22,102
E então, estes são os detalhes do que está dentro daquele biscoito ali.

89
00:07:22,102 --> 00:07:26,816
Então você pode notar um monte de informações e a data de validade para

90
00:07:26,816 --> 00:07:28,940
o cookie, e assim por diante.

91
00:07:28,940 --> 00:07:33,703
Isso pode não fazer muito sentido para você neste momento, mas existe lá.

92
00:07:33,703 --> 00:07:38,110
Agora, deixe-me limpar a autorização.

93
00:07:38,110 --> 00:07:42,140
E também do cabeçalho, deixe-me remover este cabeçalho de autorização.

94
00:07:42,140 --> 00:07:45,312
E então reenviarei o pedido, e

95
00:07:45,312 --> 00:07:51,094
você notará que esse pedido será atendido corretamente mesmo agora.

96
00:07:51,094 --> 00:07:54,061
Devido ao fato de que este cookie existe,

97
00:07:54,061 --> 00:07:58,250
e este cookie será incluído na solicitação de saída.

98
00:07:58,250 --> 00:08:01,400
E o lado do servidor mapeará isso para a sessão apropriada.

99
00:08:02,922 --> 00:08:07,375
E assim, o servidor percebe que este é um usuário autorizado e

100
00:08:07,375 --> 00:08:10,042
enviará de volta a resposta.

101
00:08:10,042 --> 00:08:17,004
Agora indo para o nosso console do servidor no terminal ou na janela de comando,

102
00:08:17,004 --> 00:08:23,080
você percebe que o, Informações que estão sendo impressas no lado do servidor.

103
00:08:23,080 --> 00:08:27,460
Então veja, você se lembra que eu estava registrando a sessão de requisição aqui.

104
00:08:27,460 --> 00:08:30,780
Então é aqui que o req.session contém inicialmente.

105
00:08:30,780 --> 00:08:36,940
E então ele diz, GET pratos para um não válido.

106
00:08:36,940 --> 00:08:43,620
Neste ponto, você está enviando o cabeçalho de autorização apropriado lá.

107
00:08:43,620 --> 00:08:48,365
E assim o seu pedido de sucesso corretamente.

108
00:08:48,365 --> 00:08:53,080
Mas a nota, o que está sendo colocado para fora na sessão no próximo pedido.

109
00:08:53,080 --> 00:08:58,080
Lembre-se de que eu removi o cabeçalho de autorizações e, em seguida, enviar a solicitação.

110
00:08:58,080 --> 00:09:00,960
Mas observe o que o rec.session contém aqui.

111
00:09:00,960 --> 00:09:03,088
Em particular, note

112
00:09:03,088 --> 00:09:08,129
que, agora contém este campo de usuário com o admin no lugar lá.

113
00:09:09,280 --> 00:09:15,120
Então é isso que o servidor recebe do nosso lado do cliente no cookie.

114
00:09:15,120 --> 00:09:18,690
E o cookie em si contém todas essas informações aqui.

115
00:09:18,690 --> 00:09:22,987
E assim, o servidor está reconhecendo que este é um usuário válido e,

116
00:09:22,987 --> 00:09:27,249
em seguida, envia de volta os resultados desse lado do servidor.

117
00:09:27,249 --> 00:09:28,337
Indo para o carteiro,

118
00:09:28,337 --> 00:09:32,220
vamos novamente dar uma olhada nos detalhes do que está dentro do cookie.

119
00:09:32,220 --> 00:09:34,137
Então, quando você abrir o cookie aqui,

120
00:09:34,137 --> 00:09:39,103
você verá novamente todos os detalhes das informações dentro do cookie aqui.

121
00:09:39,103 --> 00:09:43,026
Se você olhar para o seu editor, você verá agora que no seu editor,

122
00:09:43,026 --> 00:09:48,140
há uma nova pasta aqui chamada sessões que foi criada aqui.

123
00:09:48,140 --> 00:09:52,320
Agora isso é porque estávamos usando o armazenamento de arquivos para

124
00:09:52,320 --> 00:09:54,130
manter o controle de todas as nossas sessões.

125
00:09:54,130 --> 00:09:58,180
Agora essa é uma das razões pelas quais eu uso o armazenamento de arquivos para que eu possa mostrar o que

126
00:09:58,180 --> 00:10:03,320
é armazenado em um arquivo de sessão no lado do servidor.

127
00:10:03,320 --> 00:10:08,430
Então, se você abrir este arquivo aqui com o nome longo lá,

128
00:10:08,430 --> 00:10:13,890
você veria lá dentro, a informação da sessão sendo armazenada aqui.

129
00:10:13,890 --> 00:10:19,460
Portanto, se você navegar essas informações de sessão, observe em particular,

130
00:10:19,460 --> 00:10:22,880
este campo inicial que está no lado do servidor.

131
00:10:22,880 --> 00:10:27,930
Então é aqui que seu servidor está rastreando todas essas informações no lado do servidor.

132
00:10:27,930 --> 00:10:32,650
Agora este cookie em si é reconhecido pelo servidor,

133
00:10:32,650 --> 00:10:36,630
uma vez que o cliente inclui este cookie na solicitação de entrada.

134
00:10:36,630 --> 00:10:41,330
Agora ele é capaz de ir para o armazenamento de sessões e, em seguida, recuperar as informações

135
00:10:41,330 --> 00:10:44,870
e, em seguida, carregar isso para o req.sessions.

136
00:10:44,870 --> 00:10:49,800
E, portanto, o req.session contém essa informação específica lá

137
00:10:49,800 --> 00:10:54,810
que meu servidor está usando para verificar se

138
00:10:54,810 --> 00:10:57,710
meu cliente é um cliente autorizado.

139
00:10:57,710 --> 00:11:00,010
Isso é sobre sessões.

140
00:11:00,010 --> 00:11:03,230
Com isso, completamos este exercício.

141
00:11:03,230 --> 00:11:04,100
Neste exercício,

142
00:11:04,100 --> 00:11:08,630
vimos como podemos configurar nossa aplicação expressa para usar sessões.

143
00:11:08,630 --> 00:11:13,751
E também vimos como estamos usando o armazenamento de arquivos para acompanhar nossas sessões.

144
00:11:13,751 --> 00:11:18,360
Este é um bom momento para você fazer um comentário GET com

145
00:11:18,360 --> 00:11:22,291
a mensagem express sessões parte um.

146
00:11:22,291 --> 00:11:25,521
[ MUSIC]