[MÚSICA]
Neste exercício, analisaremos o uso de sessões Express.
Vamos configurar o middleware de sessões expressas e,
em seguida, o middleware de armazenamento de arquivos express-sessions.
E, em seguida, configurar nosso aplicativo para usar sessões expressas em vez de
usar seus cookies de atribuição como fizemos no exercício anterior.
Vamos também ver como as informações da sessão em si rastreado sob o
lado do servidor.
Para começar com este exercício,
vá para a pasta ConfusionServer em seu terminal ou
janela de comando e, em seguida, vamos instalar express-session.
Então, para fazer isso, digite npm install express-session
e, em seguida, armazenamento de arquivos de sessão.
Porque usaremos o armazenamento de arquivos para persistir as informações da sessão.
Então irá instalar o módulo de sessão de armazenamento aqui para o propósito.
Uma vez que ambos estão instalados, e como você pode ver agora,
estou usando a sessão expressa 1.15.6 e o
armazenamento de arquivos de sessão 1.2.0 neste curso.
Uma vez que ambos estão instalados, vamos para o nosso aplicativo ConfusionServer.
Indo para o aplicativo ConfusionServer
, aqui em cima, vamos agora importar a sessão expressa.
Então, vamos dizer, var sessão exigem, sessão expressa.
E var FileStore = requer
sessão -file-store.
E isso leva a sessão como seus parâmetros,
esta sessão referindo-se a isso que acabamos de importar aqui.
Agora, uma vez que fazemos isso, então vamos para baixo para o nosso código aqui,
e então vamos ver em vez do CookieParser.
Então eu vou comentar o CookieParser de lá, e
então eu vou agora usar, Sessão aqui.
E então, vamos configurar a sessão com
as várias opções, vamos dizer nome,
eu estou apenas usando um id de sessão aleatório aqui, e então, Secret.
Vou usar o segredo que usei antes.
Então deixe-me copiar essa corda ali.
E, em seguida, Salvar,
Ativar, Salvar falso não inicializado.
Resave, falso.
Estas não vão fazer muito diferente da simples aplicação que estamos escrevendo
neste momento.
E então diremos que a loja é nova,
FileStore que declaramos anteriormente.
É isso.
Agora meu middleware de sessão está tudo configurado para fazer uso de nosso aplicativo.
Agora, como eu mencionei, este middleware de sessão irá adicionar este
req.session à mensagem de solicitação,
então eu vou fazer um log de console de req.session apenas para ver o que ele contém.
E, em seguida, abaixo aqui, em vez de verificar para req atribuir cookies usuário,
eu vou verificar para req.session.user aqui.
E, em seguida, vamos olhar para o cabeçalho de autorização, e assim por diante.
Toda essa parte permanecerá exatamente a mesma de antes.
Mas aqui, em vez de configurar o cookie, o que eu vou configurar aqui é,
em vez de configurar o cookie, então em vez de usar res.cookie aqui,
vamos dizer, req.session.user = para 'admin'.
Então, vamos estar configurando a propriedade do usuário
na sessão de requisição para admin aqui e, em seguida, avançar a partir deste ponto.
Então o resto do código aqui permanecerá exatamente o mesmo de antes,
não haverá nenhuma mudança aqui.
E aceitar aqui mesmo, vamos estar verificando req.session,
usuário, é admin ou não?
Então esse é o cheque que vamos fazer aqui.
É isso.
Essas são as mudanças que precisamos fazer
em nosso aplicativo para usar sessões no lugar de cookies assinados.
Vamos salvar as alterações e, em seguida, olhar para esta versão do nosso servidor express.
Voltando ao nosso terminal ou janela de comando, vamos reiniciar o nosso
servidor, se o seu servidor estiver em execução, basta pará-lo e reiniciar o servidor.
E então, uma vez que o servidor estiver funcionando,
vamos ao carteiro e fazer se você pedir.
Indo para o carteiro, deixe-me limpar todas essas coisas,
vamos limpar os cabeçalhos, vamos limpar a autorização.
E então eu vou para os cookies, e
eu vou excluir esse cookie de usuário, porque esse cookie não é mais válido.
E então, vamos enviar um pedido para, os pratos locais anfitriões.
E então, como esperamos, ele volta dizendo: Você não está autenticado.
Agora, vamos nos autenticar usando autenticação básica.
Então vamos dizer, admin, senha.
E, em seguida, vamos atualizar o pedido e
, em seguida, vamos enviar um pedido GET para o mesmo ponto.
E então, obtemos a resposta de volta do lado do servidor.
Agora, note que nos cabeçalhos, agora você vai ver novamente ele disse cookie aqui.
Agora isso foi causado pelo armazenamento de sessão aqui.
E, quando você olha para os cookies, você vê que houve outro cookie que
está configurado aqui e o nome é session-id.
Então este é o nome que damos para a nossa sessão lá, então
esse é o id de sessão que estamos usando aqui.
E se você clicar em cookies, você notará que a sessão-id está bem ali.
E então, estes são os detalhes do que está dentro daquele biscoito ali.
Então você pode notar um monte de informações e a data de validade para
o cookie, e assim por diante.
Isso pode não fazer muito sentido para você neste momento, mas existe lá.
Agora, deixe-me limpar a autorização.
E também do cabeçalho, deixe-me remover este cabeçalho de autorização.
E então reenviarei o pedido, e
você notará que esse pedido será atendido corretamente mesmo agora.
Devido ao fato de que este cookie existe,
e este cookie será incluído na solicitação de saída.
E o lado do servidor mapeará isso para a sessão apropriada.
E assim, o servidor percebe que este é um usuário autorizado e
enviará de volta a resposta.
Agora indo para o nosso console do servidor no terminal ou na janela de comando,
você percebe que o, Informações que estão sendo impressas no lado do servidor.
Então veja, você se lembra que eu estava registrando a sessão de requisição aqui.
Então é aqui que o req.session contém inicialmente.
E então ele diz, GET pratos para um não válido.
Neste ponto, você está enviando o cabeçalho de autorização apropriado lá.
E assim o seu pedido de sucesso corretamente.
Mas a nota, o que está sendo colocado para fora na sessão no próximo pedido.
Lembre-se de que eu removi o cabeçalho de autorizações e, em seguida, enviar a solicitação.
Mas observe o que o rec.session contém aqui.
Em particular, note
que, agora contém este campo de usuário com o admin no lugar lá.
Então é isso que o servidor recebe do nosso lado do cliente no cookie.
E o cookie em si contém todas essas informações aqui.
E assim, o servidor está reconhecendo que este é um usuário válido e,
em seguida, envia de volta os resultados desse lado do servidor.
Indo para o carteiro,
vamos novamente dar uma olhada nos detalhes do que está dentro do cookie.
Então, quando você abrir o cookie aqui,
você verá novamente todos os detalhes das informações dentro do cookie aqui.
Se você olhar para o seu editor, você verá agora que no seu editor,
há uma nova pasta aqui chamada sessões que foi criada aqui.
Agora isso é porque estávamos usando o armazenamento de arquivos para
manter o controle de todas as nossas sessões.
Agora essa é uma das razões pelas quais eu uso o armazenamento de arquivos para que eu possa mostrar o que
é armazenado em um arquivo de sessão no lado do servidor.
Então, se você abrir este arquivo aqui com o nome longo lá,
você veria lá dentro, a informação da sessão sendo armazenada aqui.
Portanto, se você navegar essas informações de sessão, observe em particular,
este campo inicial que está no lado do servidor.
Então é aqui que seu servidor está rastreando todas essas informações no lado do servidor.
Agora este cookie em si é reconhecido pelo servidor,
uma vez que o cliente inclui este cookie na solicitação de entrada.
Agora ele é capaz de ir para o armazenamento de sessões e, em seguida, recuperar as informações
e, em seguida, carregar isso para o req.sessions.
E, portanto, o req.session contém essa informação específica lá
que meu servidor está usando para verificar se
meu cliente é um cliente autorizado.
Isso é sobre sessões.
Com isso, completamos este exercício.
Neste exercício,
vimos como podemos configurar nossa aplicação expressa para usar sessões.
E também vimos como estamos usando o armazenamento de arquivos para acompanhar nossas sessões.
Este é um bom momento para você fazer um comentário GET com
a mensagem express sessões parte um.
[ MUSIC]