1
00:00:00,670 --> 00:00:01,730
Olá e bem vindo de volta.

2
00:00:01,780 --> 00:00:06,900
Então, no último vídeo, fizemos o primeiro do nosso estilo CSI.

3
00:00:06,940 --> 00:00:12,040
Mas, na verdade, não vamos nos aprofundar nisso porque vamos usar uma estrutura que simplificará

4
00:00:12,040 --> 00:00:14,840
o processo de criação de estilos chamado Bootstrap.

5
00:00:15,190 --> 00:00:19,600
E, em vez disso, vamos tentar fazer um formulário fazer algo que esteja registrando um usuário.

6
00:00:19,900 --> 00:00:22,550
Então vamos para nossa App Store.

7
00:00:22,610 --> 00:00:23,360
Por quê.

8
00:00:23,830 --> 00:00:26,170
E defina um novo endpoint.

9
00:00:26,230 --> 00:00:30,920
Então, eu vou dizer apt root loggin barra.

10
00:00:31,350 --> 00:00:41,490
E agora esse logon vai fazer com que o conteúdo desse fórum receba o

11
00:00:41,490 --> 00:00:49,610
email e a senha e conecte o usuário se eles forem válidos.

12
00:00:49,680 --> 00:00:55,500
Lembre-se que temos que definir o método que recebemos quando esse endpoint é atingido.

13
00:00:55,990 --> 00:00:59,580
E nesse método de usuário de logon,

14
00:01:02,550 --> 00:01:12,580
vou dizer que o email é um e-mail de formulário de solicitação e terei que importar essa solicitação do frasco.

15
00:01:12,580 --> 00:01:13,390
Aqui vamos nós.

16
00:01:13,390 --> 00:01:17,470
E a senha é pedido, não forme uma senha.

17
00:01:17,570 --> 00:01:26,440
Agora e-mail e senha tem que ser os dois campos que estamos no formulário de logon, então

18
00:01:26,440 --> 00:01:27,340
vamos verificar.

19
00:01:27,660 --> 00:01:27,860
ESTÁ BEM.

20
00:01:27,860 --> 00:01:31,010
E-mail e senha estão aqui, mas são ID's.

21
00:01:31,060 --> 00:01:33,910
Então, ao invés de ID, nós também

22
00:01:36,990 --> 00:01:47,150
teremos que usar o nome e aqueles simplesmente para que possamos identificar e podemos associar esses valores a um nome de campo específico.

23
00:01:47,150 --> 00:01:54,270
Vamos voltar ao nosso apt IPY, por que fomos ao seu formulário de solicitação em um e-mail, então a solicitação é

24
00:01:54,270 --> 00:01:56,910
simplesmente algo que está chegando ao nosso aplicativo.

25
00:01:57,030 --> 00:02:05,980
Assim, o site vai fazer um pedido para um aplicativo e solicitar que o formulário envie alguns dados e

26
00:02:06,130 --> 00:02:13,720
os dados que o formulário envia no frasco está sempre dentro do pedido não formam o dicionário.

27
00:02:13,720 --> 00:02:18,880
Então agora nós temos aqui um dicionário que contém todos os dados dentro do

28
00:02:19,030 --> 00:02:24,040
formulário e nós vamos acessar o nome do email e o nome da senha.

29
00:02:24,050 --> 00:02:37,770
OK, então o que fazemos é se o usuário importar o login inválido com essa senha, então veremos o usuário não fazer logon ou então o que fazemos no final

30
00:02:38,050 --> 00:02:38,430
é

31
00:02:46,070 --> 00:02:56,640
retornar o modelo Renda como o perfil H. T. boca, por exemplo, não fizemos este

32
00:02:56,640 --> 00:02:57,430
site.

33
00:02:57,480 --> 00:03:00,410
Esta página ainda, mas vamos fazer isso.

34
00:03:00,530 --> 00:03:06,300
OK, para recapitular, recebemos o e-mail em um formulário e a senha também.

35
00:03:06,610 --> 00:03:11,410
E então estamos verificando se o logon é válido e se o login do usuário está sendo executado,

36
00:03:11,410 --> 00:03:15,580
mas isso define o email da sessão como o email do usuário e analisamos isso antes.

37
00:03:15,610 --> 00:03:23,220
E finalmente, uma vez que o e-mail da sessão é enviado, retornamos a leitura do modelo em circunstâncias normais, faríamos outra coisa se o

38
00:03:23,460 --> 00:03:28,650
logon não fosse válido, por exemplo, como o uso do logon era válido e redirecioná-lo para

39
00:03:28,650 --> 00:03:30,240
a página de login novamente.

40
00:03:30,360 --> 00:03:35,220
Mas, por simplicidade, vamos deixar isso como agora.

41
00:03:35,240 --> 00:03:43,760
Então, quando o usuário está bloqueado, queremos renderizar esse modelo e o que vamos fazer é dizer que

42
00:03:43,760 --> 00:03:50,810
queremos renderizar esse modelo, mas queremos executar o modelo com alguns dados provenientes do aplicativo.

43
00:03:50,810 --> 00:03:58,330
Então, vamos dizer que o email é uma sessão que você conhece e nós teremos que importar isso também.

44
00:04:01,200 --> 00:04:01,960
O que é isso.

45
00:04:02,030 --> 00:04:03,450
O que está acontecendo aqui.

46
00:04:03,450 --> 00:04:08,090
Estamos chamando o modelo de fornecedor como antes, mas agora estamos dando outra coisa também.

47
00:04:08,340 --> 00:04:11,260
Bem, nós não sabíamos que isso era uma coisa que você poderia fazer.

48
00:04:11,310 --> 00:04:15,960
Mas na verdade é e você pode dar uma função de template.

49
00:04:15,960 --> 00:04:18,210
Qualquer dado que você quiser.

50
00:04:18,210 --> 00:04:24,490
Então, podemos separar com vírgulas mais e mais dados que queremos passar este modelo.

51
00:04:24,510 --> 00:04:31,600
E agora isso significa que esse modelo aqui tem acesso a este e-mail e a uma variável dentro dele.

52
00:04:31,680 --> 00:04:33,930
E esse e-mail que contém as sessões.

53
00:04:33,950 --> 00:04:36,070
E-mail OK.

54
00:04:36,090 --> 00:04:37,190
Então isso foi confuso o suficiente.

55
00:04:37,200 --> 00:04:39,620
Então, vamos criar nosso modelo de perfil e

56
00:04:44,000 --> 00:04:48,460
percebemos como o outono eu vou entrar no logon e selecionar tudo e copiar

57
00:04:48,460 --> 00:04:49,460
isso e substituí-lo.

58
00:04:49,700 --> 00:04:51,610
E agora, em vez de um formulário.

59
00:04:51,610 --> 00:05:04,090
É claro que queremos ver algo como um ódio a Santror ou um olá e depois mandar um e-mail para OK, então hetero é o maior

60
00:05:04,110 --> 00:05:07,410
hetero que você pode receber pelo correio.

61
00:05:07,620 --> 00:05:09,810
É essencialmente um grande título.

62
00:05:10,350 --> 00:05:15,420
E eles iam dizer olá e então dentro desses dois chaves vamos colocar aquela

63
00:05:15,420 --> 00:05:19,960
variável do Ginger que é e-mail e essa variável foi passada aqui.

64
00:05:21,090 --> 00:05:26,090
E isso deve conter o email da sessão quando o usuário tiver bloqueado o OK.

65
00:05:26,100 --> 00:05:28,180
Mas agora não temos usuários em nosso banco de dados.

66
00:05:28,260 --> 00:05:30,740
Então temos que fazer isso primeiro.

67
00:05:30,760 --> 00:05:38,470
Então, a primeira coisa a fazer é ir até o meu terminal e dizer que os usuários D-B me permitem verificar qual é

68
00:05:39,010 --> 00:05:39,870
a seleção correta.

69
00:05:39,940 --> 00:05:51,330
Faça ou use ou insira e vou inserir um e-mail é teste de teste ou chamado de senha só vai

70
00:05:51,330 --> 00:05:53,920
ser senha e pronto.

71
00:05:55,060 --> 00:05:59,620
Então inserimos isso e temos o e-mail e a senha.

72
00:05:59,620 --> 00:06:03,670
Então vamos voltar ao nosso apt em P Y e ver o que acontece.

73
00:06:04,360 --> 00:06:09,540
Então, a primeira coisa a fazer é executar novamente o aplicativo, porque alteramos o ponto final aqui.

74
00:06:10,910 --> 00:06:12,950
Então, vamos repetir isso.

75
00:06:12,950 --> 00:06:20,820
Vá para o Google Chrome atualizar esse teste que testar dot com senha e hurrah.

76
00:06:20,930 --> 00:06:24,390
Nós temos nossos dados aqui no URL.

77
00:06:24,620 --> 00:06:30,560
Portanto, o formulário está pensando em enviar dados para ele e esse é o comportamento padrão do formulário.

78
00:06:30,560 --> 00:06:31,640
Então nós queremos contar.

79
00:06:31,940 --> 00:06:36,560
Nenhum formulário realmente você tem que enviar dados para um lugar diferente que é o que os dados são esperados.

80
00:06:36,570 --> 00:06:43,530
Então, vamos voltar e imaginar o Pancham indo ao fórum do loggin e dizer que a ação é

81
00:06:43,530 --> 00:06:48,640
o log de slash e, em seguida, ele enviará os dados para esta página.

82
00:06:48,650 --> 00:06:54,230
Então, quando fazemos isso, na verdade, vamos conseguir uma pequena área.

83
00:06:54,560 --> 00:06:58,050
Então vamos lá atualizar esse tipo novamente.

84
00:07:01,090 --> 00:07:03,040
E nós recebemos um pedido ruim.

85
00:07:03,040 --> 00:07:05,860
Então, por que recebemos um pedido ruim?

86
00:07:06,250 --> 00:07:14,670
A verdade é que estamos enviando o poço mesmo sem nos preocuparmos com a má solicitação, realmente temos um

87
00:07:14,670 --> 00:07:20,510
problema maior do que a má solicitação, mas acontece que resolver esse problema

88
00:07:20,550 --> 00:07:22,200
resolve bem os solicitantes.

89
00:07:22,410 --> 00:07:27,140
Nós temos o problema que estamos enviando uma senha aqui e com o que você está fora.

90
00:07:27,420 --> 00:07:30,660
E esta é provavelmente a coisa menos segura que você pode fazer.

91
00:07:30,660 --> 00:07:36,870
Esta é a coisa mais insegura que você pode fazer na Internet, que é

92
00:07:37,080 --> 00:07:48,540
enviar a senha não criptografada como texto simples na URL, então acontece que esses dados de formulário como ATM devem ser enviados assim então eles

93
00:07:48,540 --> 00:07:58,630
devem ser enviados escondidos para acessar o discurso enviando os dados de uma maneira diferente para que fique um pouco mais seguro.

94
00:07:58,870 --> 00:08:04,630
E a maneira como fazemos isso é usar uma solicitação de postagem em vez de uma solicitação de obtenção.

95
00:08:04,670 --> 00:08:15,860
Então, se dissermos que o método é postado no formulário e, em seguida, entramos no aplicativo Y e dizemos métodos métodos, um tipo

96
00:08:17,000 --> 00:08:26,510
de matriz de postagens de lista e isso significa que estamos aceitando somente solicitações de postagem sobre esse ponto final.

97
00:08:26,530 --> 00:08:32,560
Você pode ver que isso é postado e, em seguida, aceitaríamos receber e postar, mas nem mesmo aceitamos postagens porque

98
00:08:32,560 --> 00:08:35,160
o fórum está enviando mensagens apenas no momento.

99
00:08:36,930 --> 00:08:41,510
OK e depois voltaremos para o formulário e tentaremos novamente.

100
00:08:45,680 --> 00:08:45,940
ESTÁ BEM.

101
00:08:45,960 --> 00:08:47,070
Então eu fiz alguma coisa.

102
00:08:47,390 --> 00:08:51,800
Mas estamos chegando na área de não-tempo e não estamos assinando vontade e isso significa

103
00:08:51,860 --> 00:08:55,830
que nós tentamos acessar algo como se fosse um dicionário, mas não era nenhum.

104
00:08:55,910 --> 00:09:02,960
E, de fato, se entrarmos aqui, podemos ver que estamos tentando encontrar um de nossa eleição de índice de banco de dados, mas

105
00:09:03,650 --> 00:09:08,720
ele diz que nenhum tipo é tão roteirizado, o que significa que dados não são dados

106
00:09:08,720 --> 00:09:11,140
que não foram nulos ou foram realmente aplicados.

107
00:09:11,170 --> 00:09:15,950
Então, temos que inicializar um banco de dados, basicamente é isso que isso está nos dizendo e, na verdade, não o fizemos.

108
00:09:16,090 --> 00:09:18,100
Então devemos fazer isso.

109
00:09:18,100 --> 00:09:20,820
Devemos inicializar o banco de dados.

110
00:09:21,050 --> 00:09:23,260
Então, digamos que o banco de dados inicializado.

111
00:09:23,260 --> 00:09:32,180
Então nós definimos um novo método chamado initialize database e o que isto fará é dizer que o banco

112
00:09:32,210 --> 00:09:36,300
de dados não importa a base de dados inicializada.

113
00:09:36,300 --> 00:09:42,240
Então, quando chamamos esses dados inicializados, o que queremos chamar antes de fazer uma solicitação ao nosso aplicativo para

114
00:09:42,240 --> 00:09:45,140
que possamos ter acesso ao banco de dados corretamente.

115
00:09:45,480 --> 00:09:48,330
Bem, felizmente, o frasco tem algo assim.

116
00:09:49,610 --> 00:09:59,510
Qual é esse outro decorador no ponto de aplicativo antes da primeira solicitação, ele executará esse método antes da

117
00:09:59,510 --> 00:10:00,670
primeira solicitação.

118
00:10:00,680 --> 00:10:05,240
Então, basicamente, quando o registro, mas antes de efetuar login, for inicializar a base do banco de dados

119
00:10:05,230 --> 00:10:10,150
e, em seguida, se fizermos login novamente, o banco de dados já terá sido inicializado e não seremos reinicializados.

120
00:10:10,640 --> 00:10:15,060
OK, vamos reiniciar o aplicativo e tentar uma última vez,

121
00:10:21,780 --> 00:10:22,440
OK.

122
00:10:22,810 --> 00:10:25,510
A sessão não está disponível porque nenhuma chave secreta foi configurada.

123
00:10:26,470 --> 00:10:31,770
Então, temos que definir uma chave secreta e qual é a chave secreta que você pode perguntar.

124
00:10:31,900 --> 00:10:38,740
E a chave realmente secreta é simplesmente algo que o frasco usa para garantir que os dados

125
00:10:38,740 --> 00:10:46,650
que estamos enviando ao usuário na forma de um cookie e que expliquemos resumidamente o que estava no ar

126
00:10:48,430 --> 00:10:50,910
quando analisamos a sessão são seguros.

127
00:10:51,160 --> 00:10:55,450
Então, precisamos definir uma chave secreta segura aqui.

128
00:10:55,570 --> 00:10:59,790
Então fazemos isso com chave secreta e podemos configurá-lo para o que quisermos.

129
00:10:59,800 --> 00:11:03,110
Então, agora eu não vou defini-lo para um muito seguro.

130
00:11:03,130 --> 00:11:08,250
No entanto, se você estiver usando isso na internet, você deve configurá-lo para um OK seguro.

131
00:11:08,290 --> 00:11:10,140
Vamos tentar uma última vez e ver o que acontece.

132
00:11:15,820 --> 00:11:16,410
Tudo bem.

133
00:11:16,420 --> 00:11:19,500
Então agora nós entramos finalmente.

134
00:11:19,630 --> 00:11:25,990
Então, como você pode ver, esse é o processo exato pelo qual todos os programas passam quando estão fazendo

135
00:11:25,990 --> 00:11:30,580
seus aplicativos, para que ninguém saiba exatamente o que fazer todas as vezes.

136
00:11:30,580 --> 00:11:36,880
Mas você lê o feedback que o aplicativo lhe dá e reage a ele.

137
00:11:36,890 --> 00:11:41,720
Então, tivemos alguns problemas ao longo do caminho, mas eles eram todos solucionáveis ​​contanto que você o

138
00:11:41,720 --> 00:11:45,230
lesse e tentasse entender melhor o computador tentando se comunicar com você.

139
00:11:45,260 --> 00:11:49,120
Acontece que não faz isso muito bem na maior parte do tempo, mas tenta.

140
00:11:49,700 --> 00:11:57,030
E agora nós finalmente conseguimos fazer o logon OK, então o que acontece se nós logarmos com um usuário e ele não existir?

141
00:12:00,710 --> 00:12:03,750
Acontece que nós ainda entendemos isso e por quê.

142
00:12:03,860 --> 00:12:08,410
Porque a sessão já existe para este navegador.

143
00:12:08,480 --> 00:12:15,670
Então, o Google Chrome no meu laptop já tem o cookie que informa o balão que estou logado.

144
00:12:15,830 --> 00:12:22,340
Então, quando eu acesso esta página, vejo que meu nome de usuário está errado, mas não faz nada.

145
00:12:22,340 --> 00:12:25,860
Então, ainda parece para mim e como o usuário que já estava logado antes.

146
00:12:26,210 --> 00:12:39,550
Então, o que queremos fazer é se o logon dos usuários não é válido, então digamos que o email da sessão não é e, claro, queremos colocar isso em outro

147
00:12:39,550 --> 00:12:44,560
lugar, porque isso não acontecerá sempre e nós não queremos isso.

148
00:12:44,560 --> 00:12:50,710
Portanto, se os usuários efetuarem login como válidos, bloqueá-los e não tiverem definido o e-mail da sessão

149
00:12:50,710 --> 00:12:55,150
para eles, teremos que resolver o aplicativo e entrar no login novamente.

150
00:12:55,150 --> 00:13:00,010
E agora vou fazer o login novamente como um usuário incorreto e agora diz olá.

151
00:13:01,090 --> 00:13:07,450
Então, evidentemente, isso não é ideal, mas agora podemos contornar isso.

152
00:13:07,570 --> 00:13:08,820
Então esse é um problema separado.

153
00:13:08,890 --> 00:13:12,080
Mas o que fazer quando o nome de usuário está errado.

154
00:13:12,310 --> 00:13:17,450
Qual seria para onsets o email redirecioná-los para a página de logon.

155
00:13:17,470 --> 00:13:21,040
Mostre a eles uma seta dizendo que seu e-mail estava errado. Tente entrar novamente, por favor.

156
00:13:21,220 --> 00:13:22,220
Isso seria o que fazer.

157
00:13:23,780 --> 00:13:24,410
ESTÁ BEM.

158
00:13:24,720 --> 00:13:33,100
Portanto, um longo vídeo descrevendo um fim para o fim da funcionalidade alteramos o formulário de logon para garantir que ele esteja enviando dados como

159
00:13:33,100 --> 00:13:36,170
uma postagem, o que é um pouco mais seguro.

160
00:13:36,310 --> 00:13:45,910
Alteramos o login para garantir que ele tenha postado e adicionamos esses detalhes de registro para solicitar dados

161
00:13:46,090 --> 00:13:48,490
de formulário enviados do formulário.

162
00:13:48,490 --> 00:13:52,990
Verificamos se o login dos usuários é válido e, em seguida, os bloqueamos, o que significa

163
00:13:52,990 --> 00:13:54,490
configurar o email na sessão.

164
00:13:54,490 --> 00:13:59,720
E então, garantimos que duas pessoas não pesquisadas tivessem acesso à conta de outra pessoa.

165
00:13:59,720 --> 00:14:06,550
E se o nome de usuário estiver errado e finalmente renderizamos o template html profile passando alguns

166
00:14:06,550 --> 00:14:09,540
dados aqui que é o email do usuário.

167
00:14:09,610 --> 00:14:15,010
Então, muitas coisas aconteceram neste vídeo e este é um dos primeiros a acabar com as implementações

168
00:14:15,070 --> 00:14:19,460
de funcionalidade neste aplicativo, então espero que você não tenha achado isso tão grande.

169
00:14:20,140 --> 00:14:24,340
Mas é claro que você é bem vindo para fazer perguntas e eu tentarei ajudá-lo

170
00:14:24,340 --> 00:14:25,470
o melhor que puder.

171
00:14:25,600 --> 00:14:31,130
Mas se tudo estiver OK, então estaremos nos movendo e permitindo que os usuários se registrem.

172
00:14:31,150 --> 00:14:32,430
Então eu vejo você no próximo vídeo.
