﻿1
00:00:00,960 --> 00:00:03,130
‫-: Então, nos últimos vídeos,

2
00:00:03,130 --> 00:00:06,220
‫permitimos que um usuário redefinisse sua senha e,

3
00:00:06,220 --> 00:00:08,070
‫em seguida, criasse uma

4
00:00:08,070 --> 00:00:09,910
‫nova, mas agora

5
00:00:09,910 --> 00:00:13,383
‫também queremos permitir que um usuário logado simplesmente atualize

6
00:00:13,383 --> 00:00:15,740
‫sua senha sem ter que esquecê-la,

7
00:00:15,740 --> 00:00:18,880
‫e assim sem todo aquele processo de reinicialização.

8
00:00:18,880 --> 00:00:20,833
‫Então, vamos construir isso agora.

9
00:00:22,620 --> 00:00:23,810
‫E, assim como

10
00:00:23,810 --> 00:00:26,413
‫antes, vamos fazer isso em nosso controlador de autenticação.

11
00:00:28,420 --> 00:00:30,523
‫Portanto, exporte. Atualizar senha.

12
00:00:35,142 --> 00:00:38,940
‫Tudo bem, e assim, como sempre,

13
00:00:38,940 --> 00:00:43,940
‫nossos três parâmetros de Middleware aqui, e tudo bem.

14
00:00:44,380 --> 00:00:48,250
‫Agora lembre-se que esta funcionalidade de atualização de senha

15
00:00:48,250 --> 00:00:50,260
‫é apenas para usuários logados,

16
00:00:50,260 --> 00:00:54,290
‫mas ainda precisamos que o usuário passe sua senha atual,

17
00:00:54,290 --> 00:00:55,920
‫para confirmar se

18
00:00:55,920 --> 00:00:58,990
‫o usuário realmente é quem diz ser.

19
00:00:58,990 --> 00:01:01,260
‫Portanto, apenas como medida de segurança,

20
00:01:01,260 --> 00:01:04,950
‫pois imagine que alguém encontraria seu computador aberto e, em seguida,

21
00:01:04,950 --> 00:01:08,150
‫seria capaz de alterar as senhas dos sites que

22
00:01:08,150 --> 00:01:09,530
‫você abriu atualmente

23
00:01:09,530 --> 00:01:12,610
‫sem ser solicitado a inserir uma senha novamente.

24
00:01:12,610 --> 00:01:15,300
‫E isso basicamente desconectaria você

25
00:01:15,300 --> 00:01:18,260
‫de todos os seus aplicativos existentes, o

26
00:01:18,260 --> 00:01:21,000
‫que, é claro, seria uma experiência terrível.

27
00:01:21,000 --> 00:01:23,800
‫E por isso, como medida de segurança,

28
00:01:23,800 --> 00:01:27,800
‫sempre precisamos pedir a senha atual antes de atualizá-la, tudo bem.

29
00:01:27,800 --> 00:01:30,530
‫E, com isso em mente, vamos definir

30
00:01:30,530 --> 00:01:32,760
‫todas as etapas que

31
00:01:32,760 --> 00:01:36,030
‫precisamos seguir para implementar essa funcionalidade como antes.

32
00:01:36,030 --> 00:01:39,530
‫Então, primeiro, precisamos tirar o usuário

33
00:01:39,530 --> 00:01:41,903
‫da coleção, basicamente.

34
00:01:44,840 --> 00:01:47,480
‫Em segundo lugar, precisamos verificar

35
00:01:47,480 --> 00:01:50,263
‫se a senha postada está correta.

36
00:01:56,430 --> 00:01:57,880
‫Direito.

37
00:01:57,880 --> 00:02:01,800
‫Em terceiro lugar, se a senha estiver

38
00:02:01,800 --> 00:02:04,623
‫correta, atualize a senha.

39
00:02:07,170 --> 00:02:11,013
‫E, finalmente, precisamos fazer o login do usuário

40
00:02:12,180 --> 00:02:16,610
‫novamente, basicamente para enviar o jsonwebtoken de volta ao usuário, agora

41
00:02:16,610 --> 00:02:20,860
‫conectado com a nova senha que acabou de ser atualizada.

42
00:02:20,860 --> 00:02:23,860
‫Ok, e isso é muito parecido com o

43
00:02:23,860 --> 00:02:25,510
‫que já fizemos

44
00:02:25,510 --> 00:02:27,370
‫antes, então estou deixando este

45
00:02:27,370 --> 00:02:29,430
‫para você como um desafio, ok?

46
00:02:29,430 --> 00:02:32,660
‫Então, por favor, tente ir em frente e implementar isso por conta

47
00:02:32,660 --> 00:02:35,313
‫própria e, se precisar, você pode, é claro, dar

48
00:02:35,313 --> 00:02:36,800
‫uma olhada no código

49
00:02:36,800 --> 00:02:39,440
‫que escrevemos antes, mas realmente tente escrever o código

50
00:02:39,440 --> 00:02:41,720
‫por conta própria, sem copiar muito, ok ?

51
00:02:41,720 --> 00:02:44,140
‫Portanto, você pode dar uma olhada no resto

52
00:02:44,140 --> 00:02:47,680
‫do código para ver como funciona, mas não o copie realmente, certo?

53
00:02:47,680 --> 00:02:50,610
‫Porque então você realmente não vai aprender, certo.

54
00:02:50,610 --> 00:02:52,900
‫Então, pause o vídeo aqui, e eu te vejo em

55
00:02:52,900 --> 00:02:54,083
‫um segundo com minha solução.

56
00:02:57,510 --> 00:03:00,450
‫Ok, então espero que você tenha conseguido implementar

57
00:03:00,450 --> 00:03:03,533
‫isso e fazer funcionar, é assim que eu fiz.

58
00:03:04,960 --> 00:03:08,963
‫Então, como sempre, criamos uma nova variável de usuário, e nela

59
00:03:09,970 --> 00:03:14,353
‫aguardamos o resultado de fazer User. findById, e agora

60
00:03:17,930 --> 00:03:20,940
‫de onde esse ID realmente vem?

61
00:03:20,940 --> 00:03:24,590
‫Bem, lembre-se novamente que esta senha de atualização é

62
00:03:24,590 --> 00:03:27,710
‫apenas para autenticados, portanto, para usuários logados, portanto,

63
00:03:27,710 --> 00:03:30,830
‫neste ponto, já teremos o usuário atual

64
00:03:30,830 --> 00:03:33,123
‫em nosso objeto de solicitação.

65
00:03:34,380 --> 00:03:37,273
‫Ok, então isso está vindo do Middleware protegido.

66
00:03:38,640 --> 00:03:42,670
‫Então, req. do utilizador. id e

67
00:03:42,670 --> 00:03:46,933
‫lembre-se de que precisamos pedir explicitamente a senha, certo?

68
00:03:48,830 --> 00:03:53,260
‫Porque, por padrão, não é incluído na saída.

69
00:03:53,260 --> 00:03:55,883
‫Então, nós definimos isso no esquema, lembra?

70
00:03:56,860 --> 00:03:58,730
‫E, na verdade precisamos dessa

71
00:03:58,730 --> 00:04:01,860
‫senha porque agora queremos compará-la com aquela que

72
00:04:01,860 --> 00:04:03,690
‫está armazenada no banco de

73
00:04:03,690 --> 00:04:05,300
‫dados e, para

74
00:04:05,300 --> 00:04:08,850
‫isso, como antes, usaremos este objeto de instância que

75
00:04:08,850 --> 00:04:10,720
‫temos em algum lugar aqui.

76
00:04:10,720 --> 00:04:13,360
‫Sim, corrija a senha, que está disponível em

77
00:04:13,360 --> 00:04:15,250
‫todos os documentos do

78
00:04:15,250 --> 00:04:17,680
‫usuário, por isso leva primeiro a senha

79
00:04:17,680 --> 00:04:21,850
‫do candidato e, em seguida, a senha do usuário real, tudo bem.

80
00:04:21,850 --> 00:04:23,370
‫Ah, e agora ele

81
00:04:23,370 --> 00:04:26,120
‫está me apresentando este erro porque, é claro, eu ainda

82
00:04:26,120 --> 00:04:28,203
‫não declarei isso como uma função assíncrona.

83
00:04:29,610 --> 00:04:32,534
‫Então, assíncrono, e antes de

84
00:04:32,534 --> 00:04:36,577
‫esquecermos, vamos envolvê-lo na função catchAsync aqui também.

85
00:04:38,589 --> 00:04:40,513
‫De qualquer forma, como

86
00:04:40,513 --> 00:04:43,157
‫antes, basicamente queremos criar um erro aqui

87
00:04:43,157 --> 00:04:46,402
‫se a senha atual não estiver correta, então,

88
00:04:46,402 --> 00:04:48,572
‫vamos escrever isso em código.

89
00:04:48,572 --> 00:04:51,239
‫Então, se não for usuário. correctPassword, e

90
00:04:53,870 --> 00:04:56,283
‫então a senha candidata

91
00:04:56,283 --> 00:04:58,808
‫lembre-se, e então essa ficará

92
00:04:58,808 --> 00:05:03,808
‫em um corpo, em uma propriedade que chamaremos de passwordConfirm.

93
00:05:03,980 --> 00:05:07,941
‫Ok, e então como um segundo argumento a senha real, então

94
00:05:07,941 --> 00:05:10,108
‫é um usuário. senha.

95
00:05:11,036 --> 00:05:13,820
‫E então, lembre-se de que esta é uma função

96
00:05:13,820 --> 00:05:16,323
‫assíncrona e, portanto, também precisamos aguardá-la aqui.

97
00:05:18,400 --> 00:05:22,173
‫Bom, então caso a senha não esteja correta,

98
00:05:24,020 --> 00:05:27,500
‫como sempre, criamos um novo erro aqui.

99
00:05:27,500 --> 00:05:32,000
‫Então, novo AppError, e desta vez estamos

100
00:05:32,930 --> 00:05:37,930
‫dizendo que sua senha atual está errada e

101
00:05:38,720 --> 00:05:43,660
‫o código de status 401 para não autorizado.

102
00:05:43,660 --> 00:05:45,650
‫Certo, ótimo.

103
00:05:45,650 --> 00:05:48,240
‫Agora, se chegarmos a este ponto

104
00:05:48,240 --> 00:05:51,750
‫no código, então, basicamente, se a senha também estiver

105
00:05:51,750 --> 00:05:54,460
‫correta, então podemos realmente atualizar a senha,

106
00:05:54,460 --> 00:05:56,400
‫e como fazemos isso?

107
00:05:56,400 --> 00:05:58,763
‫Bem, muito simples, já fizemos isso antes.

108
00:05:59,630 --> 00:06:04,630
‫Tudo o que dizemos é usuário. a senha é igual a req. corpo. senha e, em

109
00:06:08,200 --> 00:06:11,793
‫seguida, o mesmo, é claro, para a confirmação da senha.

110
00:06:14,010 --> 00:06:17,560
‫Ok, e a validação será feita automaticamente pelo

111
00:06:17,560 --> 00:06:21,300
‫validador que especificamos no esquema, e isso será feito

112
00:06:21,300 --> 00:06:23,823
‫assim que realmente salvá-lo.

113
00:06:24,690 --> 00:06:29,280
‫Portanto, aguardamos o usuário. salvar, e dessa

114
00:06:29,280 --> 00:06:32,400
‫vez não desligamos a validação porque,

115
00:06:32,400 --> 00:06:35,920
‫claro, queremos que a validação aconteça, então,

116
00:06:35,920 --> 00:06:39,120
‫como eu disse antes, queremos verificar

117
00:06:39,120 --> 00:06:42,010
‫se a senha de confirmação é

118
00:06:42,010 --> 00:06:44,560
‫realmente igual à senha, certo?

119
00:06:44,560 --> 00:06:45,570
‫Boa.

120
00:06:45,570 --> 00:06:49,460
‫E, agora, apenas para ter certeza de que você entendeu por que

121
00:06:49,460 --> 00:06:53,533
‫não fizemos algo como o usuário. findByIdAndUpdate.

122
00:06:56,530 --> 00:06:59,260
‫Então, por que não fizemos assim?

123
00:06:59,260 --> 00:07:02,450
‫E, eu sei que já falei sobre isso muitas vezes

124
00:07:02,450 --> 00:07:05,330
‫antes, mas quero que você entenda cem por cento

125
00:07:05,330 --> 00:07:07,990
‫por que não podemos usar esta atualização, e

126
00:07:07,990 --> 00:07:09,540
‫é por duas

127
00:07:09,540 --> 00:07:12,143
‫razões, então deixe-me voltar ao nosso modelo.

128
00:07:13,090 --> 00:07:14,650
‫Então, a primeira

129
00:07:14,650 --> 00:07:18,920
‫é que essa validação aqui não vai funcionar, ok?

130
00:07:18,920 --> 00:07:22,670
‫E isso é basicamente porque isso. a senha não

131
00:07:22,670 --> 00:07:27,420
‫é definida quando atualizamos, então quando usamos find by ID e update,

132
00:07:27,420 --> 00:07:29,440
‫porque internamente, nos bastidores, o

133
00:07:29,440 --> 00:07:33,200
‫Mongoose realmente não mantém o objeto atual na memória

134
00:07:33,200 --> 00:07:36,230
‫e, portanto, isso aqui não vai funcionar.

135
00:07:36,230 --> 00:07:39,130
‫E, como eu disse, já falei

136
00:07:39,130 --> 00:07:42,650
‫sobre isso antes, então está escrito aqui também, ok?

137
00:07:42,650 --> 00:07:45,600
‫Mas é muito importante ter em mente

138
00:07:45,600 --> 00:07:49,340
‫que não devemos usar update para nada relacionado a senhas, certo?

139
00:07:49,340 --> 00:07:51,160
‫Então, este não

140
00:07:51,160 --> 00:07:53,640
‫vai funcionar, e também, esses

141
00:07:53,640 --> 00:07:56,510
‫dois Middlewares pré-salvos também não vão funcionar.

142
00:07:56,510 --> 00:07:59,820
‫Então, se usássemos simplesmente update para atualizar

143
00:07:59,820 --> 00:08:03,000
‫a senha, então essa senha não seria

144
00:08:03,000 --> 00:08:04,750
‫criptografada, que é

145
00:08:04,750 --> 00:08:07,530
‫esse primeiro Middleware, e depois também,

146
00:08:07,530 --> 00:08:11,030
‫o timestamp passwordChangedAt também não seria definido, ok?

147
00:08:11,030 --> 00:08:12,830
‫Então, nada disso

148
00:08:12,830 --> 00:08:15,943
‫funcionaria e, novamente, realmente precisamos fazer assim.

149
00:08:17,470 --> 00:08:19,020
‫Vamos apenas colocar isso aqui novamente.

150
00:08:21,330 --> 00:08:24,430
‫E agora, (resmunga), conectamos o usuário e

151
00:08:24,430 --> 00:08:27,840
‫enviamos o token de volta para o cliente.

152
00:08:27,840 --> 00:08:30,210
‫Agora, essa seria na verdade a quarta

153
00:08:30,210 --> 00:08:32,320
‫vez que fizemos o mesmo código,

154
00:08:32,320 --> 00:08:34,190
‫então basicamente esse trecho de

155
00:08:34,190 --> 00:08:36,710
‫código, e então, agora refatoramos muito rapidamente

156
00:08:36,710 --> 00:08:38,410
‫em sua própria função.

157
00:08:38,410 --> 00:08:42,410
‫Agora, esse código na verdade não é o mesmo em todos os lugares.

158
00:08:42,410 --> 00:08:45,090
‫Então, aqui enviamos o código de status

159
00:08:45,090 --> 00:08:47,250
‫400, e não enviamos

160
00:08:47,250 --> 00:08:51,280
‫o usuário, mas aqui no gerenciador de inscrição, na verdade temos

161
00:08:51,280 --> 00:08:53,680
‫um código de status diferente e

162
00:08:53,680 --> 00:08:56,900
‫também enviamos o usuário para o cliente, certo?

163
00:08:56,900 --> 00:08:59,873
‫E então, vamos fazer nossa função realmente manter isso em mente.

164
00:09:00,890 --> 00:09:05,890
‫Então, vamos criar uma função aqui, criar e enviar token,

165
00:09:06,140 --> 00:09:09,293
‫e então os argumentos de que

166
00:09:11,100 --> 00:09:14,350
‫precisamos aqui são o usuário, porque é

167
00:09:14,350 --> 00:09:17,070
‫onde o ID está armazenado.

168
00:09:17,070 --> 00:09:18,893
‫Então, também queremos o

169
00:09:20,220 --> 00:09:24,060
‫código de status e, é claro, precisamos ter acesso ao

170
00:09:24,060 --> 00:09:26,940
‫objeto de resposta para poder enviar uma

171
00:09:26,940 --> 00:09:29,510
‫resposta de volta ao cliente, certo?

172
00:09:29,510 --> 00:09:32,473
‫E então, basicamente agora o que precisamos é desse código.

173
00:09:33,775 --> 00:09:35,930
‫Então, vamos copiá-lo, colocá-lo aqui

174
00:09:35,930 --> 00:09:38,700
‫e, em seguida, substituir as variáveis irrelevantes.

175
00:09:38,700 --> 00:09:42,480
‫Então, o usuário é simplesmente chamado de usuário, então

176
00:09:42,480 --> 00:09:44,963
‫assim, e aqui, o mesmo.

177
00:09:46,470 --> 00:09:47,510
‫Então, não

178
00:09:47,510 --> 00:09:51,150
‫é um novo usuário, e aqui nós substituímos isso pelo

179
00:09:51,150 --> 00:09:54,440
‫código de status, então aquele que está entrando em nossa

180
00:09:54,440 --> 00:09:57,053
‫função, e acho que é realmente isso.

181
00:09:58,330 --> 00:10:01,070
‫Então, vamos agora substituí-lo, então createSendToken, e

182
00:10:01,070 --> 00:10:06,070
‫aqui o usuário é chamado de newUser, o código de status é

183
00:10:09,040 --> 00:10:10,763
‫201 e, em

184
00:10:12,260 --> 00:10:15,093
‫seguida, é claro, o objeto de resposta.

185
00:10:16,730 --> 00:10:19,223
‫Ok, agora podemos nos livrar deste código e

186
00:10:20,680 --> 00:10:21,863
‫vamos apenas copiá-lo.

187
00:10:23,200 --> 00:10:26,903
‫Certo, no log-in, é claro, também enviamos um token, mas desta

188
00:10:28,860 --> 00:10:32,630
‫vez o usuário é realmente chamado de usuário e o código

189
00:10:32,630 --> 00:10:34,243
‫de status é 200.

190
00:10:38,470 --> 00:10:39,920
‫E agora, vamos copiar este.

191
00:10:42,210 --> 00:10:45,853
‫Então, o próximo deve estar aqui, e redefinir a senha,

192
00:10:46,930 --> 00:10:48,400
‫e aqui é

193
00:10:48,400 --> 00:10:51,323
‫realmente o mesmo, então o nome é usuário

194
00:10:53,740 --> 00:10:57,550
‫e código 200, e agora, finalmente, aqui também é o mesmo.

195
00:10:57,550 --> 00:11:02,360
‫E assim, isso conclui nossa função de atualização de senha.

196
00:11:02,360 --> 00:11:03,740
‫Agora, para fazer isso funcionar,

197
00:11:03,740 --> 00:11:06,830
‫é claro que precisamos implementar a rota aqui também em nosso

198
00:11:06,830 --> 00:11:08,033
‫roteador de usuário.

199
00:11:09,900 --> 00:11:14,400
‫Então, roteador. patch, e faremos um patch

200
00:11:14,400 --> 00:11:17,610
‫porque na verdade estamos mudando, então estamos manipulando o

201
00:11:17,610 --> 00:11:21,460
‫documento do usuário e é para isso que serve o patch.

202
00:11:21,460 --> 00:11:24,590
‫E a rota é chamada updateMyPassword.

203
00:11:29,060 --> 00:11:30,630
‫Então, minha senha,

204
00:11:30,630 --> 00:11:34,420
‫porque é para o usuário conectado no momento, e lembre-se,

205
00:11:34,420 --> 00:11:36,810
‫novamente, isso só funciona para usuários

206
00:11:36,810 --> 00:11:41,770
‫logados e, portanto, precisamos usar authController. proteger, que também colocará o

207
00:11:41,770 --> 00:11:44,240
‫objeto de usuário

208
00:11:44,240 --> 00:11:47,270
‫em um objeto de solicitação, certo?

209
00:11:47,270 --> 00:11:51,593
‫Então, proteja e então authController atualize a

210
00:11:51,593 --> 00:11:55,640
‫senha que acabamos de criar.

211
00:11:55,640 --> 00:11:59,593
‫E então, vamos prosseguir e testar isso, ok?

212
00:12:02,720 --> 00:12:05,763
‫Então, vamos copiar essa rota aqui, então

213
00:12:08,080 --> 00:12:09,790
‫UpdateMyPassword, e agora o

214
00:12:14,300 --> 00:12:18,190
‫que precisamos enviar no corpo são essas três senhas

215
00:12:18,190 --> 00:12:20,103
‫na verdade, então é

216
00:12:21,290 --> 00:12:24,817
‫basicamente a passwordCurrent, e por enquanto estou deixando-as vazias,

217
00:12:30,350 --> 00:12:32,050
‫eu simplesmente quero

218
00:12:32,050 --> 00:12:35,000
‫colocar o campo nomes aqui por enquanto.

219
00:12:35,000 --> 00:12:38,750
‫Então, passwordCurrent, então apenas password, que é basicamente

220
00:12:38,750 --> 00:12:40,503
‫a nova,

221
00:12:41,690 --> 00:12:44,110
‫e então, é claro, passwordConfirm.

222
00:12:46,930 --> 00:12:50,320
‫Ok, e agora precisamos realmente fazer o login como

223
00:12:50,320 --> 00:12:53,140
‫um usuário, porque lembre-se, isso só funciona

224
00:12:53,140 --> 00:12:56,250
‫se o usuário já estiver conectado, tudo bem.

225
00:12:56,250 --> 00:12:59,333
‫E então, vamos realmente fazer isso com o administrador aqui.

226
00:13:00,633 --> 00:13:04,620
‫E aqui está, ainda deve ser a senha atual

227
00:13:04,620 --> 00:13:07,610
‫e, de fato, agora estamos logados.

228
00:13:07,610 --> 00:13:10,520
‫E lembre-se de que esse token agora

229
00:13:10,520 --> 00:13:13,313
‫é armazenado na variável de

230
00:13:14,240 --> 00:13:17,080
‫ambiente JWT e, portanto, aqui, para

231
00:13:17,080 --> 00:13:20,400
‫autenticar, vamos usá-lo exatamente como fizemos antes.

232
00:13:20,400 --> 00:13:24,710
‫Portanto, nesta guia de autorização, selecionamos Bearer Token e,

233
00:13:24,710 --> 00:13:27,480
‫em seguida, ele pré-preencherá automaticamente

234
00:13:27,480 --> 00:13:29,293
‫essa variável JWT.

235
00:13:30,140 --> 00:13:32,830
‫Certo, então é daí que

236
00:13:32,830 --> 00:13:35,873
‫realmente virá o ID do usuário, lembra?

237
00:13:37,830 --> 00:13:42,830
‫De qualquer forma, vamos agora especificar a senha atual, então pass1234, e

238
00:13:42,999 --> 00:13:45,613
‫então vamos dizer nova senha, ok?

239
00:13:49,040 --> 00:13:50,713
‫Copie e cole

240
00:13:51,560 --> 00:13:54,170
‫aqui, mas, na verdade, quero começar

241
00:13:54,170 --> 00:13:56,960
‫testando com uma confirmação de senha errada,

242
00:13:56,960 --> 00:13:59,810
‫só para ver se nossa validação ainda

243
00:13:59,810 --> 00:14:02,720
‫está funcionando, e agora a rota não está

244
00:14:02,720 --> 00:14:07,300
‫definida, mas isso é simplesmente porque estamos usando o verbo errado aqui.

245
00:14:07,300 --> 00:14:09,610
‫Claro, ele precisa ser patch.

246
00:14:09,610 --> 00:14:11,430
‫Vamos tentar de novo,

247
00:14:11,430 --> 00:14:15,040
‫mas agora descobrimos que sua senha atual está errada,

248
00:14:15,040 --> 00:14:18,270
‫mas na verdade não está, então está correta.

249
00:14:18,270 --> 00:14:21,163
‫Então, algo deve estar errado com nosso código, então vamos

250
00:14:22,260 --> 00:14:24,143
‫tentar dar uma olhada aqui.

251
00:14:26,440 --> 00:14:28,440
‫E sim, então aqui

252
00:14:28,440 --> 00:14:32,240
‫está o problema porque não queremos comparar ou confirmar a senha,

253
00:14:32,240 --> 00:14:34,763
‫é claro, mas com a senha atual.

254
00:14:35,750 --> 00:14:39,780
‫Ok, então isso é apenas um bug estúpido, certo, e

255
00:14:39,780 --> 00:14:41,620
‫agora deve estar funcionando.

256
00:14:41,620 --> 00:14:45,000
‫Então, é claro, queremos comparar a senha atual

257
00:14:45,000 --> 00:14:47,050
‫com a que

258
00:14:47,050 --> 00:14:50,220
‫está atualmente armazenada no banco de dados.

259
00:14:50,220 --> 00:14:51,503
‫Então, vamos tentar

260
00:14:52,670 --> 00:14:55,460
‫de novo, e esse é o erro de validação

261
00:14:55,460 --> 00:14:57,080
‫que estávamos procurando, então as senhas

262
00:14:57,080 --> 00:14:59,840
‫não são as mesmas porque, na verdade, não são.

263
00:14:59,840 --> 00:15:02,610
‫E agora, antes de realmente atualizar a senha, vamos

264
00:15:02,610 --> 00:15:04,560
‫dar uma olhada no Compass aqui.

265
00:15:06,070 --> 00:15:08,550
‫Vamos apenas atualizá-lo aqui rapidamente

266
00:15:08,550 --> 00:15:11,160
‫e, agora, esta é a senha.

267
00:15:11,160 --> 00:15:15,080
‫Então, terminando aqui é pW1i, certo?

268
00:15:15,080 --> 00:15:17,410
‫Então, vamos atualizar a

269
00:15:17,410 --> 00:15:21,333
‫senha agora e ver como ficará depois, ok?

270
00:15:23,400 --> 00:15:25,633
‫Então, agora tudo deve estar correto.

271
00:15:26,720 --> 00:15:31,720
‫E, de fato, obtemos nosso sucesso e nosso símbolo, tudo bem.

272
00:15:33,500 --> 00:15:36,000
‫Então, vamos confirmar isso aqui rapidamente, e, de

273
00:15:36,000 --> 00:15:38,570
‫fato, você vê que a senha mudou e

274
00:15:38,570 --> 00:15:40,830
‫também a data e hora atual,

275
00:15:40,830 --> 00:15:44,403
‫ou seja, a hora em que basicamente estou gravando este vídeo.

276
00:15:45,370 --> 00:15:48,670
‫Tudo bem, e agora, como antes, vamos

277
00:15:48,670 --> 00:15:51,960
‫realmente fazer este teste aqui.

278
00:15:51,960 --> 00:15:55,433
‫Então, basicamente armazenando o token como uma variável de ambiente.

279
00:15:59,150 --> 00:16:03,910
‫Então, só para que tudo funcione mesmo aqui no Postman.

280
00:16:03,910 --> 00:16:06,453
‫Ok, vamos salvar isso

281
00:16:07,590 --> 00:16:12,590
‫na verdade, atualizar a senha do usuário atual para torná-la realmente

282
00:16:14,560 --> 00:16:17,780
‫explícita e, sim, acho que é isso.

283
00:16:17,780 --> 00:16:21,090
‫Acho que isso é tudo que precisamos fazer

284
00:16:21,090 --> 00:16:24,090
‫para atualizar a senha de um usuário.

285
00:16:24,090 --> 00:16:27,890
‫Em seguida, implementaremos a atualização dos dados de outros

286
00:16:27,890 --> 00:16:30,713
‫usuários, como e-mail ou senhas.

