1
00:00:00,420 --> 00:00:06,810
Bem-vindo novamente nesta lição, vamos pegar onde paramos com o código de autenticação, não apenas

2
00:00:06,810 --> 00:00:07,740
por código.

3
00:00:07,960 --> 00:00:09,000
Você nunca codifica sozinho.

4
00:00:09,060 --> 00:00:10,000
Você me tem aqui.

5
00:00:10,230 --> 00:00:12,520
Então, codifique a parte 3.

6
00:00:12,690 --> 00:00:15,040
Agora chegamos à carne de autenticação.

7
00:00:15,090 --> 00:00:20,430
Vamos começar adicionando estas rotas de registro de rotas de inscrição e o formulário de registro e certificando-se

8
00:00:20,430 --> 00:00:24,440
de que, no final deste vídeo, possamos poder nos inscrever para o nosso aplicativo.

9
00:00:24,480 --> 00:00:25,740
Não iremos sair.

10
00:00:25,890 --> 00:00:28,400
Não poderemos fazer login, mas poderemos nos inscrever.

11
00:00:28,740 --> 00:00:29,490
ESTÁ BEM.

12
00:00:30,000 --> 00:00:31,160
Então vamos começar.

13
00:00:31,170 --> 00:00:34,480
A primeira coisa que precisamos discutir são as rotas que precisamos adicionar.

14
00:00:34,530 --> 00:00:39,060
E antes de fazer isso, vou adicionar um pequeno divisor aqui porque

15
00:00:39,060 --> 00:00:46,250
temos muito conteúdo no topo que apenas diz rotas que vou fazer com um pouco de sinais iguais.

16
00:00:46,500 --> 00:00:49,790
Apenas para deixar claro que todas as rotas estão abaixo desta linha.

17
00:00:49,800 --> 00:00:50,560
ESTÁ BEM.

18
00:00:50,910 --> 00:00:54,620
Então, temos nossa barra e temos a rota secreta.

19
00:00:55,050 --> 00:01:00,630
Agora, basta aqui vamos adicionar no nosso Auth. rotas para rever as rotas que precisamos.

20
00:01:00,780 --> 00:01:05,940
Na verdade, irei para a versão de trabalho desta deslumbrante página inicial e, quando você

21
00:01:05,940 --> 00:01:11,700
clicar no aviso de registro, o URL é uma barra de registro e vemos um formulário.

22
00:01:11,820 --> 00:01:17,640
Então, temos um registro de barra de rota de busca que nos mostrará o formulário para realmente se

23
00:01:17,640 --> 00:01:25,360
inscrever e, em seguida, se inscrevemos esse formulário, você verá que está enviando uma solicitação de publicação para reduzir o registro de barra de registro.

24
00:01:25,980 --> 00:01:28,100
Não precisamos chamar isso de registro slash.

25
00:01:28,110 --> 00:01:31,330
Você verá coisas como inscrição ou registro.

26
00:01:31,380 --> 00:01:35,530
Pode ser o que você quiser, mas o registro é bom para nós.

27
00:01:35,670 --> 00:01:36,830
Então, vamos voltar para o nosso apt.

28
00:01:36,850 --> 00:01:37,390
Sim.

29
00:01:37,500 --> 00:01:43,570
E nós precisamos adicionar essas duas rotas e eu vou começar com um aplicativo não receber registro de barra.

30
00:01:43,650 --> 00:01:47,550
E, novamente, o objetivo é mostrar o formulário.

31
00:01:47,550 --> 00:01:50,530
Então, mostre o formulário de inscrição.

32
00:01:51,040 --> 00:01:51,590
ESTÁ BEM.

33
00:01:51,720 --> 00:01:59,700
Então, para obter um registro de barra e, em seguida, nossa chamada de retorno aqui solicitação e resposta assim, e vamos

34
00:01:59,700 --> 00:02:07,200
redistart renderizar e nós vamos chamar seu modelo de registro e, em seguida, a próxima coisa lógica a fazer seria

35
00:02:07,200 --> 00:02:09,400
criar o formulário de registro.

36
00:02:09,540 --> 00:02:13,480
Então, vamos fazer um registro de barras de exibição de toque.

37
00:02:13,620 --> 00:02:22,740
E. J. Sim e depois abriremos o mesmo arquivo e, dentro

38
00:02:22,740 --> 00:02:28,010
daqui, começaremos com um simples, digamos, inscreva-se e salve e asseguremos que possamos ver isso.

39
00:02:28,260 --> 00:02:32,660
Então, comece o servidor, então iremos ao nosso aplicativo aqui.

40
00:02:33,180 --> 00:02:35,330
Volte para o caminho da raiz para começar.

41
00:02:35,580 --> 00:02:40,800
E agora vamos ao registro de barra e se inscreva para ele.

42
00:02:40,800 --> 00:02:41,610
Ótimo.

43
00:02:41,610 --> 00:02:47,930
Agora vamos adicionar um fórum e nosso formulário precisa ter duas entradas para o nome de usuário uma para a senha.

44
00:02:48,090 --> 00:02:53,070
Então, vamos começar definindo um formulário e voltaremos e adicionaremos o método em ação.

45
00:02:53,100 --> 00:02:54,760
Começaremos com uma entrada.

46
00:02:55,140 --> 00:03:01,200
Ambos são texto digitado, embora possamos fazer com que o tipo de entrada da senha seja igual à senha, o que realmente

47
00:03:01,200 --> 00:03:02,310
é uma idéia melhor.

48
00:03:02,310 --> 00:03:12,510
isso e depois vou duplicar isso e farei o tipo de entrada porque a senha e o espaço reservado serão senha e salvar.

49
00:03:13,200 --> 00:03:21,040
Então, o tipo de entrada é o espaço reservado ao texto, igual ao nome do usuário, assim como

50
00:03:21,360 --> 00:03:28,380
E, então, vamos adicionar um envio e podemos fazer o tipo de entrada igual a submeter ou.

51
00:03:28,840 --> 00:03:29,280
Ou.

52
00:03:29,340 --> 00:03:31,200
Eu prefiro uma etiqueta de botão.

53
00:03:31,710 --> 00:03:34,820
Qualquer um funcionará enquanto o botão estiver no final do formulário.

54
00:03:34,860 --> 00:03:36,580
Ele enviará automaticamente o formulário.

55
00:03:36,870 --> 00:03:37,140
ESTÁ BEM.

56
00:03:37,140 --> 00:03:42,990
a senha e podemos começar por dar uma olhada nisso e vemos nosso formulário, mas estamos faltando duas coisas cruciais.

57
00:03:42,990 --> 00:03:48,300
Então, envie e depois temos o nosso tipo de entrada porque o tipo de entrada de texto passa

58
00:03:48,300 --> 00:03:53,940
Primeiro de tudo, o formulário não vai a lugar algum e mesmo se ele enviou algum lugar, ele não

59
00:03:53,940 --> 00:03:57,360
enviaria nenhum desses itens porque não temos os atributos de nome.

60
00:03:57,450 --> 00:04:09,000
Então, nós precisamos adicionar o nome igual ao nome do usuário e o nome é igual à senha assim e salvaremos.

61
00:04:09,000 --> 00:04:14,590
Agora, se dar uma olhada na forma, nada deve parecer diferente, mas agora está quase configurado.

62
00:04:14,760 --> 00:04:17,410
Agora precisamos adicionar as informações para a etiqueta do formulário.

63
00:04:17,540 --> 00:04:20,380
Ou temos ação e método.

64
00:04:20,400 --> 00:04:24,720
Então, a ação também será caixa registradora.

65
00:04:24,900 --> 00:04:29,430
Mas nós vamos enviá-lo como um pedido de publicação e ainda não temos essa rota.

66
00:04:29,640 --> 00:04:34,830
Então, se eu fosse e preenchi o formulário agora mesmo se eu atualizar e preencher o formulário, seria

67
00:04:34,950 --> 00:04:40,380
apenas pendurar e, em seguida, acabar por expirar porque não temos um registro de barramento pós-estrada e isso

68
00:04:40,440 --> 00:04:46,710
pode ser chamado qualquer coisa, é claro, mas é convencional para nomeá-lo o mesmo que o registro get barra de rotas.

69
00:04:46,770 --> 00:04:54,750
Então, vamos fazer o mesmo e esta rota realmente seria responsável por manipular usuários e se inscrever

70
00:04:54,750 --> 00:05:02,820
e nós faremos uma resposta de solicitação de função de registro de barra de publicação do aplicativo.

71
00:05:02,820 --> 00:05:06,000
E aqui vamos adicionar toda a lógica para começar.

72
00:05:06,000 --> 00:05:07,980
certeza de que está conectado OK.

73
00:05:11,000 --> 00:05:14,930
Vamos fazer um bom descanso e registrar post-trib apenas para ter

74
00:05:15,120 --> 00:05:23,000
E se reiniciar o servidor e voltar atualizar a página preencha alguns dados aleatórios e pressione enviar.

75
00:05:23,060 --> 00:05:25,500
Devemos ver o post-rascunho registrado.

76
00:05:25,660 --> 00:05:26,380
Aqui vamos nós.

77
00:05:26,510 --> 00:05:29,120
Isso significa que nosso formulário está sendo enviado ao lugar certo.

78
00:05:29,120 --> 00:05:35,300
Estamos batendo nisso agora, chegamos à parte divertida, onde é que lidamos com o usuário, inscreva-se em cerca de

79
00:05:35,310 --> 00:05:38,320
10 novas linhas que você não viu a maioria.

80
00:05:38,880 --> 00:05:43,550
Então vou começar escrevendo a sintaxe e depois vou pausar e passar por todas as linhas e o que ela faz.

81
00:05:43,620 --> 00:05:48,590
E a primeira coisa que realmente precisamos fazer, que é uma revisão, é que precisamos adicionar analisador no

82
00:05:48,590 --> 00:05:51,210
corpo e configurá-lo porque estamos tomando dados de um formulário.

83
00:05:51,200 --> 00:05:55,990
Este formulário está enviando dados no corpo e queremos poder solicitar o corpo do pedido.

84
00:05:56,020 --> 00:05:59,090
Use seu nome para a senha Quest Up Vadi.

85
00:05:59,250 --> 00:06:01,170
Agora, aqueles ficarão vazios.

86
00:06:01,520 --> 00:06:12,830
Então, no topo, precisamos fazer um aplicativo que use o banco do corpo, onde você codificou o URL e depois

87
00:06:12,890 --> 00:06:15,240
adicionamos essa verdade estendida.

88
00:06:15,770 --> 00:06:18,970
E essa é outra dessas linhas que você simplesmente se acostuma a digitar.

89
00:06:19,190 --> 00:06:23,660
Nós precisamos, em qualquer momento, usar um formulário e publicar dados em uma solicitação.

90
00:06:24,020 --> 00:06:25,890
OK, então está feito agora.

91
00:06:26,250 --> 00:06:31,800
Então, devemos poder solicitar corpo para esse nome de usuário e senha que conterão o nome de usuário e

92
00:06:31,790 --> 00:06:35,750
a senha do formulário com o qual o usuário está tentando se inscrever.

93
00:06:35,750 --> 00:06:39,770
Então, agora estamos de volta à lógica e vou escrever algumas linhas que mencionei e depois

94
00:06:39,770 --> 00:06:40,630
as explico depois.

95
00:06:40,940 --> 00:06:47,970
Então, o usuário não se registra e, em vez do registro de dados do usuário, vamos passar no Novo Usuário e

96
00:06:47,960 --> 00:06:48,810
no Novo Usuário.

97
00:06:48,900 --> 00:06:56,190
Nós vamos passar no nome do usuário é igual a solicitar ao Oddy esse nome de usuário, mas não adicionamos senha

98
00:06:56,270 --> 00:06:57,560
a esse novo usuário.

99
00:06:57,620 --> 00:07:05,340
Na verdade, vamos adicioná-lo depois de criarmos o novo pedido de usuário para a vírgula de senha do corpo e então

100
00:07:05,330 --> 00:07:11,440
vamos adicionar uma função de retorno de chamada e, em seguida, o usuário e então abriremos isso.

101
00:07:12,160 --> 00:07:12,850
ESTÁ BEM.

102
00:07:13,230 --> 00:07:15,140
Então vamos falar sobre o que fizemos até agora.

103
00:07:15,140 --> 00:07:20,820
Nós criamos um novo objeto de usuário que não é realmente seguro para o banco de dados ainda é um novo usuário e só

104
00:07:20,810 --> 00:07:21,860
passamos o nome de usuário.

105
00:07:22,310 --> 00:07:26,170
E o motivo pelo qual fazemos isso é que na verdade não salvamos a senha no banco de dados.

106
00:07:26,190 --> 00:07:27,570
Essa não é realmente uma boa idéia.

107
00:07:27,920 --> 00:07:29,990
E eu vou mostrar-lhe o que realmente salvamos em vez disso.

108
00:07:30,000 --> 00:07:33,510
Uma vez que recebemos algo em um banco de dados, mas não é a senha.

109
00:07:33,500 --> 00:07:39,890
Então, o que fazemos é que passamos a senha como um segundo argumento para o usuário dot registrar e usar seu registro de pontos.

110
00:07:40,010 --> 00:07:45,770
Tomaremos esse novo usuário que possui um nome de usuário e, então, vamos ter essa senha, o que basicamente significa que

111
00:07:45,770 --> 00:07:50,290
ela transforma essa enorme cadeia de números e letras e armazena isso no banco de dados.

112
00:07:50,510 --> 00:07:55,730
Então ele passa o objeto de usuário que queremos criar e depois passamos a senha separadamente.

113
00:07:56,220 --> 00:08:01,330
E então, se tudo correr bem, ele retornará um novo usuário que tenha tudo dentro dele.

114
00:08:01,400 --> 00:08:05,120
Tem nome de usuário e, em seguida, possui a senha hash também.

115
00:08:05,120 --> 00:08:06,220
Então, vamos ver se isso funciona.

116
00:08:06,320 --> 00:08:14,120
E, em vez de aqui, adicionaremos o nosso erro simples se houveremos um erro no

117
00:08:14,120 --> 00:08:22,340
log do console e então também faremos um ponto vermelho para renderizar o formulário novamente assim.

118
00:08:22,560 --> 00:08:31,080
E se não houver um erro, então temos outra linha a fazer, que é Passport dot authenticate local.

119
00:08:31,470 --> 00:08:33,730
E novamente vou explicar isso depois.

120
00:08:34,150 --> 00:08:42,360
Solicite uma função de resposta e, em vez disso, vamos redirecionar para a página secreta.

121
00:08:42,360 --> 00:08:47,720
Então, isso acontecerá uma vez que o usuário tenha sido criado e não haja um erro se houver um erro.

122
00:08:47,730 --> 00:08:51,280
Vamos renderizar essa página de registro e é aí que temos um retorno aqui.

123
00:08:51,290 --> 00:08:52,950
Isso acabará por curto-circuito de tudo.

124
00:08:53,220 --> 00:08:57,780
E se não houver um erro, vamos executar autenticação de passaporte.

125
00:08:57,890 --> 00:09:03,500
Então, esta linha aqui autenticação de passaporte será realmente o usuário em quem cuidará de

126
00:09:03,500 --> 00:09:04,410
tudo na sessão.

127
00:09:04,470 --> 00:09:06,140
Ele armazenará as informações corretas.

128
00:09:06,140 --> 00:09:10,510
Ele executará o método de usuário serializado que especificamos aqui.

129
00:09:11,000 --> 00:09:14,600
E então estamos especificando que queremos usar a estratégia local.

130
00:09:15,090 --> 00:09:20,510
E, no futuro, se quiséssemos usar outra estratégia e tivéssemos instalado, poderíamos mudar isso para ser

131
00:09:20,510 --> 00:09:22,050
o Twitter ou o Facebook.

132
00:09:22,080 --> 00:09:23,570
E há outras coisas que você precisa fazer.

133
00:09:23,580 --> 00:09:27,860
Temos de se inscrever e obter credenciais no Twitter e Facebook e temos que registrar nossas aplicações.

134
00:09:27,950 --> 00:09:29,170
Então, é mais complicado.

135
00:09:29,370 --> 00:09:34,310
Mas, no que diz respeito à lógica e ao passaporte, podemos simplesmente trocar coisas dentro e fora e

136
00:09:34,320 --> 00:09:36,120
há alguns pequenos ajustes que precisamos fazer.

137
00:09:36,200 --> 00:09:40,970
Mas geralmente o passaporte facilita a troca de estratégias diferentes.

138
00:09:41,150 --> 00:09:42,730
Então, vamos usar o local.

139
00:09:43,160 --> 00:09:46,380
E isso novamente é realmente realmente logar o usuário.

140
00:09:46,830 --> 00:09:54,060
E uma vez que o usuário tenha efetuado o login, iremos redirecionar para o segredo do segredo secreto e essa é apenas

141
00:09:54,060 --> 00:09:54,920
uma escolha pessoal.

142
00:09:54,920 --> 00:10:00,390
Podemos voltar para a página inicial da rota, mas o segredo é o que estamos todos aqui.

143
00:10:00,500 --> 00:10:06,800
Então, uma vez que nos inscrevemos uma vez que nos registamos, devemos ser levados para cortar o segredo, a menos que

144
00:10:07,740 --> 00:10:10,950
haja um problema e depois retornaremos ao formulário de registro.

145
00:10:11,000 --> 00:10:15,110
Então, vamos testar isso, certifique-se de que não temos erros de sintaxe.

146
00:10:15,120 --> 00:10:16,380
Parece bom.

147
00:10:16,400 --> 00:10:20,920
Agora vamos ao nosso aplicativo e atualize a página e inscreva-se.

148
00:10:21,260 --> 00:10:30,720
Então eu vou criar uma conta como Colt e minha senha será apenas senha e nenhum hit enviará e chegamos à página secreta que

149
00:10:30,710 --> 00:10:35,220
é uma boa notícia, mas para realmente ter certeza de que funcionou.

150
00:10:35,370 --> 00:10:41,770
Vamos parar o servidor e vamos abrir o Mongo e vou me conectar ao meu banco de dados, então vou mostrar Digby

151
00:10:41,780 --> 00:10:46,130
e o banco de dados é Auth. aplicativo de demonstração.

152
00:10:46,430 --> 00:10:54,060
vou olhar as coleções de coleções e depois vamos para D.

153
00:10:54,060 --> 00:11:05,810
Então eu vou usar isso e então eu B que os usuários encontrem todos os usuários de DB e você pode ver, quero dizer, tornamos isso um pouco maior.

154
00:11:05,900 --> 00:11:11,580
Nós temos um único usuário desde que acabei de me inscrever e há muitas informações aqui.

155
00:11:11,630 --> 00:11:15,690
Bem, não há muito, há apenas algumas peças, mas parece muito.

156
00:11:15,710 --> 00:11:18,300
Mais importante ainda, temos um nome de usuário aqui.

157
00:11:18,360 --> 00:11:19,480
Seu nome, Colts.

158
00:11:19,640 --> 00:11:23,410
Essa é a única peça que especificamos que parece normal para nós.

159
00:11:23,750 --> 00:11:30,780
E então, existem essas coisas sal e hash e falo muito mais sobre isso na autenticação da

160
00:11:30,770 --> 00:11:32,040
unidade de rascunho.

161
00:11:32,250 --> 00:11:37,260
Então, não vamos entrar em muito detalhes, tudo o que vou mencionar sobre isso agora é que

162
00:11:37,250 --> 00:11:42,250
a nossa senha bruta a palavra senha no meu caso não está armazenada no banco de dados.

163
00:11:42,360 --> 00:11:44,790
O que estamos armazenando é esta versão de hash louco.

164
00:11:44,960 --> 00:11:49,150
E então esse outro chamado chamado sal que nos ajudará a fazer isso.

165
00:11:49,320 --> 00:11:54,980
E, ajudando-nos, quero dizer que tudo é cuidadoso pelo pacote de passagens locais do

166
00:11:54,990 --> 00:11:59,610
passaporte que instalamos e reconfigurou como um plugue no qual fizemos aqui.

167
00:11:59,660 --> 00:12:05,010
Então, isso cuida de tudo, desde o hashing até o salgadinho para armazenar coisas no banco de dados.

168
00:12:05,100 --> 00:12:12,170
linha simples ou redimensioná-lo de novo o registro de ponto do usuário e passamos um novo usuário com um nome de usuário.

169
00:12:12,170 --> 00:12:14,570
Tudo o que tínhamos que fazer era essa

170
00:12:14,580 --> 00:12:16,030
E então ele cuida de tudo o resto.

171
00:12:16,050 --> 00:12:20,250
Damos-lhe a senha do formulário, mas nunca o salvamos para o usuário.

172
00:12:20,370 --> 00:12:24,540
Em vez disso, ele lida com tudo e nunca salva nenhuma senha.

173
00:12:24,600 --> 00:12:26,790
Na verdade, está salvando a versão hash.

174
00:12:27,240 --> 00:12:27,890
ESTÁ BEM.

175
00:12:28,520 --> 00:12:30,590
Então vamos sair de Mongo agora.

176
00:12:31,320 --> 00:12:37,500
podemos fazer é abrir a página de índice ou a página inicial, quero dizer, recitar que renderizam a casa.

177
00:12:37,670 --> 00:12:40,840
E agora temos registro trabalhando a última coisa que

178
00:12:40,860 --> 00:12:49,050
Então, vamos fazer as visitas do C9 sosh em casa e vamos adicionar um link para adicionar um aliado aqui e este link deve

179
00:12:49,050 --> 00:12:51,060
ir para a página de registro.

180
00:12:51,060 --> 00:12:59,640
Então, será uma tag ancorada com uma viagem igual a uma caixa registradora e nós vamos apenas adicionar inscrição

181
00:12:59,630 --> 00:13:01,060
dentro do texto.

182
00:13:01,080 --> 00:13:06,160
Então, agora, se iniciarmos o servidor, vamos limpar tudo isso fora do nó.

183
00:13:06,250 --> 00:13:11,880
Sim e o aplicativo visitante e vá para a página inicial.

184
00:13:11,880 --> 00:13:15,970
Agora temos um link de inscrição onde podemos inscrever-se.

185
00:13:16,110 --> 00:13:16,590
Ótimo.

186
00:13:16,670 --> 00:13:19,920
Então cobrimos tudo o que eu quero cobrir neste vídeo no próximo vídeo.

187
00:13:19,940 --> 00:13:21,700
Trabalharemos na funcionalidade de logon.
