﻿1
00:00:01,160 --> 00:00:03,130
‫- : Auparavant, nous

2
00:00:03,130 --> 00:00:05,420
‫avons déjà implémenté une fonctionnalité d'inscription

3
00:00:05,420 --> 00:00:06,490
‫simple, mais

4
00:00:06,490 --> 00:00:08,760
‫dans cette conférence, nous allons également

5
00:00:08,760 --> 00:00:11,700
‫connecter l'utilisateur à un processus d'inscription plus réel.

6
00:00:11,700 --> 00:00:13,830
‫Donc à partir de cette

7
00:00:13,830 --> 00:00:16,760
‫conférence, nous allons vraiment commencer à implémenter notre authentification,

8
00:00:16,760 --> 00:00:19,683
‫et c'est donc là que ça devient vraiment sérieux.

9
00:00:21,230 --> 00:00:23,210
‫Et donc, avant de commencer, je

10
00:00:23,210 --> 00:00:25,150
‫veux vous donner un avertissement

11
00:00:25,150 --> 00:00:28,740
‫ici, donc l'authentification est très difficile à obtenir correctement et

12
00:00:28,740 --> 00:00:31,330
‫de nombreux tutoriels que vous allez trouver

13
00:00:31,330 --> 00:00:32,970
‫lorsque vous recherchez l'authentification

14
00:00:32,970 --> 00:00:35,492
‫avec comme Node. js et Express,

15
00:00:35,492 --> 00:00:38,480
‫beaucoup d'entre eux commettent de nombreuses erreurs graves et

16
00:00:38,480 --> 00:00:42,220
‫simplifient à l'excès des choses qui ne devraient pas être simplifiées.

17
00:00:42,220 --> 00:00:45,270
‫D'accord, cela ne veut pas dire que tous les

18
00:00:45,270 --> 00:00:46,740
‫tutoriels sont mauvais,

19
00:00:46,740 --> 00:00:48,500
‫d'accord, ou qui sont inutiles

20
00:00:48,500 --> 00:00:52,400
‫ou quelque chose du genre, mais je passe vraiment des semaines à

21
00:00:52,400 --> 00:00:54,670
‫rechercher toutes les meilleures pratiques et à

22
00:00:54,670 --> 00:00:56,410
‫affiner et améliorer mon code,

23
00:00:56,410 --> 00:00:59,550
‫pour créer cette section d'authentification que nous allons commencer à

24
00:00:59,550 --> 00:01:02,000
‫implémenter maintenant aussi bien que possible, pour

25
00:01:02,000 --> 00:01:05,228
‫un débutant comme vous, d'accord, et c'est parce que nous

26
00:01:05,228 --> 00:01:08,950
‫devons être vraiment très prudents lors de l'écriture de cette partie de

27
00:01:08,950 --> 00:01:12,730
‫l'application, car rappelez-vous, les données de nos utilisateurs sont en jeu ici

28
00:01:12,730 --> 00:01:15,650
‫, et la confiance dans l'entreprise qui exécute l'application,

29
00:01:15,650 --> 00:01:17,200
‫est également en jeu,

30
00:01:17,200 --> 00:01:19,080
‫et donc la mise en

31
00:01:19,080 --> 00:01:21,200
‫œuvre de l'authentification, est une vraie

32
00:01:21,200 --> 00:01:24,360
‫responsabilité où il ne faut faire aucune erreur du tout.

33
00:01:24,360 --> 00:01:25,980
‫Maintenant, il existe des

34
00:01:25,980 --> 00:01:28,470
‫bibliothèques qui peuvent nous aider à mettre

35
00:01:28,470 --> 00:01:31,360
‫en œuvre l'authentification et l'autorisation et la plus

36
00:01:31,360 --> 00:01:33,130
‫connue s'appelle Passport, mais même

37
00:01:33,130 --> 00:01:34,740
‫une bibliothèque comme

38
00:01:34,740 --> 00:01:37,470
‫celle-ci ne vous enlève pas tout le travail

39
00:01:37,470 --> 00:01:39,510
‫et toute la responsabilité, d'accord.

40
00:01:39,510 --> 00:01:40,630
‫Maintenant, dans ce

41
00:01:40,630 --> 00:01:42,810
‫cas ici, nous allons en fait

42
00:01:42,810 --> 00:01:46,380
‫implémenter toute la logique de protection et d'autorisation de connexion par nous-mêmes,

43
00:01:46,380 --> 00:01:49,910
‫à l'exception bien sûr de l'implémentation du jeton Web Jason dont

44
00:01:49,910 --> 00:01:52,310
‫nous avons parlé dans la dernière vidéo elle-même.

45
00:01:52,310 --> 00:01:54,820
‫D'accord, donc toute la signature et la vérification

46
00:01:54,820 --> 00:01:58,170
‫de tout ça, nous allons les laisser à la bibliothèque WJT,

47
00:01:58,170 --> 00:02:00,450
‫mais le reste, nous allons nous mettre

48
00:02:00,450 --> 00:02:02,920
‫en œuvre au cours des deux prochaines conférences.

49
00:02:02,920 --> 00:02:04,430
‫Maintenant, comme je l'ai mentionné

50
00:02:04,430 --> 00:02:07,830
‫plus tôt, nous avons déjà notre fonction d'inscription ici, mais pour

51
00:02:07,830 --> 00:02:09,240
‫le moment, tout ce

52
00:02:09,240 --> 00:02:11,500
‫qu'elle fait est simplement de créer un

53
00:02:11,500 --> 00:02:14,010
‫nouvel utilisateur, puis de le renvoyer au client.

54
00:02:14,010 --> 00:02:17,410
‫Maintenant, peu de temps après avoir terminé l'enregistrement de ce

55
00:02:17,410 --> 00:02:18,640
‫cours, j'ai

56
00:02:18,640 --> 00:02:21,239
‫remarqué qu'il y avait une faille de

57
00:02:21,239 --> 00:02:23,920
‫sécurité très sérieuse dans cette façon d'inscrire

58
00:02:23,920 --> 00:02:26,630
‫des utilisateurs, donc le problème est qu'en ce

59
00:02:26,630 --> 00:02:30,640
‫moment, nous créons un nouvel utilisateur en utilisant toutes les données

60
00:02:30,640 --> 00:02:32,850
‫qui entrent avec le corps à

61
00:02:32,850 --> 00:02:36,350
‫droite, et donc le problème ici est que comme ça,

62
00:02:36,350 --> 00:02:40,960
‫n'importe qui peut spécifier le rôle en tant que droit d'administrateur, donc fondamentalement,

63
00:02:40,960 --> 00:02:45,360
‫tout le monde peut maintenant simplement s'inscrire en tant qu'administrateur dans notre application,

64
00:02:45,360 --> 00:02:46,670
‫et ce n'est

65
00:02:46,670 --> 00:02:49,620
‫bien sûr pas ce dont nous avons besoin.

66
00:02:49,620 --> 00:02:53,090
‫Donc, encore une fois, il s'agit d'une grave faille de

67
00:02:53,090 --> 00:02:55,860
‫sécurité et nous devrons bien sûr corriger cela

68
00:02:55,860 --> 00:02:58,420
‫et corriger est en fait assez simple.

69
00:02:58,420 --> 00:03:01,150
‫Donc ce dont vous avez besoin à la place de cette

70
00:03:01,150 --> 00:03:02,670
‫ligne de code, qui est

71
00:03:02,670 --> 00:03:06,370
‫sélectionnée ici, c'est ce morceau de code que je viens de mettre ici à l'écran.

72
00:03:06,370 --> 00:03:07,460
‫D'accord.

73
00:03:07,460 --> 00:03:10,900
‫Encore une fois, veuillez supprimer cette ligne de code actuellement

74
00:03:10,900 --> 00:03:12,720
‫sélectionnée ici et la remplacer

75
00:03:12,720 --> 00:03:15,320
‫par le code que je viens de mettre

76
00:03:15,320 --> 00:03:16,690
‫ici à l'écran.

77
00:03:16,690 --> 00:03:19,070
‫Maintenant, quelle est en fait la grande

78
00:03:19,070 --> 00:03:21,010
‫différence ici, eh bien,

79
00:03:21,010 --> 00:03:24,580
‫avec ce nouveau code, fondamentalement, nous n'autorisons que les données dont

80
00:03:24,580 --> 00:03:26,550
‫nous avons réellement besoin dans le

81
00:03:26,550 --> 00:03:30,370
‫nouvel utilisateur, donc juste un nom, l'e-mail, puis les mots de passe.

82
00:03:30,370 --> 00:03:34,370
‫Et maintenant, même si un utilisateur essaie de saisir manuellement un rôle, nous

83
00:03:34,370 --> 00:03:37,030
‫ne le stockerons pas dans le nouvel utilisateur, et

84
00:03:37,030 --> 00:03:38,750
‫il en va de même

85
00:03:38,750 --> 00:03:41,170
‫pour d'autres éléments, comme par exemple une photo.

86
00:03:41,170 --> 00:03:45,120
‫C'est donc la solution rapide et facile à ce problème.

87
00:03:45,120 --> 00:03:45,983
‫Maintenant, ce

88
00:03:45,983 --> 00:03:49,890
‫que cela va faire, c'est que nous ne pouvons plus nous inscrire

89
00:03:49,890 --> 00:03:52,570
‫en tant qu'administrateur, et donc si nous devons

90
00:03:52,570 --> 00:03:53,680
‫ajouter un nouvel

91
00:03:53,680 --> 00:03:57,030
‫administrateur à notre système, nous pouvons alors très simplement créer

92
00:03:57,030 --> 00:03:59,610
‫un nouvel utilisateur normalement, puis aller dans

93
00:03:59,610 --> 00:04:02,440
‫MongoDB Compass, et essentiellement éditer ce rôle là-dedans.

94
00:04:02,440 --> 00:04:03,930
‫Alors modifiez-le

95
00:04:03,930 --> 00:04:06,470
‫manuellement de l'utilisateur à l'administrateur, d'accord.

96
00:04:06,470 --> 00:04:09,070
‫Bien sûr, nous pourrions également définir une route

97
00:04:09,070 --> 00:04:10,910
‫spéciale pour simplement créer

98
00:04:10,910 --> 00:04:13,610
‫des administrateurs, mais ce serait un peu trop.

99
00:04:13,610 --> 00:04:16,210
‫Bon, passons maintenant.

100
00:04:16,210 --> 00:04:18,820
‫Notez simplement que le code dans le reste de

101
00:04:18,820 --> 00:04:20,790
‫la vidéo et toutes les vidéos

102
00:04:20,790 --> 00:04:25,090
‫de ce cours sera bien sûr toujours cette ancienne mauvaise version, d'accord, mais en

103
00:04:25,090 --> 00:04:27,270
‫fait dans le code final qui se

104
00:04:27,270 --> 00:04:29,240
‫trouve dans le référentiel GitHub,

105
00:04:29,240 --> 00:04:32,773
‫j'ai déjà corrigé cela et nous avoir le bon code là-dedans.

106
00:04:33,610 --> 00:04:37,770
‫Quoi qu'il en soit, généralement, lorsque nous nous inscrivons à une application

107
00:04:37,770 --> 00:04:41,060
‫Web, vous êtes également automatiquement connecté, n'est-ce pas, et

108
00:04:41,060 --> 00:04:43,500
‫implémentons donc très rapidement cela ici.

109
00:04:43,500 --> 00:04:45,350
‫Alors connectez le nouvel utilisateur,

110
00:04:45,350 --> 00:04:48,120
‫dès qu'il s'est inscrit, d'accord, et rappelez-vous de

111
00:04:48,120 --> 00:04:50,090
‫la conférence précédente, comment cela fonctionne,

112
00:04:50,090 --> 00:04:51,680
‫tout ce que nous avons

113
00:04:51,680 --> 00:04:53,440
‫vraiment besoin de faire, c'est

114
00:04:53,440 --> 00:04:55,350
‫de signer un jeton Web Jason,

115
00:04:55,350 --> 00:04:58,490
‫puis de le renvoyer à l'utilisateur , d'accord, mais commençons

116
00:04:58,490 --> 00:05:01,270
‫par installer le package MPM que nous allons utiliser

117
00:05:01,270 --> 00:05:03,350
‫pour tout ce qui concerne les

118
00:05:03,350 --> 00:05:04,893
‫jetons Web Jason.

119
00:05:06,160 --> 00:05:08,180
‫Donc, dans notre autre terminal, disons

120
00:05:08,180 --> 00:05:12,660
‫l'installation de MPM, le jeton Web Jason, donc tout cela ensemble comme ceci

121
00:05:12,660 --> 00:05:14,370
‫et cela devrait ensuite installer

122
00:05:16,240 --> 00:05:18,630
‫ce paquet et allons de l'avant et

123
00:05:18,630 --> 00:05:19,790
‫jetons-y un

124
00:05:19,790 --> 00:05:22,211
‫coup d'œil sur GitHub, juste pour voir

125
00:05:22,211 --> 00:05:23,950
‫la documentation et allons faites-le

126
00:05:28,000 --> 00:05:29,380
‫ici, nous n'avons

127
00:05:29,380 --> 00:05:31,830
‫plus besoin de celui-ci ici pour le

128
00:05:33,370 --> 00:05:38,370
‫moment au moins, et cela nous amènera donc à la page sur MPM, et ainsi

129
00:05:38,810 --> 00:05:40,300
‫vous verrez à quel

130
00:05:40,300 --> 00:05:42,170
‫point ce paquet est populaire, nous

131
00:05:42,170 --> 00:05:45,100
‫en avons donc 2. 3 millions de téléchargements

132
00:05:45,100 --> 00:05:47,930
‫hebdomadaires, donc c'est vraiment une tonne de téléchargements

133
00:05:47,930 --> 00:05:50,730
‫et nous pouvons également consulter la documentation ici,

134
00:05:50,730 --> 00:05:53,540
‫mais personnellement, je préfère le faire sur GitHub.

135
00:05:53,540 --> 00:05:56,090
‫Je pense que ça a l'air beaucoup plus

136
00:05:56,090 --> 00:05:58,240
‫propre ici, et j'y suis

137
00:05:58,240 --> 00:06:02,410
‫tellement habitué à ce stade, et donc je le vois généralement ici, d'accord.

138
00:06:02,410 --> 00:06:04,690
‫Quoi qu'il en soit, la première fonction

139
00:06:04,690 --> 00:06:08,070
‫que nous allons utiliser avec JWT ici est le signe, d'accord,

140
00:06:08,070 --> 00:06:11,320
‫donc pour créer un nouveau jeton, et pour cela, bien sûr,

141
00:06:11,320 --> 00:06:13,330
‫nous avons besoin de la charge

142
00:06:13,330 --> 00:06:16,080
‫utile, nous avons besoin de la clé pour que

143
00:06:16,080 --> 00:06:17,280
‫le secret

144
00:06:17,280 --> 00:06:19,750
‫privé que j'ai mentionné avant que cela ne

145
00:06:19,750 --> 00:06:21,607
‫soit stocké sur notre serveur et

146
00:06:21,607 --> 00:06:23,830
‫que nous devons signer le jeton, puis

147
00:06:23,830 --> 00:06:26,040
‫nous pouvons transmettre certaines options et nous

148
00:06:26,040 --> 00:06:29,270
‫ferons tout cela en une seconde, je veux juste montrer

149
00:06:29,270 --> 00:06:32,040
‫l'autre fonction que nous avons ici, et que nous

150
00:06:32,040 --> 00:06:34,149
‫avons vraiment avons une tonne d'options ici,

151
00:06:34,149 --> 00:06:36,353
‫par exemple l'expiration dans, que nous allons

152
00:06:38,070 --> 00:06:39,830
‫utiliser également, donc tout cela

153
00:06:39,830 --> 00:06:41,600
‫et ensuite nous devons vérifier.

154
00:06:41,600 --> 00:06:44,200
‫Nous avons donc également parlé du processus de

155
00:06:44,200 --> 00:06:47,700
‫vérification et c'est essentiellement implémenté dans cette fonction, d'accord, et c'est

156
00:06:47,700 --> 00:06:49,490
‫donc celui que nous allons

157
00:06:49,490 --> 00:06:52,740
‫utiliser, lors de la connexion d'un utilisateur, d'accord, et c'est

158
00:06:52,740 --> 00:06:54,610
‫vraiment tout ce qu'il y a,

159
00:06:54,610 --> 00:06:56,858
‫donc vous avez tout ces différentes options

160
00:06:56,858 --> 00:06:58,400
‫ici, d'accord, vous avez

161
00:06:58,400 --> 00:07:01,140
‫également décoder mais celle-ci n'est pas vraiment importante, d'accord,

162
00:07:01,140 --> 00:07:03,990
‫vous voyez donc que ce package n'inclut vraiment que

163
00:07:03,990 --> 00:07:04,980
‫les deux

164
00:07:04,980 --> 00:07:07,870
‫fonctionnalités dont nous avons parlé dans la vidéo précédente.

165
00:07:07,870 --> 00:07:11,683
‫Donc signer et vérifier, d'accord.

166
00:07:12,590 --> 00:07:15,060
‫Revenons donc ici et commençons

167
00:07:15,060 --> 00:07:18,193
‫à utiliser le package de jetons Web Jason.

168
00:07:19,830 --> 00:07:21,363
‫Importons-le donc ici,

169
00:07:24,380 --> 00:07:26,800
‫et il s'appelle généralement simplement

170
00:07:31,040 --> 00:07:33,920
‫JWT et nécessite le jeton Web Jason.

171
00:07:33,920 --> 00:07:37,053
‫D'accord, alors créons notre jeton ici, d'accord, et j'aimerai

172
00:07:39,290 --> 00:07:40,460
‫l'appeler simplement comme

173
00:07:40,460 --> 00:07:43,710
‫ça, donc juste un jeton, d'accord, puis le signe

174
00:07:43,710 --> 00:07:48,080
‫de point JWT, et maintenant la première chose est la charge utile, et

175
00:07:48,080 --> 00:07:50,460
‫c'est fondamentalement un objet pour tous les

176
00:07:50,460 --> 00:07:52,650
‫données que nous allons stocker à

177
00:07:52,650 --> 00:07:55,260
‫l'intérieur du token, et dans ce cas,

178
00:07:55,260 --> 00:07:56,093
‫nous

179
00:07:56,093 --> 00:07:59,410
‫ne voulons vraiment que l'ID de l'utilisateur, d'accord, donc rien

180
00:07:59,410 --> 00:08:02,210
‫de fou ici, pas beaucoup de données qui

181
00:08:02,210 --> 00:08:04,150
‫ne sont pas vraiment importantes.

182
00:08:04,150 --> 00:08:06,890
‫Donc, nous disons que l'ID est, puis

183
00:08:06,890 --> 00:08:09,550
‫nous obtenons simplement l'ID du nouvel

184
00:08:09,550 --> 00:08:12,830
‫utilisateur qui vient d'être créé, d'accord, donc le

185
00:08:12,830 --> 00:08:17,530
‫nouveau point d'utilisateur, puis rappelez-vous que dans MonogoDB, l'ID s'appelle en fait

186
00:08:17,530 --> 00:08:21,460
‫l'ID de soulignement, d'accord, et ainsi est l'objet qui correspond

187
00:08:21,460 --> 00:08:23,760
‫aux données, la charge

188
00:08:23,760 --> 00:08:27,083
‫utile, que nous voulons mettre dans notre JWT.

189
00:08:27,920 --> 00:08:30,820
‫Ensuite, nous avons besoin du secret, d'accord, donc

190
00:08:30,820 --> 00:08:32,090
‫en gros une

191
00:08:33,580 --> 00:08:35,350
‫chaîne pour un secret, d'accord,

192
00:08:35,350 --> 00:08:38,530
‫bien sûr, c'est un secret terrible, d'accord, c'est juste

193
00:08:38,530 --> 00:08:40,340
‫une sorte d'espace réservé car

194
00:08:40,340 --> 00:08:42,770
‫en fait, notre fichier de configuration est

195
00:08:42,770 --> 00:08:46,720
‫un endroit parfait pour stocker ce genre de données secrètes, comme

196
00:08:46,720 --> 00:08:49,460
‫le mot de passe par exemple, et donc

197
00:08:49,460 --> 00:08:53,633
‫allons ajouter et éditer ici, d'accord, alors appelons-le JWT, secret, et bien

198
00:08:55,720 --> 00:09:00,070
‫sûr le nom que nous donnons ici, n'a pas vraiment d'importance mais ce

199
00:09:00,070 --> 00:09:02,220
‫qui compte, c'est le secret que

200
00:09:02,220 --> 00:09:03,430
‫nous

201
00:09:03,430 --> 00:09:06,920
‫spécifions ici, d'accord, car en utilisant le cryptage standard HSA

202
00:09:06,920 --> 00:09:11,920
‫256 pour la signature, le secret devrait avoir au moins trente-deux caractères, d'accord, mais le

203
00:09:11,940 --> 00:09:15,320
‫plus long sera le mieux en fait et c'est là

204
00:09:15,320 --> 00:09:17,880
‫que beaucoup les tutoriels échouent, certains d'entre

205
00:09:17,880 --> 00:09:19,847
‫eux mettent simplement une chaîne

206
00:09:19,847 --> 00:09:22,240
‫très courte ici, mais ce n'est pas

207
00:09:22,240 --> 00:09:25,280
‫encore l'idéal, donc pour un meilleur cryptage de la

208
00:09:25,280 --> 00:09:27,010
‫signature, encore une fois,

209
00:09:27,010 --> 00:09:29,290
‫vous devriez utiliser au moins trente-deux

210
00:09:29,290 --> 00:09:32,940
‫caractères, donc je vais créer mon secret ici maintenant mais vous

211
00:09:32,940 --> 00:09:34,584
‫devriez vraiment vraiment en

212
00:09:34,584 --> 00:09:37,763
‫utiliser un autre, d'accord, s'il vous plaît, n'utilisez pas

213
00:09:37,763 --> 00:09:40,490
‫le sa moi un comme je le fais

214
00:09:40,490 --> 00:09:42,590
‫car cela pourrait devenir un problème

215
00:09:42,590 --> 00:09:44,180
‫de sécurité pour votre

216
00:09:44,180 --> 00:09:47,460
‫application, d'accord, utilisez toujours un secret unique pour vos applications

217
00:09:47,460 --> 00:09:49,400
‫et jamais le même, d'accord,

218
00:09:49,400 --> 00:09:52,100
‫et surtout pas celui de quelqu'un d'autre donc

219
00:09:52,100 --> 00:09:54,883
‫certainement pas celui que je je tape maintenant.

220
00:09:56,750 --> 00:09:57,820
‫Donc ça peut être

221
00:09:57,820 --> 00:10:00,160
‫n'importe quoi, ça n'a pas besoin d'être

222
00:10:00,160 --> 00:10:02,390
‫des personnages ou des trucs bizarres, je

223
00:10:02,390 --> 00:10:04,443
‫préfère utiliser une phrase comme ça,

224
00:10:07,860 --> 00:10:10,903
‫mon secret ultra sécurisé et ultra long, alors qu'est-ce qui

225
00:10:11,990 --> 00:10:13,363
‫s'est passé ici, de

226
00:10:14,690 --> 00:10:17,670
‫toute façon ça devrait faire trente-deux caractères et ainsi c'est

227
00:10:17,670 --> 00:10:18,730
‫celui que

228
00:10:18,730 --> 00:10:21,400
‫nous allons utiliser pour mes jetons Web Jason, mais

229
00:10:21,400 --> 00:10:24,193
‫encore une fois, veuillez en utiliser un autre, d'accord.

230
00:10:25,489 --> 00:10:29,290
‫Quoi qu'il en soit, revenons au contrôleur d'authentification ici,

231
00:10:29,290 --> 00:10:30,733
‫et utilisons-le maintenant.

232
00:10:31,810 --> 00:10:34,970
‫Alors n'oubliez pas qu'une variable

233
00:10:34,970 --> 00:10:39,913
‫d'environnement est un processus point fin point secret JWT,

234
00:10:41,100 --> 00:10:42,100
‫d'accord.

235
00:10:42,100 --> 00:10:44,490
‫Donc, à ce stade, nous avons la charge

236
00:10:44,490 --> 00:10:46,320
‫utile et nous avons le secret.

237
00:10:46,320 --> 00:10:49,400
‫L'en-tête du jeton sera en fait créé automatiquement, mais maintenant,

238
00:10:49,400 --> 00:10:50,670
‫ce que nous

239
00:10:50,670 --> 00:10:52,390
‫pouvons également faire, c'est transmettre

240
00:10:52,390 --> 00:10:54,470
‫certaines options, et l'option que je vais

241
00:10:54,470 --> 00:10:57,390
‫transmettre correspond au moment où le JWT doit expirer.

242
00:10:57,390 --> 00:10:59,600
‫Cela signifie donc qu'après le temps

243
00:10:59,600 --> 00:11:01,240
‫que nous allons passer

244
00:11:01,240 --> 00:11:03,110
‫ici, le jeton Web Jason

245
00:11:03,110 --> 00:11:04,240
‫ne sera

246
00:11:04,240 --> 00:11:06,890
‫plus valide, même s'il serait sinon correctement

247
00:11:06,890 --> 00:11:08,060
‫vérifié, d'accord, il

248
00:11:08,060 --> 00:11:10,570
‫s'agit donc essentiellement de déconnecter un utilisateur

249
00:11:10,570 --> 00:11:12,670
‫après un une certaine période de

250
00:11:12,670 --> 00:11:15,320
‫temps simplement par mesure de sécurité, d'accord.

251
00:11:15,320 --> 00:11:19,500
‫Définissons donc en fait ce délai d'expiration également en tant

252
00:11:19,500 --> 00:11:21,493
‫que variable de configuration ici,

253
00:11:23,320 --> 00:11:28,320
‫donc JWT expire et donc ici, bien sûr, vous pouvez utiliser le

254
00:11:28,360 --> 00:11:30,536
‫même temps que celui que

255
00:11:30,536 --> 00:11:31,950
‫je mets.

256
00:11:31,950 --> 00:11:33,630
‫Nous pouvons donc utiliser

257
00:11:33,630 --> 00:11:36,170
‫une chaîne spéciale comme par exemple 90D

258
00:11:36,170 --> 00:11:38,807
‫et l'algorithme de signature déterminera alors automatiquement

259
00:11:38,807 --> 00:11:42,350
‫que cela signifie quatre-vingt-dix jours, d'accord, vous pouvez également utiliser

260
00:11:42,350 --> 00:11:47,350
‫dix heures ou cinq minutes ou trois secondes ou quelque chose comme ça, ou

261
00:11:47,360 --> 00:11:49,720
‫n'importe quel nombre , qui sera

262
00:11:49,720 --> 00:11:50,800
‫alors traité

263
00:11:50,800 --> 00:11:53,330
‫comme des millisecondes mais je pense qu'il

264
00:11:53,330 --> 00:11:55,820
‫est préférable d'utiliser simplement quatre-vingt-dix ou quelque

265
00:11:55,820 --> 00:11:59,350
‫chose de D, donc dans ce cas, quatre-vingt-dix jours, d'accord,

266
00:11:59,350 --> 00:12:01,120
‫et encore une fois,

267
00:12:01,120 --> 00:12:03,860
‫après quatre-vingt-dix jours, le JWT ne sera plus

268
00:12:03,860 --> 00:12:07,770
‫valide, même si la signature est correcte et tout est valide.

269
00:12:07,770 --> 00:12:11,503
‫D'accord, encore une fois, juste comme une mesure de

270
00:12:12,880 --> 00:12:13,713
‫sécurité

271
00:12:13,713 --> 00:12:17,180
‫supplémentaire, d'accord, donc ces options comme toujours, nous

272
00:12:17,180 --> 00:12:19,820
‫les avons transmises en tant qu'objet,

273
00:12:19,820 --> 00:12:24,640
‫puis spécifions l'expiration, donc expire, puis traite la fin du point, puis

274
00:12:26,120 --> 00:12:31,120
‫JWT expire, d'accord, et ceci ici ajoutera ensuite des données supplémentaires à

275
00:12:32,050 --> 00:12:34,190
‫la charge utile, mais ce

276
00:12:34,190 --> 00:12:35,530
‫n'est bien sûr

277
00:12:35,530 --> 00:12:37,480
‫pas un problème du tout.

278
00:12:38,410 --> 00:12:40,220
‫Nous venons donc de créer un

279
00:12:40,220 --> 00:12:41,500
‫jeton, il ne

280
00:12:41,500 --> 00:12:43,463
‫nous reste plus qu'à l'envoyer au client.

281
00:12:44,910 --> 00:12:48,240
‫Mettons-le donc ici avant l'utilisateur en fait

282
00:12:48,240 --> 00:12:50,420
‫et puis c'est tout.

283
00:12:50,420 --> 00:12:53,350
‫C'est vraiment tout ce que nous devons faire pour

284
00:12:53,350 --> 00:12:54,840
‫connecter un nouvel utilisateur,

285
00:12:54,840 --> 00:12:56,250
‫car pour le moment

286
00:12:56,250 --> 00:12:59,530
‫nous ne vérifions pas si un mot de passe est

287
00:12:59,530 --> 00:13:00,970
‫correct ou si l'utilisateur

288
00:13:00,970 --> 00:13:02,890
‫existe réellement dans la base de

289
00:13:02,890 --> 00:13:03,840
‫données

290
00:13:03,840 --> 00:13:05,880
‫car ici, dans ce cas, l'utilisateur

291
00:13:05,880 --> 00:13:08,070
‫vient juste d'être créé, et donc tout

292
00:13:08,070 --> 00:13:10,010
‫de suite, nous avons connecté l'utilisateur

293
00:13:10,010 --> 00:13:12,780
‫à l'application en envoyant un jeton, d'accord, et

294
00:13:12,780 --> 00:13:15,430
‫l'utilisation du client devrait alors, d'une certaine manière,

295
00:13:15,430 --> 00:13:16,760
‫stocker ce jeton,

296
00:13:16,760 --> 00:13:21,370
‫comme nous en avons déjà parlé dans la conférence précédente, d'accord, alors faisons une

297
00:13:21,370 --> 00:13:24,160
‫sauvegarde ici, et essayons réellement, d'accord, alors laissez-nous mon

298
00:13:24,160 --> 00:13:27,040
‫ancienne adresse ici, bonjour@jonas. io, envoyons-le, et attendons-le

299
00:13:27,040 --> 00:13:29,210
‫et en effet, voici notre token Web

300
00:13:29,210 --> 00:13:32,910
‫Jason alors félicitations, vous venez de créer votre tout premier token

301
00:13:32,910 --> 00:13:35,050
‫Web Jason qui devrait ressembler un

302
00:13:35,050 --> 00:13:37,490
‫peu à ça, et bien sûr ça ne

303
00:13:37,490 --> 00:13:39,760
‫ressemblera pas exactement à idem, car notre

304
00:13:39,760 --> 00:13:42,310
‫secret n'est pas non plus le même, n'est-ce

305
00:13:42,310 --> 00:13:45,360
‫pas, et maintenant ce que je veux vous montrer,

306
00:13:45,360 --> 00:13:46,770
‫c'est le débogueur JWT,

307
00:13:46,770 --> 00:13:48,810
‫que je vous ai montré en

308
00:13:48,810 --> 00:13:50,730
‫capture d'écran plus tôt dans la

309
00:13:50,730 --> 00:13:52,010
‫dernière vidéo.

310
00:13:52,010 --> 00:13:54,140
‫Alors allons de l'avant et

311
00:13:56,050 --> 00:14:00,453
‫copions ce jeton, puis passons à JWT. io, d'accord, alors en bas

312
00:14:02,850 --> 00:14:03,683
‫nous

313
00:14:04,540 --> 00:14:06,790
‫avons le débogueur et supprimons

314
00:14:06,790 --> 00:14:10,683
‫donc celui-ci ici, et mettons le nôtre et tout

315
00:14:12,170 --> 00:14:14,830
‫de suite vous voyez que notre

316
00:14:14,830 --> 00:14:17,580
‫signature est invalide, mais c'est parce que

317
00:14:17,580 --> 00:14:20,570
‫la fonction de signature édite ces deux

318
00:14:20,570 --> 00:14:22,090
‫propriétés ici, parce

319
00:14:22,090 --> 00:14:25,140
‫que nous avons spécifié une expiration date essentiellement.

320
00:14:25,140 --> 00:14:27,600
‫Donc ceci ici est émis à, et

321
00:14:27,600 --> 00:14:30,223
‫c'est l'heure d'expiration, d'accord, donc si nous

322
00:14:31,450 --> 00:14:35,050
‫supprimons ces deux d'ici, vous verrez que maintenant, cette signature

323
00:14:35,050 --> 00:14:36,350
‫est en

324
00:14:36,350 --> 00:14:38,620
‫fait vérifiée, d'accord, donc ce qui

325
00:14:38,620 --> 00:14:42,260
‫est important à noter ici, c'est que bien sûr l'en-tête

326
00:14:42,260 --> 00:14:44,815
‫est visible d'accord c'est facilement décodable en

327
00:14:44,815 --> 00:14:47,840
‫gros, et donc vous que nous n'avons rien

328
00:14:47,840 --> 00:14:50,820
‫spécifié de tout cela, c'est le package de

329
00:14:50,820 --> 00:14:54,530
‫jetons Web Jason qui l'a fait pour nous, mais c'est

330
00:14:54,530 --> 00:14:58,560
‫en fait la charge utile que nous avons spécifiée, donc si

331
00:14:58,560 --> 00:15:00,800
‫nous jetons un coup d'œil à

332
00:15:00,800 --> 00:15:03,860
‫cet ID, ça devrait être exactement le même que

333
00:15:03,860 --> 00:15:06,343
‫nous avons dans facteur, donc finissant sur

334
00:15:07,960 --> 00:15:11,493
‫six OF, et donc effectivement, c'est exactement le même droit,

335
00:15:13,600 --> 00:15:16,260
‫d'accord, donc ces deux là sont ouverts

336
00:15:16,260 --> 00:15:19,920
‫et puis la signature bien sûr, on ne peut pas

337
00:15:19,920 --> 00:15:22,930
‫vraiment voir, parce que bien sûr notre secret

338
00:15:22,930 --> 00:15:26,270
‫est juste ça, c'est vraiment secret, d'accord, donc c'était

339
00:15:26,270 --> 00:15:29,600
‫juste pour vous montrer que tout fonctionne, et terminons

340
00:15:29,600 --> 00:15:31,242
‫ceci, et oui, nous

341
00:15:31,242 --> 00:15:35,550
‫ne pouvons pas connecter les utilisateurs, mais uniquement si l'utilisateur vient de

342
00:15:35,550 --> 00:15:38,050
‫s'inscrire, car dans ce cas, nous n'avons

343
00:15:38,050 --> 00:15:40,980
‫pas besoin de vérifier l'e-mail dans la base

344
00:15:40,980 --> 00:15:42,290
‫de données, ni

345
00:15:42,290 --> 00:15:44,490
‫le mot de passe, d'accord.

346
00:15:44,490 --> 00:15:47,400
‫Donc, faire tout cela est un processus beaucoup plus complexe, et

347
00:15:47,400 --> 00:15:49,340
‫c'est donc en fait ce que nous

348
00:15:49,340 --> 00:15:50,940
‫allons faire dans la prochaine

349
00:15:50,940 --> 00:15:53,660
‫conférence, donc ensuite, nous allons réellement connecter les utilisateurs, en

350
00:15:53,660 --> 00:15:56,543
‫fonction de leur adresse e-mail et de leur mot de passe.

