1
00:00:00,000 --> 00:00:04,557
[MUSIC]

2
00:00:04,557 --> 00:00:10,906
Maintenant que nous avons compris OAuth 2 et comment Facebook prend en charge OAuth 2,

3
00:00:10,906 --> 00:00:16,870
passons à cet exercice où nous allons configurer notre

4
00:00:16,870 --> 00:00:23,460
application de serveur express pour utiliser Facebook comme fournisseur OAuth 2 pour notre serveur.

5
00:00:23,460 --> 00:00:26,820
Et en même temps pour notre application client.

6
00:00:26,820 --> 00:00:30,500
Dans cet exercice, nous allons compter sur le passeport que

7
00:00:30,500 --> 00:00:34,730
nous avons déjà configuré dans notre application express.

8
00:00:34,730 --> 00:00:39,890
Nous allons configurer une nouvelle stratégie pour l'authentification avec Facebook

9
00:00:39,890 --> 00:00:43,600
en utilisant ce module de nœud de jeton Facebook passeport.

10
00:00:45,680 --> 00:00:51,629
Pour commencer cet exercice,

11
00:00:51,629 --> 00:01:01,590
accédez à https//developers.facebook.com/apps.

12
00:01:01,590 --> 00:01:07,640
Maintenant, c'est là que vous allez enregistrer l'application cliente, qui est essentiellement

13
00:01:07,640 --> 00:01:13,280
votre serveur, le serveur supplémentaire, agissant comme l'application cliente pour Facebook.

14
00:01:13,280 --> 00:01:16,380
Et puis nous allons enregistrer une application client là-bas.

15
00:01:16,380 --> 00:01:21,250
Et puis obtenez un identifiant d'application et un secret d'application sur Facebook.

16
00:01:21,250 --> 00:01:24,950
Maintenant, évidemment, il va sans dire que vous devez avoir un compte Facebook

17
00:01:24,950 --> 00:01:27,160
pour être en mesure de configurer cela.

18
00:01:27,160 --> 00:01:32,520
Si vous n'avez pas de compte Facebook et que vous ne souhaitez pas faire cet exercice,

19
00:01:32,520 --> 00:01:36,220
il n'y a pas de mal à ne pas faire cet exercice.

20
00:01:36,220 --> 00:01:39,110
Mais bien sûr, pour faire cet exercice OAuth 2,

21
00:01:39,110 --> 00:01:45,210
vous avez besoin d'un compte Facebook pour configurer votre fournisseur OAuth sur Facebook.

22
00:01:45,210 --> 00:01:47,390
Donc, en allant sur ce site,

23
00:01:47,390 --> 00:01:52,510
developers.facebook.com/apps, vous remarquerez que vous

24
00:01:52,510 --> 00:01:57,970
devrez vous connecter pour continuer si vous n'êtes pas connecté à partir de votre navigateur.

25
00:01:57,970 --> 00:02:01,790
Maintenant, vous pouvez voir que j'ai déjà configuré quelques applications ici et

26
00:02:01,790 --> 00:02:03,170
les ai testées.

27
00:02:03,170 --> 00:02:07,990
Maintenant, pour créer une nouvelle application, cliquez sur Ajouter une nouvelle application.

28
00:02:07,990 --> 00:02:13,140
Ensuite, vous pouvez fournir le nom de votre application.

29
00:02:13,140 --> 00:02:20,990
Donc, je peux dire Confusion3, et ensuite nous pouvons fournir l'e-mail de contact.

30
00:02:20,990 --> 00:02:26,336
Ensuite, suivez la procédure pour créer votre nouvelle application ici.

31
00:02:36,108 --> 00:02:40,925
Et une fois l'application créée, vous remarquerez immédiatement

32
00:02:40,925 --> 00:02:45,290
qu'un ID d'application a été créé pour votre application.

33
00:02:45,290 --> 00:02:47,180
Et puis pour cette application particulière.

34
00:02:47,180 --> 00:02:50,680
Donc, si vous allez sur le tableau de bord, vous verrez

35
00:02:51,840 --> 00:02:56,640
deux éléments d'information dont vous avez vraiment besoin pour aller plus loin.

36
00:02:56,640 --> 00:03:01,850
L' un est l'ID de l'application, alors assurez-vous de faire une copie de l'ID de l'application.

37
00:03:01,850 --> 00:03:03,810
Et le second est le secret de l'application.

38
00:03:03,810 --> 00:03:10,320
Donc, vous pouvez taper sur le bouton Afficher ici et ensuite vous obtiendrez le secret de l'application.

39
00:03:10,320 --> 00:03:14,350
Secret ici pour que vous puissiez voir ces deux ne sont rien d'autre que des chaînes ASCII.

40
00:03:14,350 --> 00:03:18,980
Faites donc une copie de ceci parce que vous devez configurer votre serveur expert et

41
00:03:18,980 --> 00:03:23,200
aussi votre application cliente avec ces deux éléments d'information.

42
00:03:23,200 --> 00:03:25,870
Et une fois que vous aurez la main,

43
00:03:25,870 --> 00:03:29,105
nous pourrons poursuivre le reste de l'exercice.

44
00:03:29,105 --> 00:03:33,500
Vous devrez accéder à votre tableau de bord de votre application.

45
00:03:33,500 --> 00:03:38,890
Et dans les paramètres, comme vous pouvez le voir, dans les paramètres de base ici,

46
00:03:38,890 --> 00:03:43,310
vous venez d'ajouter une plate-forme de site Web ici.

47
00:03:43,310 --> 00:03:52,650
Et puis fournissez l'URL en tant que https//localhost3443.

48
00:03:52,650 --> 00:03:58,168
Et enregistrez les modifications ici à votre application.

49
00:03:58,168 --> 00:04:03,910
Après avoir ajouté dans le site ici allez aux paramètres avancés.

50
00:04:03,910 --> 00:04:09,000
Et puis cliquez sur Oui pour dire natif ou

51
00:04:09,000 --> 00:04:14,400
application de bureau ici et dire oui à cela, puis enregistrez les modifications.

52
00:04:15,590 --> 00:04:20,461
Et dans le paramètre de base dans les domaines d'application, tapez

53
00:04:20,461 --> 00:04:28,339
https://localhost:3443 et enregistrez les modifications.

54
00:04:29,640 --> 00:04:33,520
Ensuite, allez aux instructions d'exercice pour cet exercice.

55
00:04:33,520 --> 00:04:36,580
Et vous verrez qu'il y a un fichier index.html que

56
00:04:36,580 --> 00:04:39,540
j'ai fourni dans les ressources d'exercice.

57
00:04:39,540 --> 00:04:47,270
Téléchargez ce fichier index.html, puis déplacez-le dans votre dossier public.

58
00:04:47,270 --> 00:04:49,941
Alors téléchargeons ce fichier index.html.

59
00:04:57,932 --> 00:05:05,548
Ensuite, en allant dans le dossier ConfusionServer dans le dossier public,

60
00:05:05,548 --> 00:05:11,125
vous voyez que j'ai déjà un fichier index.html.

61
00:05:11,125 --> 00:05:16,039
Je vais remplacer cela par le fichier index.html téléchargé

62
00:05:16,039 --> 00:05:17,774
que je viens d'obtenir.

63
00:05:17,774 --> 00:05:20,502
Je l'ai enregistré sur mon bureau.

64
00:05:20,502 --> 00:05:23,173
Donc, je vais juste tirer ce index.html

65
00:05:23,173 --> 00:05:27,771
, puis remplacer le fichier index.html dans le dossier public de mon ConfusionServer.

66
00:05:27,771 --> 00:05:31,227
Ensuite, allez à l'éditeur, ouvrons le fichier index.html.

67
00:05:31,227 --> 00:05:34,584
Et si vous l'ouvrez, vous verrez que j'ai déjà configuré du

68
00:05:34,584 --> 00:05:35,112
code JavaScript ici.

69
00:05:35,112 --> 00:05:39,850
Ce code JavaScript que j'ai obtenu de Facebook où ils

70
00:05:39,850 --> 00:05:44,790
spécifient comment vous pouvez configurer une application Dev en utilisant ceci.

71
00:05:44,790 --> 00:05:51,030
Donc, je l'ai copié à partir des instructions Facebook.

72
00:05:51,030 --> 00:05:55,470
En particulier, vous remarquerez que dans ce fichier index.html,

73
00:05:55,470 --> 00:05:58,735
il y a ce champ AppID ici.

74
00:05:58,735 --> 00:06:04,400
Vous allez remplacer ce champ AppID par l'

75
00:06:04,400 --> 00:06:09,060
ID client que vous avez obtenu en enregistrant votre application sur Facebook.

76
00:06:09,060 --> 00:06:13,130
Donc, ici, je remplace l'ID de ce client

77
00:06:13,130 --> 00:06:18,430
par l'ID de mon application que j'ai enregistrée sur Facebook ici.

78
00:06:18,430 --> 00:06:22,957
Et vous devez faire la même étape avec l'application

79
00:06:22,957 --> 00:06:27,750
que vous enregistrez sur Facebook, avec l'identifiant de l'application que vous obtenez de Facebook.

80
00:06:27,750 --> 00:06:30,812
Et puis enregistrez les modifications dans index.html.

81
00:06:30,812 --> 00:06:36,980
Cette page index.html que j'ai ici va créer

82
00:06:36,980 --> 00:06:42,290
un bouton de connexion sur la page index.html, qui lorsque vous cliquez sur ce bouton

83
00:06:42,290 --> 00:06:47,580
nous aidera à vous connecter à Facebook, puis obtenir un jeton d'accès de Facebook.

84
00:06:48,660 --> 00:06:51,260
Ensuite, en allant dans le dossier ConfusionServer,

85
00:06:51,260 --> 00:06:55,280
nous allons installer le module de nœud de jeton Facebook passeport.

86
00:06:55,280 --> 00:06:58,494
Donc, à l'invite de type npm, installez

87
00:07:00,200 --> 00:07:05,003
Passport-Facebook-jeton et

88
00:07:05,003 --> 00:07:09,730
installez ce module de nœud.

89
00:07:09,730 --> 00:07:17,000
Et comme vous pouvez le voir, j'utilise la version 3.3.0 dans ce cours.

90
00:07:17,000 --> 00:07:20,446
Pour revenir à l'éditeur, ouvrez config.js.

91
00:07:20,446 --> 00:07:25,162
Et dans config.js, je vais ajouter

92
00:07:25,162 --> 00:07:34,440
une propriété appelée 'facebook' dans mon fichier config.js.

93
00:07:34,440 --> 00:07:39,221
Et à l'intérieur, je vais

94
00:07:39,221 --> 00:07:44,481
configurer mon ClientID et

95
00:07:44,481 --> 00:07:48,560
le ClientSecret.

96
00:07:48,560 --> 00:07:54,150
Maintenant, le ClientID sera exactement ce que vous obtenez de Facebook.

97
00:07:54,150 --> 00:08:00,304
Ici, et le secret du client comme vous l'avez vu quand vous avez enregistré votre demande.

98
00:08:02,198 --> 00:08:05,221
Vous obtenez une deuxième chaîne là, alors copiez cette chaîne et

99
00:08:05,221 --> 00:08:07,764
collez-la dans le ClientSecret ici.

100
00:08:07,764 --> 00:08:13,790
Maintenant, assurez-vous que cela est collé comme une chaîne ici.

101
00:08:13,790 --> 00:08:19,090
De même, coller dans ClientSecret dans mon fichier config.js.

102
00:08:19,090 --> 00:08:26,360
Donc, la configuration ici m'aidera à utiliser ces deux là où j'ai besoin dans mon code.

103
00:08:26,360 --> 00:08:29,790
Ensuite, comme nous l'avons réalisé, chaque fois que l'utilisateur se

104
00:08:32,390 --> 00:08:37,770
connecte, puis obtient le jeton d'accès et le transmet à notre serveur express.

105
00:08:37,770 --> 00:08:41,160
Le serveur express va utiliser ce jeton d'accès et aller

106
00:08:41,160 --> 00:08:47,840
chercher les informations de fichier à partir du serveur Facebook 0 devrait.

107
00:08:47,840 --> 00:08:52,380
Et puis, une fois qu'il aura atteint les informations de profil, notre serveur express

108
00:08:52,380 --> 00:08:57,980
créera un nouveau compte utilisateur dans notre application.

109
00:08:57,980 --> 00:09:01,750
Et utilisez l'ID Facebook comme index dans ce compte d'utilisation.

110
00:09:01,750 --> 00:09:03,630
Donc, pour tenir compte de cela,

111
00:09:03,630 --> 00:09:08,467
nous allons entrer dans le fichier user.js où nous avons défini notre modèle.

112
00:09:08,467 --> 00:09:12,854
Donc, en plus du prénom et du nom,

113
00:09:12,854 --> 00:09:17,241
je vais également ajouter dans un champ ici appelé FacebookID,

114
00:09:17,241 --> 00:09:20,510
qui est du type String ici.

115
00:09:20,510 --> 00:09:24,548
Le FaceBookID stocke le FaceBookID de

116
00:09:24,548 --> 00:09:28,700
l'utilisateur qui a passé dans le jeton d'accès.

117
00:09:29,760 --> 00:09:34,002
Dans l'étape suivante, je vais vous montrer comment configurer cela.

118
00:09:34,002 --> 00:09:40,260
Ensuite, nous configurons notre stratégie Facebook en utilisant le jeton Facebook de passeport..

119
00:09:40,260 --> 00:09:43,640
Lorsqu' un utilisateur passe le jeton d'accès,

120
00:09:43,640 --> 00:09:47,230
vous allez chercher le profil et ensuite configurer un compte pour

121
00:09:47,230 --> 00:09:52,160
cet utilisateur dans notre serveur local ici, dans notre serveur express ici.

122
00:09:52,160 --> 00:09:56,410
Nous allons initialiser le prénom et le nom de famille et le FaceBookID.

123
00:09:56,410 --> 00:10:01,760
Mais bien sûr, ce compte particulier n'aura pas de mot de passe ou

124
00:10:01,760 --> 00:10:04,140
plutôt le hachage installé associé à cela.

125
00:10:04,140 --> 00:10:09,150
Parce que, si un utilisateur se connecte en utilisant ce compte, il devra utiliser sa

126
00:10:09,150 --> 00:10:14,400
partie de connexion Facebook pour se connecter à notre application.

127
00:10:14,400 --> 00:10:18,330
Ensuite, nous irons à authentifier le fichier dark.js.

128
00:10:18,330 --> 00:10:23,138
C' est là que nous avons mis en place toutes nos différentes

129
00:10:23,138 --> 00:10:25,507
stratégies d'authentification des passeports.

130
00:10:25,507 --> 00:10:30,880
Donc ici, en plus de la stratégie jwt et

131
00:10:30,880 --> 00:10:37,175
la stratégie locale que j'ai configurée ici,

132
00:10:37,175 --> 00:10:43,176
permettez-moi de créer une stratégie FaceBookTokenStrategy ici.

133
00:10:43,176 --> 00:10:49,965
Et puis définissez le mot de passe require - facebook-jeton.

134
00:10:52,494 --> 00:10:56,561
Et cela nous donnera une nouvelle stratégie que nous pouvons

135
00:10:56,561 --> 00:11:00,530
configurer dans notre module passeport ici.

136
00:11:00,530 --> 00:11:04,573
Donc, en descendant dans le code ici, juste là,

137
00:11:04,573 --> 00:11:17,055
à la fin de ce fichier, je vais créer,

138
00:11:17,055 --> 00:11:21,697
FacebookPassport comme passsport.use ().

139
00:11:21,697 --> 00:11:28,380
Et donc c'est là que je spécifierais la nouvelle FaceBookTokenStrategy ici.

140
00:11:29,610 --> 00:11:33,730
Et puis nous allons spécifier les détails de cette

141
00:11:33,730 --> 00:11:38,886
FacebookTokenStrategy, à ce stade ici.

142
00:11:38,886 --> 00:11:45,280
Donc, dans cette FacebookTokenStrategy, comment abordons-nous ce problème ?

143
00:11:45,280 --> 00:11:51,910
Laissez-moi juste envelopper le mot wrap afin que vous puissiez voir le code complet.

144
00:11:51,910 --> 00:11:59,300
Donc, pour la stratégie FaceBookTokenStrategy, nous allons commencer par dire d'abord.

145
00:11:59,300 --> 00:12:04,794
La première partie de la FaceBookTokenStrategy prend le ClientID.

146
00:12:08,542 --> 00:12:17,406
Que nous avons config à Config.facebook.clientID ici,

147
00:12:17,406 --> 00:12:22,302
et client, Secret,

148
00:12:22,302 --> 00:12:30,340
que nous avons également configuré dans, Notre fichier de configuration ici.

149
00:12:30,340 --> 00:12:38,235
Nous allons donc fournir ceci comme le premier paramètre de cette stratégie ici.

150
00:12:38,235 --> 00:12:43,985
Et puis le deuxième paramètre, est l'endroit où la défier

151
00:12:43,985 --> 00:12:48,145
la fonction de rappel qui intervient à ce stade.

152
00:12:48,145 --> 00:12:53,015
Donc, la fonction de rappel ici obtient trois valeurs.

153
00:12:53,015 --> 00:12:57,100
Donc, il obtient accesstoken,

154
00:12:59,672 --> 00:13:04,584
refreshToken, profil et

155
00:13:04,584 --> 00:13:07,760
callback appelé comme fait ici.

156
00:13:07,760 --> 00:13:12,047
Ce sont donc les quatre paramètres qui entrent dans la fonction de rappel que nous allons

157
00:13:12,047 --> 00:13:13,447
configurer à ce stade.

158
00:13:13,447 --> 00:13:18,660
Alors laissez-moi indenter ce code afin qu'il soit un peu plus clair à voir.

159
00:13:18,660 --> 00:13:25,592
Et à l'intérieur de cette fonction de rappel que je configure ici,

160
00:13:25,592 --> 00:13:30,150
je vais d'abord dire user.findone.

161
00:13:30,150 --> 00:13:35,430
Donc, nous allons essayer de voir si cet utilisateur Facebook particulier

162
00:13:35,430 --> 00:13:40,470
s'est connecté plus tôt afin que le compte

163
00:13:40,470 --> 00:13:46,381
soit déjà configuré, Avec le FaceBookID.

164
00:13:46,381 --> 00:13:49,051
Maintenant, où obtenons-nous le FacebookID ?

165
00:13:49,051 --> 00:13:55,160
Notez que nous obtenons ce profil pour l'utilisateur, qui

166
00:13:55,160 --> 00:13:59,630
arrive ici, de sorte que vous pouvez voir que ce profil est entré en tant que paramètre.

167
00:13:59,630 --> 00:14:04,208
Ce profil contient beaucoup d'informations provenant de Facebook que nous

168
00:14:04,208 --> 00:14:06,319
pouvons utiliser dans notre application.

169
00:14:06,319 --> 00:14:13,326
Le AccessToken, bien sûr, est fourni au serveur par l'utilisateur.

170
00:14:13,326 --> 00:14:20,870
Donc, une fois que nous essayons de trouver au moins un utilisateur avec un identifiant de profil Facebook.

171
00:14:20,870 --> 00:14:26,200
Donc, si cet utilisateur existe alors nous avons déjà constaté que l'utilisateur s'est déjà

172
00:14:26,200 --> 00:14:30,550
connecté à notre compte en utilisant l'approche Facebook.

173
00:14:30,550 --> 00:14:37,078
Donc, dans ce cas, nous pouvons aller de l'avant sinon nous allons créer un nouvel utilisateur.

174
00:14:37,078 --> 00:14:42,416
Donc, la fonction de rappel ici il y aura deux paramètres,

175
00:14:42,416 --> 00:14:44,557
l'err et l'utilisateur ici.

176
00:14:49,621 --> 00:14:55,298
Et cette fonction de rappel comme nous le verrons,

177
00:14:55,298 --> 00:15:01,800
bien à l'intérieur ici, nous allons vérifier pour voir si (err).

178
00:15:01,800 --> 00:15:07,072
Donc, si cela provoque une erreur, alors bien sûr

179
00:15:07,072 --> 00:15:13,408
ce que nous devons faire est de retourner fait (erreur, false).

180
00:15:15,694 --> 00:15:20,663
Donc, cela fait comme vous pouvez le voir est la fonction de rappel qui vient en tant que

181
00:15:20,663 --> 00:15:23,577
paramètre de cette fonction ici, donc

182
00:15:23,577 --> 00:15:26,770
nous allons appeler le fait avec l'err et false.

183
00:15:26,770 --> 00:15:31,830
Si ce n'est pas une erreur alors

184
00:15:31,830 --> 00:15:36,384
nous dirons si ( ! err

185
00:15:36,384 --> 00:15:41,950
&& utilisateur ! == null).

186
00:15:43,170 --> 00:15:47,880
Donc, si l'utilisateur n'est pas nul, donc cela signifie que nous avons trouvé un utilisateur dans le système

187
00:15:47,880 --> 00:15:52,610
qui n'a pas été plus tôt avec ce FacebookID particulier, Donc, pour l'utilisateur,

188
00:15:52,610 --> 00:15:59,750
tout ce que nous devons faire est de retourner fait (null,) car

189
00:15:59,750 --> 00:16:05,100
il n'y a pas d'erreur ici, puis nous allons retourner la valeur de l'utilisateur pour cela ici.

190
00:16:05,100 --> 00:16:08,560
Donc, ce qui signifie que si l'utilisateur s'est déjà connecté plus tôt en utilisant

191
00:16:08,560 --> 00:16:13,350
l'approche Facebook, alors l'utilisateur aurait déjà été créé.

192
00:16:13,350 --> 00:16:17,730
Et donc, cet utilisateur sera trouvé et ensuite nous passons juste cet utilisateur.

193
00:16:17,730 --> 00:16:25,010
Si ce n'est pas le cas, voir la partie sinon est la partie la plus intéressante de cet exercice.

194
00:16:25,010 --> 00:16:30,290
Si l'utilisateur n'existe pas, alors nous devons créer un nouvel utilisateur.

195
00:16:30,290 --> 00:16:33,959
Maintenant, pour créer le nouvel utilisateur, nous allons dire utilisateur,

196
00:16:38,653 --> 00:16:42,181
= nouvel utilisateur, et quand nous créons un nouvel utilisateur,

197
00:16:42,181 --> 00:16:45,832
rappelez-vous que nous devons passer le nom d'utilisateur.

198
00:16:45,832 --> 00:16:50,970
Le nom d'utilisateur sera obtenu à partir du profil, et le profil Facebook qui

199
00:16:50,970 --> 00:16:57,200
a renvoyé aura un champ appelé DisplayName.

200
00:16:57,200 --> 00:17:02,050
Et c'est donc le champ que je vais utiliser pour créer un nouvel utilisateur ici.

201
00:17:02,050 --> 00:17:07,176
Donc, nous allons créer un nouvel utilisateur avec le nom d'utilisateur défini

202
00:17:07,176 --> 00:17:13,455
égal à DisplayName, et après que l'utilisateur est créé,

203
00:17:13,455 --> 00:17:21,874
alors nous allons dire user.facebookID, = profile.id.

204
00:17:21,874 --> 00:17:24,654
Donc, nous allons enregistrer l'ID Facebook de l'utilisateur.

205
00:17:24,654 --> 00:17:28,902
Donc, retournez dans cet objet de profil ici,

206
00:17:28,902 --> 00:17:33,979
puis mettez l'ID Facebook de l'utilisateur à l'ID de profil.

207
00:17:33,979 --> 00:17:38,204
Par la suite, si le même utilisateur se connecte,

208
00:17:38,204 --> 00:17:43,265
cette recherche pourra trouver cet utilisateur dans notre base de données.

209
00:17:43,265 --> 00:17:46,450
Et puis nous

210
00:17:46,450 --> 00:17:50,863
dirons user.firstname

211
00:17:50,863 --> 00:17:57,242
= profile.name.givenName

212
00:17:58,857 --> 00:18:02,447
Donc, le profil a cet objet de nom sur elle,

213
00:18:02,447 --> 00:18:07,970
qui a un prénom et un nom de famille associé à cela.

214
00:18:07,970 --> 00:18:10,994
Ceci est renvoyé à partir du profil Facebook de l'utilisateur.

215
00:18:10,994 --> 00:18:16,165
Et aussi l'user.lastname, nous allons

216
00:18:16,165 --> 00:18:21,026
le définir à profile.name.FamilyName.

217
00:18:22,762 --> 00:18:28,232
Et puis, une fois que nous aurons mis en place tous ces éléments, nous dirons user.save.

218
00:18:28,232 --> 00:18:31,310
Donc, nous enregistrons les modifications à l'utilisateur

219
00:18:31,310 --> 00:18:35,270
, puis cela retournera err et l'utilisateur.

220
00:18:35,270 --> 00:18:39,090
Donc, il retournera une erreur si l'utilisateur n'a pas pu être créé,

221
00:18:39,090 --> 00:18:42,960
sinon il retournera l'utilisateur créé ici.

222
00:18:42,960 --> 00:18:47,240
Donc, dans ce cas, nous allons dire, si (err),

223
00:18:47,240 --> 00:18:51,745
alors retourneront done (err,

224
00:18:51,745 --> 00:18:58,627
false) parce que nous n'avons pas réussi à créer l'utilisateur.

225
00:18:58,627 --> 00:19:03,824
sinon, l'utilisateur a été créé avec succès,

226
00:19:03,824 --> 00:19:08,615
donc nous allons retourner done (null, utilisateur).

227
00:19:08,615 --> 00:19:11,265
Donc, peu importe le cas,

228
00:19:11,265 --> 00:19:15,965
si l'utilisateur existe alors vous trouverez cet utilisateur et retournerez la valeur.

229
00:19:15,965 --> 00:19:19,824
Si l'utilisateur n'existe pas, vous allez créer un nouvel utilisateur basé sur

230
00:19:19,824 --> 00:19:22,431
le profil Facebook de l'utilisateur que nous avons obtenu.

231
00:19:22,431 --> 00:19:28,772
Et puis ajoutez le nouvel utilisateur dans notre site serveur, dans la base de données.

232
00:19:28,772 --> 00:19:32,642
C' est donc la stratégie que nous configurons pour

233
00:19:32,642 --> 00:19:37,532
notre passeport, la nouvelle FacebookTokenStrategy.

234
00:19:37,532 --> 00:19:40,552
Cela nous permettra donc de trouver l'utilisateur.

235
00:19:40,552 --> 00:19:45,571
Donc maintenant que nous avons configuré notre application pour

236
00:19:45,571 --> 00:19:50,499
créer un utilisateur ou trouver l'utilisateur basé sur l'ID Facebook.

237
00:19:50,499 --> 00:19:55,752
La dernière étape consiste bien sûr à introduire

238
00:19:55,752 --> 00:20:00,851
une nouvelle route dans le fichier users.js.

239
00:20:00,851 --> 00:20:05,284
Donc, dans le fichier users.js, vous vous souviendrez que nous avions la route d'inscription qui

240
00:20:05,284 --> 00:20:09,950
permet à l'utilisateur de s'inscrire pour un compte local avec le nom d'utilisateur et le mot de passe.

241
00:20:09,950 --> 00:20:15,137
Et puis vous avez le login qui permet à l'utilisateur de se connecter en utilisant le nom d'utilisateur et le

242
00:20:15,137 --> 00:20:15,730
mot de passe.

243
00:20:15,730 --> 00:20:19,455
Mais maintenant, nous allons utiliser Facebook pour se connecter à l'utilisateur.

244
00:20:19,455 --> 00:20:25,601
Donc, dans ce cas, nous allons dire, router.get,

245
00:20:25,601 --> 00:20:32,208
et le point de terminaison sera /facebook/token.

246
00:20:32,208 --> 00:20:37,260
Donc, si l'utilisateur envoie une demande get aux utilisateurs/facebook/jeton,

247
00:20:37,260 --> 00:20:41,550
alors nous allons authentifier l'utilisateur en utilisant

248
00:20:41,550 --> 00:20:45,585
l'authentification basée sur Facebook OAuth 2.

249
00:20:45,585 --> 00:20:50,470
Donc, ici, nous allons dire passeport.authenticate, et

250
00:20:50,470 --> 00:20:57,555
nous allons nous authentifier en utilisant la stratégie facebook-jeton.

251
00:20:57,555 --> 00:21:04,076
Rappelons que nous avions déjà configuré cela dans notre fichier authenticate.js,

252
00:21:04,076 --> 00:21:10,908
donc nous allons configurer la stratégie de jeton facebook-authentification passeport et

253
00:21:10,908 --> 00:21:15,786
ensuite cette fonction de rappel qui obtient req, res ici.

254
00:21:23,390 --> 00:21:30,081
Alors laissez-moi, bascule le mot wrap ici,

255
00:21:30,081 --> 00:21:36,356
afin que vous puissiez voir que c'est le router.get sur ce point de terminaison ici.

256
00:21:36,356 --> 00:21:44,890
Et puis ici, je vais configurer cette application.

257
00:21:44,890 --> 00:21:51,768
Donc, à ce stade, nous dirions, si (req.user), remarquez maintenant que lorsque nous appelons

258
00:21:51,768 --> 00:21:57,168
passeport.authenticate avec la stratégie facebook-token.

259
00:21:57,168 --> 00:21:59,055
Ceci, s'il réussit,

260
00:21:59,055 --> 00:22:03,010
il aurait chargé dans l'utilisateur dans l'objet requête.

261
00:22:03,010 --> 00:22:08,387
Donc, au moment où nous arrivons à ce point ici après l'

262
00:22:08,387 --> 00:22:11,596
exécution du logiciel intermédiaire passeport.authenticate facebook-token,

263
00:22:11,596 --> 00:22:16,291
vous auriez déjà chargé l'utilisateur dans l'objet de requête.

264
00:22:16,291 --> 00:22:23,070
Donc, si c'est le cas, alors, nous allons dire, nous allons créer un jeton.

265
00:22:23,070 --> 00:22:27,709
Nous allons créer un jeton web JSON ici, tout comme la façon dont nous avons

266
00:22:27,709 --> 00:22:32,371
créé le jeton Web JSON lorsque l'utilisateur s'est connecté ici.

267
00:22:32,371 --> 00:22:35,275
Donc, on va copier ça ici.

268
00:22:38,010 --> 00:22:41,586
Authenticate.getToken, donc cela nous obtiendra le jeton web JSON.

269
00:22:41,586 --> 00:22:46,656
Donc essentiellement, l'utilisateur envoie le jeton d'accès au serveur express,

270
00:22:46,656 --> 00:22:50,634
le serveur express utilise le AccessToken pour aller sur Facebook

271
00:22:50,634 --> 00:22:52,979
, puis récupérer le profil de l'utilisateur.

272
00:22:52,979 --> 00:22:57,560
Et si l'utilisateur n'existe pas, nous allons créer un nouvel utilisateur avec cet identifiant Facebook.

273
00:22:57,560 --> 00:23:02,486
Et puis après cela, notre serveur express va générer

274
00:23:02,486 --> 00:23:07,818
un jeton web JSON, puis retourner le jeton web JSON à notre client.

275
00:23:07,818 --> 00:23:13,878
Tous les accès ultérieurs de notre utilisateur devront inclure ce

276
00:23:13,878 --> 00:23:19,317
jeton web JSON que nous venons de renvoyer en utilisant cette approche.

277
00:23:19,317 --> 00:23:24,280
Donc, à ce stade, vous n'avez plus besoin du jeton d'accès Facebook.

278
00:23:24,280 --> 00:23:29,287
Vous pouvez ignorer le jeton d'accès Facebook à ce stade car

279
00:23:29,287 --> 00:23:35,237
le jeton Web JSON est celui qui maintient l'authentification des utilisateurs active pendant

280
00:23:35,237 --> 00:23:39,602
toute la durée pendant laquelle ce jeton Web JSON est actif.

281
00:23:39,602 --> 00:23:45,529
Maintenant, en plus de cela, bien sûr, nous devons également faire ces étapes ici.

282
00:23:45,529 --> 00:23:48,365
Donc je vais juste copier cette partie ici.

283
00:23:48,365 --> 00:23:53,336
parce que je vais faire exactement la même chose dans ce cas aussi,

284
00:23:53,336 --> 00:23:56,284
donc nous allons coller dans ce code ici.

285
00:23:56,284 --> 00:24:00,485
Donc, nous allons dire StatusCode = 200, type d'en-tête de contenu,

286
00:24:00,485 --> 00:24:06,120
puis nous dirons res.json que vous êtes connecté avec succès, et c'est tout.

287
00:24:06,120 --> 00:24:13,521
Donc, avec cette approche, comme vous pouvez le voir, en utilisant maintenant un appel à ce point de terminaison.

288
00:24:13,521 --> 00:24:17,498
L' application utilisateur, le client dans ce cas,

289
00:24:17,498 --> 00:24:24,320
transmettra le jeton d'accès Facebook qu'il vient d'obtenir de Facebook.

290
00:24:24,320 --> 00:24:27,970
Et puis notre serveur express utilisera ensuite le jeton d'accès Facebook pour

291
00:24:27,970 --> 00:24:30,380
vérifier l'utilisateur sur Facebook.

292
00:24:30,380 --> 00:24:35,580
Et puis si l'utilisateur est reconnu par Facebook comme un utilisateur légitime,

293
00:24:35,580 --> 00:24:42,110
alors notre serveur express retournera un jeton JSON wed à notre client.

294
00:24:42,110 --> 00:24:44,920
Et puis notre client est authentifié et

295
00:24:44,920 --> 00:24:48,650
peut ensuite procéder à la réalisation des autres opérations

296
00:24:48,650 --> 00:24:53,460
en utilisant le jeton JSON wed dans l'en-tête de tous les messages de requête.

297
00:24:53,460 --> 00:25:00,190
Par la suite, comme nous l'avons fait avec la stratégie d'authentification locale, c'est tout.

298
00:25:00,190 --> 00:25:07,630
Donc, nous avons terminé toutes les mises à jour de notre application, sauvegardons les changements.

299
00:25:08,810 --> 00:25:14,940
Aller à notre terminal, démarrons le serveur ici,

300
00:25:14,940 --> 00:25:19,710
donc nous allons dire npm start, et le serveur est opérationnel.

301
00:25:20,740 --> 00:25:26,320
Et j'ai remarqué que j'avais tapé dans le port P-A-S-S,

302
00:25:26,320 --> 00:25:28,790
et cela a provoqué une erreur ici.

303
00:25:28,790 --> 00:25:32,250
Donc, notez que combien il est facile de faire des erreurs.

304
00:25:32,250 --> 00:25:35,439
Alors laissez-moi y aller et corriger cela, puis revenez et redémarrez mon serveur.

305
00:25:37,080 --> 00:25:40,280
Donc, quand vous rencontrez des erreurs comme celles-ci, ne paniquez pas.

306
00:25:40,280 --> 00:25:43,470
Regardez autour de vous pour voir où se trouve le problème et très souvent, ce

307
00:25:43,470 --> 00:25:47,580
sera un problème simple comme celui-ci qui provoquera des erreurs pour vous.

308
00:25:48,970 --> 00:25:54,160
Encore une fois, revenant au users.js et

309
00:25:54,160 --> 00:25:57,930
vous voyez que dans le fichier authenticate.js,

310
00:25:57,930 --> 00:26:02,270
j'ai configuré ce port P-A-S-S disant.

311
00:26:02,270 --> 00:26:06,100
Donc, dans le fichier authenticate.js, laissez-moi corriger cela à passsport

312
00:26:06,100 --> 00:26:08,702
, puis enregistrer les modifications, puis redémarrer mon serveur.

313
00:26:09,770 --> 00:26:16,340
Maintenant, redémarrez mon serveur, donc mon serveur est maintenant opérationnel.

314
00:26:17,400 --> 00:26:20,160
À ce stade, allez dans un navigateur.

315
00:26:20,160 --> 00:26:26,212
Et dans le navigateur, tapez https://localhost3443.

316
00:26:29,625 --> 00:26:37,350
Si vous avez cette page mise en cache ici, vous pouvez supprimer le cache.

317
00:26:37,350 --> 00:26:41,417
Ou tapez simplement localhost:3343/index.html, et

318
00:26:41,417 --> 00:26:45,829
puis vous remarquerez immédiatement que dans ce index.html,

319
00:26:45,829 --> 00:26:49,640
vous verrez ce bouton appelé bouton Connexion.

320
00:26:49,640 --> 00:26:54,280
Nous allons donc cliquer sur ce bouton de connexion pour vous connecter à Facebook.

321
00:26:54,280 --> 00:26:59,880
Connectez-vous, puis vous arriverez avec ce message ici.

322
00:26:59,880 --> 00:27:03,365
Si vous vous êtes déjà connecté à Facebook plus tôt,

323
00:27:03,365 --> 00:27:07,840
il demandera l'autorisation de continuer en tant qu'utilisateur.

324
00:27:07,840 --> 00:27:12,440
Si ce n'est pas le cas, il vous demandera de vous connecter à Facebook avec

325
00:27:12,440 --> 00:27:14,030
, puis vous permettra de continuer.

326
00:27:14,030 --> 00:27:17,000
Depuis que je viens de me connecter à Facebook un peu plus tôt, donc

327
00:27:17,000 --> 00:27:19,020
je peux simplement cliquer sur Continuer.

328
00:27:19,020 --> 00:27:24,955
Maintenant, ouvrez la console JavaScript des développeurs en bas ici.

329
00:27:24,955 --> 00:27:31,810
Et dans la console JavaScript, vous voyez un tas de messages imprimés ici.

330
00:27:31,810 --> 00:27:33,070
Et puis en particulier,

331
00:27:33,070 --> 00:27:37,720
ouvrez cet objet que vous verrez dans la console JavaScript.

332
00:27:37,720 --> 00:27:43,081
Et à l'intérieur de cet objet, vous verrez cette réponse alt ici.

333
00:27:43,081 --> 00:27:49,370
Et là, vous verrez un outil d'accès présent là.

334
00:27:49,370 --> 00:27:55,320
Maintenant, c'est une réponse qui est obtenue de Facebook ou

335
00:27:55,320 --> 00:28:00,610
sur le serveur d'authentification par notre application ici.

336
00:28:00,610 --> 00:28:03,060
Et je vais simplement copier ceci,

337
00:28:03,060 --> 00:28:07,010
parce que c'est le jeton d'accès que Facebook nous a fourni.

338
00:28:07,010 --> 00:28:13,710
Maintenant, je dois donner ce jeton d'accès à mon serveur express

339
00:28:13,710 --> 00:28:19,990
pour qu'il aille vérifier mon profil, puis me permettre de me connecter à cette application.

340
00:28:19,990 --> 00:28:22,860
Donc, je fais cela d'une manière serrée

341
00:28:22,860 --> 00:28:27,560
ici simplement parce que je voulais vous montrer comment le jeton d'accès entre ici.

342
00:28:27,560 --> 00:28:30,940
Et nous copions le jeton d'accès, puis je vais prendre ceci et

343
00:28:30,940 --> 00:28:36,820
utiliser Postman pour envoyer ce jeton d'accès à mon serveur Express.

344
00:28:36,820 --> 00:28:42,330
Maintenant, lorsque vous concevez une application Web comme Angular, ou

345
00:28:42,330 --> 00:28:48,840
l'application Ionic, ou l'application NativeScript, vous n'avez pas besoin de faire toutes ces étapes.

346
00:28:48,840 --> 00:28:53,634
Maintenant, fondamentalement, lorsque le jeton d'accès est retourné à votre application Web, à

347
00:28:53,634 --> 00:28:58,086
l'application Angular, ou à l'application Ionic, ou à l'application NativeScript,

348
00:28:58,086 --> 00:29:01,868
vous allez simplement capturer ce jeton d'accès.

349
00:29:01,868 --> 00:29:06,791
Ensuite, vous passerez ce jeton d'accès sur le

350
00:29:06,791 --> 00:29:12,770
serveur Express en utilisant XMLHttpRequest pour obtenir les informations.

351
00:29:12,770 --> 00:29:16,410
Mais puisque je voulais illustrer manuellement les étapes.

352
00:29:16,410 --> 00:29:21,319
Donc, j'ai configuré ce index.html avec un

353
00:29:21,319 --> 00:29:24,640
code JavaScript simple que Facebook fournit pour moi.

354
00:29:26,420 --> 00:29:30,792
Pour que je puisse récupérer ce jeton d'autorisation que nous avons obtenu de

355
00:29:30,792 --> 00:29:31,454
Facebook.

356
00:29:31,454 --> 00:29:34,662
Alors laissez-moi copier ce jeton d'autorisation.

357
00:29:34,662 --> 00:29:39,110
Maintenant, nous allons aller à Postman, puis essayer de

358
00:29:39,110 --> 00:29:45,340
voir comment nous pouvons obtenir le jeton web JSON à partir de notre serveur Express.

359
00:29:45,340 --> 00:29:49,220
Maintenant, aller à Postman, de Postman,

360
00:29:49,220 --> 00:29:54,525
laissez-moi maintenant faire une requête GET à

361
00:29:54,525 --> 00:30:03,195
LocalHost : 3443User's FacebookToken.

362
00:30:03,195 --> 00:30:07,855
Et quand j'envoie cette requête à ce point,

363
00:30:07,855 --> 00:30:13,115
l'autre configuration que je dois faire ici est que,

364
00:30:13,115 --> 00:30:18,080
j'ai besoin de passer ce jeton d'accès que je viens d'obtenir.

365
00:30:18,080 --> 00:30:21,970
Maintenant, pour passer un jeton d'accès dans l'en-tête,

366
00:30:21,970 --> 00:30:26,370
je peux le passer en tant qu'en-tête d'autorisation en tapant autorisation.

367
00:30:26,370 --> 00:30:33,660
Mais notez que la valeur doit être tapée en Bêta avec un B majuscule dans ce cas,

368
00:30:33,660 --> 00:30:41,350
puis collez ce jeton d'accès que nous avons obtenu de Facebook ici.

369
00:30:41,350 --> 00:30:44,840
Notez la majuscule B ici,

370
00:30:44,840 --> 00:30:48,990
puis vous pouvez le transmettre à notre serveur.

371
00:30:50,090 --> 00:30:53,970
Et puis en réponse de notre serveur,

372
00:30:53,970 --> 00:30:59,810
vous verrez que vous auriez obtenu le jeton web JSON à partir de notre site serveur.

373
00:30:59,810 --> 00:31:05,472
C' est donc une façon d'obtenir le jeton web JSON en échangeant votre

374
00:31:05,472 --> 00:31:10,000
jeton d'accès de Facebook que vous venez d'obtenir avec votre serveur Express.

375
00:31:10,000 --> 00:31:16,330
Et votre serveur Express à son tour va

376
00:31:16,330 --> 00:31:19,960
obtenir vos informations de profil auprès de Facebook,

377
00:31:19,960 --> 00:31:23,720
puis créer un compte spécifiquement pour vous,

378
00:31:23,720 --> 00:31:28,260
puis vous retourner le jeton web JSON si tout est réussi.

379
00:31:28,260 --> 00:31:33,290
Une autre façon de transmettre ces informations est dans l'en-tête,

380
00:31:33,290 --> 00:31:40,480
vous tapez access_token comme clé.

381
00:31:40,480 --> 00:31:46,268
Et dans la valeur, vous tapez simplement le

382
00:31:46,268 --> 00:31:52,020
jeton d'accès comme celui-ci ici, puis vous pouvez envoyer la requête Et la même chose.

383
00:31:52,020 --> 00:31:55,878
Il retournera à nouveau le jeton web JSON pour vous.

384
00:31:55,878 --> 00:31:59,410
Et puis vous captureriez le jeton Web JSON, puis continuez avec le reste

385
00:31:59,410 --> 00:32:05,300
des accès à votre serveur express en utilisant ce jeton Web JSON.

386
00:32:05,300 --> 00:32:10,010
Une troisième approche consiste à inclure cela dans

387
00:32:10,010 --> 00:32:15,410
votre URL elle-même en tant que paramètre de requête.

388
00:32:15,410 --> 00:32:23,827
La troisième approche est de dire jeton ? access_token=

389
00:32:23,827 --> 00:32:32,290
, puis collez le jeton web JSON dans ce paramètre de requête.

390
00:32:32,290 --> 00:32:37,140
N' utilisez pas les guillemets ici, juste le jeton web JSON lui-même.

391
00:32:37,140 --> 00:32:40,810
Et puis envoyez la requête à votre serveur.

392
00:32:40,810 --> 00:32:47,680
Et puis même alors votre serveur retournera le jeton web JSON correspondant.

393
00:32:47,680 --> 00:32:52,450
Ainsi, vous voyez trois façons différentes que vous pouvez analyser dans votre jeton d'accès Facebook sur

394
00:32:52,450 --> 00:32:57,350
votre serveur, puis obtenir le jeton Web JSON à partir de votre serveur.

395
00:32:57,350 --> 00:33:01,660
Et après cela, le reste de ces étapes se déroulent comme avant.

396
00:33:02,970 --> 00:33:09,400
Maintenant, pour vous convaincre qu'en fait un nouveau compte a été créé avec le

397
00:33:09,400 --> 00:33:13,720
profil Facebook pour cet utilisateur particulier, allons au terminal.

398
00:33:15,080 --> 00:33:20,240
Dans le terminal, dans une nouvelle fenêtre de terminal, je vais commencer l'ondulation mongo ici.

399
00:33:20,240 --> 00:33:25,050
Donc, dans l'ondulation mongo, laissez-moi dire, utilisez Confusion.

400
00:33:25,050 --> 00:33:31,560
Et puis je dirai, db.users.find () .pretty (),

401
00:33:31,560 --> 00:33:36,570
puis imprimer tous les utilisateurs qui sont enregistrés dans mon système.

402
00:33:36,570 --> 00:33:40,540
Vous remarquez que les trois utilisateurs que nous avions configurés dans les exercices précédents

403
00:33:40,540 --> 00:33:41,410
sont tous là.

404
00:33:43,350 --> 00:33:48,130
Notez en outre un quatrième utilisateur qui vient d'être ajouté dans.

405
00:33:48,130 --> 00:33:53,580
Et notez que pour cet utilisateur particulier, nous n'avons pas encore le hachage dans la source,

406
00:33:53,580 --> 00:33:57,650
mais à la place le FaceBookID de cet utilisateur est configuré, et

407
00:33:57,650 --> 00:34:02,660
le nom d'utilisateur est configuré pour être cette valeur, et le prénom est configuré là.

408
00:34:02,660 --> 00:34:05,580
Et aussi le nom de famille aurait dû être mis en place ici mais

409
00:34:05,580 --> 00:34:08,990
je pense qu'il y a une petite erreur dans mon code.

410
00:34:08,990 --> 00:34:16,910
Donc je vais aller vérifier la partie du nom de famille là-bas.

411
00:34:18,100 --> 00:34:20,110
Aller à authenticate.js.

412
00:34:20,110 --> 00:34:23,130
Voyons si j'ai fait erreur ici.

413
00:34:23,130 --> 00:34:24,580
On y va.

414
00:34:24,580 --> 00:34:28,340
J' ai tapé le nom F-A-M-I-L-Y.

415
00:34:28,340 --> 00:34:31,980
Vous voyez, même moi, je ne veux pas faire des erreurs.

416
00:34:31,980 --> 00:34:36,277
Donc, cela devrait être FamilyName ici,

417
00:34:36,277 --> 00:34:42,730
user.lastname Profile.Name.FamilyName ici.

418
00:34:42,730 --> 00:34:46,520
Alors laissez-moi enregistrer les changements, et maintenant le code devrait fonctionner correctement.

419
00:34:47,710 --> 00:34:49,950
En revenant à nouveau au terminal,

420
00:34:49,950 --> 00:34:54,460
vous voyez maintenant qu'un nouvel utilisateur a été créé avec le profil Facebook ici.

421
00:34:54,460 --> 00:34:59,130
Maintenant, chaque fois que j'ai essayé de m'authentifier en utilisant Facebook

422
00:34:59,130 --> 00:35:00,520
est le même processus.

423
00:35:00,520 --> 00:35:03,000
J' ai obtenu le jeton d'accès de Facebook

424
00:35:03,000 --> 00:35:06,160
, puis j'analyse dans le jeton d'accès à mon serveur express.

425
00:35:06,160 --> 00:35:10,790
Mon serveur express va ensuite aller sur Facebook, récupérer le profil,

426
00:35:10,790 --> 00:35:14,020
puis vérifier si l'utilisateur existe déjà.

427
00:35:14,020 --> 00:35:18,660
Et dans la connexion suivante que je fais en utilisant Facebook,

428
00:35:18,660 --> 00:35:22,460
je trouverais que cet utilisateur particulier est déjà existant dans le système.

429
00:35:22,460 --> 00:35:26,540
Donc, il va simplement aller de l'avant et l'utilisateur sera authentifié

430
00:35:26,540 --> 00:35:31,730
, puis le serveur supplémentaire émettra un jeton web JSON à leur

431
00:35:31,730 --> 00:35:37,385
client et nous pouvons aller de l'avant à partir de ce point comme avant.

432
00:35:37,385 --> 00:35:42,395
Donc, vous voyez, configurer l'authentification basée sur OAuth 2 en utilisant un

433
00:35:42,395 --> 00:35:48,123
fournisseur de services OAuth 2 comme Facebook n'est pas si difficile à condition que nous obtenions

434
00:35:48,123 --> 00:35:54,135
le module approprié basé sur la stratégie d'authentification Facebook passeport.

435
00:35:54,135 --> 00:35:59,060
Comme passeport jeton Facebook qui prend déjà en charge une grande partie

436
00:35:59,060 --> 00:36:04,253
du travail en notre nom et nous permet ensuite de configurer notre serveur express

437
00:36:04,253 --> 00:36:09,750
pour gérer l'authentification tierce partie basée sur OAuth 2 de Facebook.

438
00:36:09,750 --> 00:36:12,730
Avec cela, nous terminons cet exercice.

439
00:36:12,730 --> 00:36:16,490
Dans cet exercice, nous avons appris comment faire toute l'authentification OAuth 2

440
00:36:16,490 --> 00:36:20,590
en utilisant Facebook comme authentification OAuth 2 fournie.

441
00:36:20,590 --> 00:36:25,263
C' est le bon moment pour vous d'enregistrer les modifications que vous avez apportées à

442
00:36:25,263 --> 00:36:29,521
votre référentiel Git avec le message passeport Facebook.

443
00:36:29,521 --> 00:36:35,380
[ MUSIQUE]