Portuguese, Brazilian subtitles

← 04ps-06 Solução de Logout

Get Embed Code
4 Languages

Showing Revision 3 created 09/03/2013 by Fernando Maciel.

  1. Estamos na página de boas-vindas.
  2. Se a recarregarmos, continuaremos
    vendo a mesma coisa.
  3. A última coisa que eu pedi que fizesse
    foi fazer com que o logout funcionasse.
  4. Quando acessamos este URL, ele nos
    redireciona à página de inscrição.
  5. Se voltássemos à página de
    boas-vindas e a recarregássemos,
  6. ela nos redirecionaria à página de inscrição
  7. porque o nosso cookie foi deletado.
  8. Para fazer o logout de alguém,
    é preciso deletar o cookie.
  9. Eu não havia dito isso na lição.
  10. Espero que tenha percebido isso.
  11. Vejamos isso em ação novamente.
  12. Vamos fazer o login.
  13. Perceba que temos um cookie.
  14. O cookie do "user_ID" é igual a 5.
  15. Este é o "user_ID" para
    "spez" nesta máquina.
  16. Se eu fizer o logout e olhar
    o nosso cookie novamente,
  17. veremos que o cookie do
    "user_ID" está em branco.
  18. Aqui está o cookie do "user_ID".
    Não há nada nele.
  19. É assim que o logout funciona. Vamos
    dar uma olhado nos códigos para isso.
  20. A primeira coisa que temos é
    o nosso "handler" do logout,
  21. Eu mapeei "/logout" para
    o "handler" do logout.
  22. Quando vemos o "handler" do logout
    vemos que ele chama o "self.logout"
  23. que é o "Find" em "BlogHandler"
    e que redireciona o "singup".
  24. Vamos dar uma olhada
    nessa função "logout".
  25. Aqui está. Lembre-se que de
    que estamos em "Class BlogHandler",
  26. onde eu pus todas essas coisas genéricas
    que outros "handlers" poderão usar.
  27. O 'logout" estabelece o
    "user_id" como nada.
  28. Em vez de estabelecermos "cookie=" valor,
    o estabelecemos como "cookie=" nada,
  29. e mantemos o mesmo "Path".
  30. Assim, estamos estabelecendo e
    sobrescrevendo o mesmo cookie.
  31. Se não tivéssemos estas variáveis de "Path",
  32. ou estes parâmetros de "Path" no cookie,
  33. estaríamos, na verdade, sobrescrevendo o--
  34. bem, poderíamos estabelecer
    o cookie em "/login" ou "/signup"
  35. para deixa-la como página padrão.
  36. Assim, quando fossemos na página de boas-vindas,
  37. nós não estaríamos conectados.
    Isso resultaria em problemas.
  38. Assim, devemos nos certificar de
    estabelecer o cookie no "Path/"
  39. e de deletar o cookie do "Path/'.
  40. E é assim que o logout funciona.
  41. E se você conseguiu entender
    tudo isso, então, parabéns.
  42. Esta é uma das coisas
    mais complicadas de se fazer
  43. ao escrever aplicativos para a internet.
    Toda essa coisa de cookies e hashing
  44. e toda essa manipulação.
  45. Mas também podemos começar a fazer
    algumas coisas bem inteligentes.
  46. Mesmo que vários frameworks
    possam resolver isso para você,
  47. eu acho muito importante que
    você entenda como isso funciona.
  48. Isso porque você vai se encontrar
    várias vezes em uma situação
  49. em que vai ser necessário esconder
    alguns dados em um cookie,
  50. talvez algum tipo de hash que representa
    alguma informação, e assim por diante.
  51. Nós sempre fazemos isso no Reddit
    em projetos anti-roubo.
  52. Eu acho que é muito importante saber como
    tudo isso funciona como conjunto.
  53. É por isso que eu fiz com
    que você fizesse tudo isso.
  54. Bom trabalho.
    Nos vemos na próxima semana.