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

2
00:00:04,557 --> 00:00:10,906
Nun, da wir über OAuth 2 verstanden haben und wie Facebook OAuth 2 unterstützt,

3
00:00:10,906 --> 00:00:16,870
lassen Sie uns auf diese Übung gehen, wo wir unsere

4
00:00:16,870 --> 00:00:23,460
Express-Server-Anwendung konfigurieren, um Facebook als OAuth 2-Anbieter für unseren Server zu nutzen.

5
00:00:23,460 --> 00:00:26,820
Und zur gleichen Zeit für unsere Kundenanwendung.

6
00:00:26,820 --> 00:00:30,500
In dieser Übung werden wir uns auf den Pass verlassen, den

7
00:00:30,500 --> 00:00:34,730
wir bereits in unserer Express-Anwendung konfiguriert haben.

8
00:00:34,730 --> 00:00:39,890
Wir werden eine neue Strategie für die Authentifizierung mit Facebook

9
00:00:39,890 --> 00:00:43,600
mit diesem Pass Facebook Token Knoten Modul konfigurieren.

10
00:00:45,680 --> 00:00:51,629
Um mit dieser Übung zu beginnen,

11
00:00:51,629 --> 00:01:01,590
gehen Sie zu https//developers.facebook.com/apps.

12
00:01:01,590 --> 00:01:07,640
Nun, hier werden Sie die Client-Anwendung registrieren, die im Grunde

13
00:01:07,640 --> 00:01:13,280
Ihr Server ist, der zusätzliche Server, der als Client-Anwendung für Facebook fungiert.

14
00:01:13,280 --> 00:01:16,380
Und dann werden wir dort eine Client-Anwendung registrieren.

15
00:01:16,380 --> 00:01:21,250
Und dann erhalten Sie eine App-ID und ein App-Geheimnis von Facebook.

16
00:01:21,250 --> 00:01:24,950
Nun ist es selbstverständlich, dass Sie einen Facebook-Account benötigen

17
00:01:24,950 --> 00:01:27,160
, um dies konfigurieren zu können.

18
00:01:27,160 --> 00:01:32,520
Wenn Sie kein Facebook-Konto haben und diese Übung nicht durchführen möchten,

19
00:01:32,520 --> 00:01:36,220
dann ist es nicht schaden, diese Übung nicht durchzuführen.

20
00:01:36,220 --> 00:01:39,110
Aber natürlich

21
00:01:39,110 --> 00:01:45,210
benötigen Sie für diese OAuth 2-Übung ein Facebook-Konto, um Ihren OAuth-Anbieter auf Facebook zu konfigurieren. Wenn Sie

22
00:01:45,210 --> 00:01:47,390
also auf diese Seite

23
00:01:47,390 --> 00:01:52,510
Developers.facebook.com/apps gehen, werden Sie feststellen, dass Sie

24
00:01:52,510 --> 00:01:57,970
sich anmelden müssen, um fortzufahren, wenn Sie nicht von Ihrem Browser eingeloggt sind.

25
00:01:57,970 --> 00:02:01,790
Jetzt können Sie sehen, dass ich hier bereits ein paar Apps konfiguriert und

26
00:02:01,790 --> 00:02:03,170
getestet habe.

27
00:02:03,170 --> 00:02:07,990
Um nun eine neue App zu erstellen, klicken Sie auf „Neue App hinzufügen“.

28
00:02:07,990 --> 00:02:13,140
Und dann können Sie den Namen für Ihre App angeben.

29
00:02:13,140 --> 00:02:20,990
Also kann ich Confusion3 sagen, und dann können wir die Kontakt-E-Mail zur Verfügung stellen.

30
00:02:20,990 --> 00:02:26,336
Folgen Sie dann dem Verfahren, um Ihre neue App hier zu erstellen.

31
00:02:36,108 --> 00:02:40,925
Sobald die App erstellt wurde, werden Sie sofort feststellen,

32
00:02:40,925 --> 00:02:45,290
dass eine App-ID für Ihre App erstellt wurde.

33
00:02:45,290 --> 00:02:47,180
Und dann für diese spezielle App.

34
00:02:47,180 --> 00:02:50,680
Wenn Sie also zum Dashboard gehen, werden Sie

35
00:02:51,840 --> 00:02:56,640
zwei Informationen sehen, die Sie wirklich benötigen, um weiter fortzufahren.

36
00:02:56,640 --> 00:03:01,850
Eine davon ist die App-ID. Stellen Sie also sicher, dass Sie eine Kopie der App-ID erstellen.

37
00:03:01,850 --> 00:03:03,810
Und die zweite ist das App-Geheimnis.

38
00:03:03,810 --> 00:03:10,320
Also, Sie können hier auf den Show-Button tippen und dann erhalten Sie die App geheim.

39
00:03:10,320 --> 00:03:14,350
Geheimnis hier, so wie Sie sehen können, sind diese beiden nichts anderes als ASCII-Strings.

40
00:03:14,350 --> 00:03:18,980
Machen Sie also eine Kopie davon, weil Sie Ihren Experten-Server und

41
00:03:18,980 --> 00:03:23,200
auch Ihre Client-Anwendung mit diesen zwei Informationen konfigurieren müssen.

42
00:03:23,200 --> 00:03:25,870
Und sobald Sie das ergriffen haben,

43
00:03:25,870 --> 00:03:29,105
können wir mit dem Rest der Übung fortfahren.

44
00:03:29,105 --> 00:03:33,500
Sie müssen zu Ihrem Dashboard Ihrer Anwendung gehen.

45
00:03:33,500 --> 00:03:38,890
Und in den Einstellungen, wie Sie sehen können, fügen

46
00:03:38,890 --> 00:03:43,310
Sie in den Grundeinstellungen hier einfach eine Website-Plattform hinzu.

47
00:03:43,310 --> 00:03:52,650
Und geben Sie dann die URL als https//localhost3443 an.

48
00:03:52,650 --> 00:03:58,168
Und speichern Sie die Änderungen hier in Ihrer Anwendung.

49
00:03:58,168 --> 00:04:03,910
Nach dem Hinzufügen in der Website gehen Sie hier zu den erweiterten Einstellungen.

50
00:04:03,910 --> 00:04:09,000
Und dann klicken Sie auf Ja, um native oder

51
00:04:09,000 --> 00:04:14,400
Desktop-App hier zu sagen und sagen Sie Ja dazu und speichern Sie die Änderungen.

52
00:04:15,590 --> 00:04:20,461
Geben Sie in der Grundeinstellung in den App-Domänen

53
00:04:20,461 --> 00:04:28,339
https://localhost:3443 ein und speichern Sie die Änderungen.

54
00:04:29,640 --> 00:04:33,520
Als nächstes gehen Sie zu den Übungsanweisungen für diese Übung.

55
00:04:33,520 --> 00:04:36,580
Und Sie würden sehen, dass es eine index.html Datei gibt, die

56
00:04:36,580 --> 00:04:39,540
ich in den Übungsressourcen bereitgestellt habe.

57
00:04:39,540 --> 00:04:47,270
Laden Sie diese Datei index.html herunter, und verschieben Sie sie dann in Ihren Öffentlichen Ordner.

58
00:04:47,270 --> 00:04:49,941
Also lassen Sie uns diese index.html Datei herunterladen.

59
00:04:57,932 --> 00:05:05,548
Als nächstes

60
00:05:05,548 --> 00:05:11,125
sehen Sie, wenn Sie in den Ordner ConfusionServer im Öffentlichen Ordner gehen, dass ich bereits eine Datei index.html habe.

61
00:05:11,125 --> 00:05:16,039
Ich werde dies durch die heruntergeladene Datei index.html ersetzen

62
00:05:16,039 --> 00:05:17,774
, die ich gerade erhalten habe.

63
00:05:17,774 --> 00:05:20,502
Ich habe das auf meinem Desktop gespeichert.

64
00:05:20,502 --> 00:05:23,173
Also werde ich nur diese index.html ziehen und

65
00:05:23,173 --> 00:05:27,771
dann die Datei index.html im öffentlichen Ordner meines ConfusionServers ersetzen.

66
00:05:27,771 --> 00:05:31,227
Als nächstes öffnen wir zum Editor die Datei index.html.

67
00:05:31,227 --> 00:05:34,584
Und wenn Sie es öffnen, werden Sie sehen, dass ich

68
00:05:34,584 --> 00:05:35,112
hier bereits einen JavaScript-Code konfiguriert habe.

69
00:05:35,112 --> 00:05:39,850
Dieser JavaScript-Code, den ich von Facebook bekommen habe, wo sie

70
00:05:39,850 --> 00:05:44,790
angeben, wie Sie eine Dev-Anwendung mit diesem konfigurieren können.

71
00:05:44,790 --> 00:05:51,030
Also, ich habe das aus der Facebook-Anleitung kopiert.

72
00:05:51,030 --> 00:05:55,470
Insbesondere werden Sie feststellen, dass in dieser Datei index.html

73
00:05:55,470 --> 00:05:58,735
dieses AppID-Feld hier vorhanden ist.

74
00:05:58,735 --> 00:06:04,400
Sie werden dieses AppID-Feld durch die

75
00:06:04,400 --> 00:06:09,060
Client-ID ersetzen, die Sie erhalten haben, indem Sie Ihre App auf Facebook registrieren.

76
00:06:09,060 --> 00:06:13,130
Also, hier ersetze ich die ID dieses Kunden

77
00:06:13,130 --> 00:06:18,430
durch die ID meiner App, die ich hier bei Facebook registriert habe.

78
00:06:18,430 --> 00:06:22,957
Und Sie müssen den gleichen Schritt mit der App machen

79
00:06:22,957 --> 00:06:27,750
, die Sie auf Facebook registrieren, mit der App-ID, die Sie von Facebook erhalten.

80
00:06:27,750 --> 00:06:30,812
Und speichern Sie dann die Änderungen in index.html.

81
00:06:30,812 --> 00:06:36,980
Diese index.html Seite, die ich hier habe, wird

82
00:06:36,980 --> 00:06:42,290
eine Login-Schaltfläche auf der index.html Seite erstellen, die

83
00:06:42,290 --> 00:06:47,580
uns hilft, sich bei Facebook anzumelden und dann ein Zugriffstoken von Facebook zu erhalten.

84
00:06:48,660 --> 00:06:51,260
Als nächstes werden

85
00:06:51,260 --> 00:06:55,280
wir in den ConfusionServer-Ordner gehen, das Passport-Facebook-Token-Knotenmodul installieren.

86
00:06:55,280 --> 00:06:58,494
Geben Sie also an der Eingabeaufforderung npm install

87
00:07:00,200 --> 00:07:05,003
Passport-Facebook-Token ein und

88
00:07:05,003 --> 00:07:09,730
installieren Sie dieses Knotenmodul.

89
00:07:09,730 --> 00:07:17,000
Und wie Sie sehen können, benutze ich die Version 3.3.0 in diesem Kurs.

90
00:07:17,000 --> 00:07:20,446
Gehen Sie zurück zum Editor, öffnen Sie config.js.

91
00:07:20,446 --> 00:07:25,162
Und in config.js werde ich

92
00:07:25,162 --> 00:07:34,440
eine Eigenschaft namens 'facebook' in meine config.js Datei hinzufügen.

93
00:07:34,440 --> 00:07:39,221
Und hier im Inneren werde ich

94
00:07:39,221 --> 00:07:44,481
meine ClientID und

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

96
00:07:48,560 --> 00:07:54,150
Jetzt ist die ClientID genau das, was Sie von Facebook erhalten.

97
00:07:54,150 --> 00:08:00,304
Hier, und das Geheimnis des Kunden, wie Sie sahen, als Sie Ihre Anwendung registriert.

98
00:08:02,198 --> 00:08:05,221
Sie erhalten dort eine zweite Zeichenfolge, also kopieren Sie diese Zeichenfolge und

99
00:08:05,221 --> 00:08:07,764
fügen Sie sie dann in das ClientSecret ein.

100
00:08:07,764 --> 00:08:13,790
Stellen Sie nun sicher, dass dies hier als String eingefügt wird.

101
00:08:13,790 --> 00:08:19,090
In ähnlicher Weise fügen Sie das ClientSecret in meine Datei config.js ein.

102
00:08:19,090 --> 00:08:26,360
Also, das hier zu konfigurieren, hilft mir, diese beiden dort zu verwenden, wo ich in meinem Code brauche.

103
00:08:26,360 --> 00:08:29,790
Als nächstes, wie wir festgestellt haben, wann immer der Benutzer

104
00:08:32,390 --> 00:08:37,770
sich anmeldet und dann das Zugriffstoken erhält und es an unseren Express-Server weitergibt.

105
00:08:37,770 --> 00:08:41,160
Der Express-Server wird dieses Zugriffstoken verwenden und

106
00:08:41,160 --> 00:08:47,840
die Dateiinformationen vom Facebook 0 sollte Server abrufen.

107
00:08:47,840 --> 00:08:52,380
Und dann, sobald es die Profilinformationen erreicht, dann wird unser Express-Server

108
00:08:52,380 --> 00:08:57,980
ein neues Benutzerkonto in unserer Anwendung erstellen.

109
00:08:57,980 --> 00:09:01,750
Und verwenden Sie die Facebook-ID als Index in diesem Use-Account.

110
00:09:01,750 --> 00:09:03,630
Um dies anzupassen,

111
00:09:03,630 --> 00:09:08,467
werden wir in die Datei user.js gehen, wo wir unser Modell definiert haben.

112
00:09:08,467 --> 00:09:12,854
Also, neben dem Vornamen und dem Nachnamen,

113
00:09:12,854 --> 00:09:17,241
werde ich hier auch ein Feld namens FacebookId hinzufügen,

114
00:09:17,241 --> 00:09:20,510
das vom Typ String hier ist.

115
00:09:20,510 --> 00:09:24,548
Die FacebookId speichert die FacebookId

116
00:09:24,548 --> 00:09:28,700
des Benutzers, der das Zugriffstoken übergeben hat.

117
00:09:29,760 --> 00:09:34,002
Im nächsten Schritt werde ich Ihnen zeigen, wie Sie dies konfigurieren.

118
00:09:34,002 --> 00:09:40,260
Dann konfigurieren wir unsere Facebook-Strategie mit dem Pass Facebook Token..

119
00:09:40,260 --> 00:09:43,640
Wenn ein Benutzer das Zugriffstoken übergibt,

120
00:09:43,640 --> 00:09:47,230
werden Sie das Profil abrufen und dann ein Konto für

121
00:09:47,230 --> 00:09:52,160
diesen Benutzer in unserem lokalen Server hier in unserem Express-Server einrichten.

122
00:09:52,160 --> 00:09:56,410
Wir werden den Vornamen und den Nachnamen und die FacebookID initialisieren.

123
00:09:56,410 --> 00:10:01,760
Aber natürlich wird dieses spezielle Konto kein Passwort oder

124
00:10:01,760 --> 00:10:04,140
eher den damit verbundenen Hash haben.

125
00:10:04,140 --> 00:10:09,150
Denn wenn ein Benutzer sich mit diesem Konto anmeldet, muss er seinen

126
00:10:09,150 --> 00:10:14,400
Facebook-Login-Teil verwenden, um sich bei unserer Anwendung anzumelden.

127
00:10:14,400 --> 00:10:18,330
Als nächstes werden wir gehen, um dark.js Datei zu authentifizieren.

128
00:10:18,330 --> 00:10:23,138
Also hier, wo wir alle unsere verschiedenen

129
00:10:23,138 --> 00:10:25,507
Passauthentifizierungsstrategien eingerichtet haben.

130
00:10:25,507 --> 00:10:30,880
Also hier neben der jwt-Strategie und

131
00:10:30,880 --> 00:10:37,175
der lokalen Strategie, die ich hier konfiguriert habe,

132
00:10:37,175 --> 00:10:43,176
lassen Sie mich hier eine FacebookTokenStrategy erstellen.

133
00:10:43,176 --> 00:10:49,965
Und dann setzen Sie das erforderliche Passwort-Facebook-Token.

134
00:10:52,494 --> 00:10:56,561
Und das wird uns eine neue Strategie geben, die wir

135
00:10:56,561 --> 00:11:00,530
hier in unserem Passport-Modul konfigurieren können.

136
00:11:00,530 --> 00:11:04,573
Also, wenn ich hier unten in den Code gehe, genau dort,

137
00:11:04,573 --> 00:11:07,761
am Ende dieser Datei, werde ich

138
00:11:12,878 --> 00:11:17,055
FaceBookPassport als

139
00:11:17,055 --> 00:11:21,697
passsport.use () erstellen.

140
00:11:21,697 --> 00:11:28,380
Und so würde ich hier neue FacebookTokenStrategy angeben.

141
00:11:29,610 --> 00:11:33,730
Und dann werden wir die Details dieser

142
00:11:33,730 --> 00:11:38,886
FacebookTokenStrategy angeben, direkt an dieser Stelle hier.

143
00:11:38,886 --> 00:11:45,280
Also, in dieser FacebookTokenStrategy, wie nähern wir uns diesem Problem?

144
00:11:45,280 --> 00:11:51,910
Lassen Sie mich einfach den Wortumbruch umwickeln, damit Sie den vollständigen Code sehen können.

145
00:11:51,910 --> 00:11:59,300
Also für die FacebookTokenStrategy, werden wir beginnen, indem wir zuerst sagen.

146
00:11:59,300 --> 00:12:04,794
Der erste Teil der FacebookTokenStrategy nimmt die ClientID.

147
00:12:08,542 --> 00:12:17,406
Was wir haben config bei config.facebook.clientID hier,

148
00:12:17,406 --> 00:12:22,302
und Client, Secret,

149
00:12:22,302 --> 00:12:30,340
die auch wir in konfiguriert haben, Unsere Konfigurationsdatei hier.

150
00:12:30,340 --> 00:12:38,235
Also werden wir das hier als ersten Parameter für diese Strategie liefern.

151
00:12:38,235 --> 00:12:43,985
Und dann ist der zweite Parameter, wo die Trotzung

152
00:12:43,985 --> 00:12:48,145
der Callback-Funktion, die an diesem Punkt kommt.

153
00:12:48,145 --> 00:12:53,015
So erhält die Callback-Funktion hier drei Werte.

154
00:12:53,015 --> 00:12:57,100
So wird AccessToken,

155
00:12:59,672 --> 00:13:04,584
RefreshToken, Profil und

156
00:13:04,584 --> 00:13:07,760
Callback aufgerufen, wie hier getan.

157
00:13:07,760 --> 00:13:12,047
Dies sind also die vier Parameter, die in die Callback-Funktion kommen, die wir

158
00:13:12,047 --> 00:13:13,447
an dieser Stelle konfigurieren werden.

159
00:13:13,447 --> 00:13:18,660
Also lassen Sie mich diesen Code einrücken, so dass es ein bisschen klarer zu sehen ist.

160
00:13:18,660 --> 00:13:25,592
Und in dieser Callback-Funktion, die ich hier konfiguriere,

161
00:13:25,592 --> 00:13:30,150
werde ich zuerst User.Findone sagen.

162
00:13:30,150 --> 00:13:35,430
So werden wir versuchen, zu sehen, ob dieser bestimmte Facebook-Benutzer

163
00:13:35,430 --> 00:13:40,470
früher eingeloggt hat, so dass das Konto bereits

164
00:13:40,470 --> 00:13:46,381
konfiguriert werden würde, Mit der FacebookID.

165
00:13:46,381 --> 00:13:49,051
Wo erhalten wir nun die FaceBookID?

166
00:13:49,051 --> 00:13:55,160
Beachten Sie, dass wir dieses Profil für den Benutzer erhalten,

167
00:13:55,160 --> 00:13:59,630
der hier reinkommt, damit Sie sehen können, dass dieses Profil als Parameter erscheint.

168
00:13:59,630 --> 00:14:04,208
Dieses Profil enthält viele Informationen von Facebook, die wir

169
00:14:04,208 --> 00:14:06,319
innerhalb unserer Anwendung verwenden können.

170
00:14:06,319 --> 00:14:13,326
Der AccessToken wird natürlich vom Benutzer an den Server geliefert.

171
00:14:13,326 --> 00:14:20,870
Also, sobald wir versuchen, mindestens einen Benutzer mit einer Facebook-Profil-ID zu finden.

172
00:14:20,870 --> 00:14:26,200
Also, wenn dieser Benutzer existiert, dann haben wir bereits festgestellt, dass der Benutzer zuvor mit dem

173
00:14:26,200 --> 00:14:30,550
Facebook-Ansatz in unserem Konto eingeloggt hat.

174
00:14:30,550 --> 00:14:37,078
Also, in diesem Fall können wir weitergehen, sonst werden wir einen neuen Benutzer erstellen.

175
00:14:37,078 --> 00:14:42,416
Also, die Callback-Funktion hier gibt es zwei Parameter,

176
00:14:42,416 --> 00:14:44,557
den Err und den Benutzer hier.

177
00:14:49,621 --> 00:14:55,298
Und diese Callback-Funktion, wie wir sehen werden,

178
00:14:55,298 --> 00:15:01,800
gut innen hier werden wir überprüfen, ob (err) zu sehen.

179
00:15:01,800 --> 00:15:07,072
Wenn dies also einen Fehler verursacht, dann

180
00:15:07,072 --> 00:15:13,408
müssen wir natürlich zurückgeben (irr, false).

181
00:15:15,694 --> 00:15:20,663
Dies geschieht, wie Sie sehen können, ist die Callback-Funktion,

182
00:15:20,663 --> 00:15:23,577
die hier als Parameter für diese Funktion eintritt, also

183
00:15:23,577 --> 00:15:26,770
rufen wir das getan mit dem Err und false auf.

184
00:15:26,770 --> 00:15:31,830
Wenn es kein Fehler ist, dann

185
00:15:31,830 --> 00:15:36,384
werden wir sagen, ob (! Fehler

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

187
00:15:43,170 --> 00:15:47,880
Also, wenn der Benutzer nicht null ist, bedeutet das, dass wir einen Benutzer im System gefunden haben

188
00:15:47,880 --> 00:15:52,610
, der nicht früher mit diesem bestimmten FacebookId war, also für den Benutzer,

189
00:15:52,610 --> 00:15:59,750
alles, was wir tun müssen, ist zurück getan (null,) da

190
00:15:59,750 --> 00:16:05,100
es hier keinen Fehler gibt, und dann werden wir den Benutzerwert dafür hier unten zurückgeben.

191
00:16:05,100 --> 00:16:08,560
Das bedeutet, dass, wenn sich der Benutzer bereits früher mit

192
00:16:08,560 --> 00:16:13,350
dem Facebook-Ansatz angemeldet hat, der Benutzer bereits erstellt worden wäre.

193
00:16:13,350 --> 00:16:17,730
Und so wird dieser Benutzer gefunden und dann geben wir einfach diesen Benutzer zurück.

194
00:16:17,730 --> 00:16:25,010
Wenn nicht, sehen Sie, wenn nicht Teil ist der interessantere Teil dieser Übung.

195
00:16:25,010 --> 00:16:30,290
Wenn der Benutzer nicht existiert, müssen wir einen neuen Benutzer erstellen.

196
00:16:30,290 --> 00:16:33,959
Nun, um den neuen Benutzer zu erstellen, sagen wir Benutzer,

197
00:16:38,653 --> 00:16:42,181
= neuer Benutzer, und wenn wir einen neuen Benutzer erstellen,

198
00:16:42,181 --> 00:16:45,832
erinnern Sie sich, dass wir den Benutzernamen übergeben müssen.

199
00:16:45,832 --> 00:16:50,970
Der Benutzername würde aus dem Profil abgerufen werden, und das

200
00:16:50,970 --> 00:16:57,200
zurückgegebene Facebook-Profil hat ein Feld namens DisplayName.

201
00:16:57,200 --> 00:17:02,050
Und das ist das Feld, mit dem ich hier einen neuen Benutzer erstellen werde.

202
00:17:02,050 --> 00:17:07,176
Wir werden also einen neuen Benutzer mit dem Benutzernamen erstellen,

203
00:17:07,176 --> 00:17:13,455
der dem DisplayName entspricht, und nachdem der Benutzer erstellt wurde,

204
00:17:13,455 --> 00:17:21,874
sagen wir User.facebookId = profile.id.

205
00:17:21,874 --> 00:17:24,654
So werden wir die Facebook-ID des Benutzers speichern.

206
00:17:24,654 --> 00:17:28,902
Also kehren Sie in diesem Profilobjekt hier zurück und

207
00:17:28,902 --> 00:17:33,979
setzen Sie dann die Facebook-ID des Benutzers auf die Profil-ID.

208
00:17:33,979 --> 00:17:38,204
Damit später, wenn sich der gleiche Benutzer anmeldet,

209
00:17:38,204 --> 00:17:43,265
wird diese Suche in der Lage sein, diesen Benutzer in unserer Datenbank zu finden.

210
00:17:43,265 --> 00:17:46,450
Und dann werden wir

211
00:17:46,450 --> 00:17:50,863
sagen user.firstname

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

213
00:17:58,857 --> 00:18:02,447
Also das Profil hat dieses Name-Objekt darauf,

214
00:18:02,447 --> 00:18:07,970
das einen Vornamen und einen Familiennamen damit verbunden hat.

215
00:18:07,970 --> 00:18:10,994
Dies wird vom Facebook-Profil des Nutzers zurückgegeben.

216
00:18:10,994 --> 00:18:16,165
Und auch der user.lastname werden wir

217
00:18:16,165 --> 00:18:21,026
es auf Profile.name.familyName setzen.

218
00:18:22,762 --> 00:18:28,232
Und dann, sobald wir alle diese eingerichtet haben, sagen wir user.save.

219
00:18:28,232 --> 00:18:31,310
Also speichern wir die Änderungen an den Benutzer und

220
00:18:31,310 --> 00:18:35,270
dann wird dies Fehler und den Benutzer zurückgeben.

221
00:18:35,270 --> 00:18:39,090
Es gibt also einen Fehler zurück, wenn der Benutzer nicht erstellt werden konnte,

222
00:18:39,090 --> 00:18:42,960
andernfalls wird der erstellte Benutzer hier zurückgegeben.

223
00:18:42,960 --> 00:18:47,240
Also in diesem Fall werden wir sagen, wenn (err),

224
00:18:47,240 --> 00:18:51,745
dann wird getan (irr,

225
00:18:51,745 --> 00:18:58,627
false) zurückkehren, weil wir es nicht geschafft haben, den Benutzer zu erstellen.

226
00:18:58,627 --> 00:19:03,824
Andernfalls wurde der Benutzer erfolgreich erstellt,

227
00:19:03,824 --> 00:19:08,615
daher werden wir fertig (null, Benutzer) zurückgeben.

228
00:19:08,615 --> 00:19:11,265
Egal, was der Fall ist,

229
00:19:11,265 --> 00:19:15,965
wenn der Benutzer existiert, finden Sie diesen Benutzer und geben den Wert zurück.

230
00:19:15,965 --> 00:19:19,824
Wenn der Benutzer nicht existiert, erstellen Sie einen neuen Benutzer basierend auf

231
00:19:19,824 --> 00:19:22,431
dem Facebook-Profil des Nutzers, das wir erhalten haben.

232
00:19:22,431 --> 00:19:28,772
Und dann fügen Sie den neuen Benutzer in unsere Server-Site, in die Datenbank.

233
00:19:28,772 --> 00:19:32,642
Dies ist also die Strategie, die wir für

234
00:19:32,642 --> 00:19:37,532
unseren Pass, die neue FacebookTokenStrategy, konfigurieren.

235
00:19:37,532 --> 00:19:40,552
Dies ermöglicht es uns, den Benutzer zu finden.

236
00:19:40,552 --> 00:19:45,571
Also, jetzt, da wir unsere Anwendung konfiguriert haben, um entweder

237
00:19:45,571 --> 00:19:50,499
einen Benutzer zu erstellen oder den Benutzer basierend auf der Facebook-ID zu finden.

238
00:19:50,499 --> 00:19:55,752
Der letzte Schritt besteht natürlich darin,

239
00:19:55,752 --> 00:20:00,851
eine neue Route in die Datei users.js einzuführen.

240
00:20:00,851 --> 00:20:05,284
In der Datei users.js werden Sie sich erinnern, dass wir die Anmelderoute hatten, die

241
00:20:05,284 --> 00:20:09,950
es dem Benutzer ermöglicht, sich für ein lokales Konto mit dem Benutzernamen und dem Passwort anzumelden.

242
00:20:09,950 --> 00:20:15,137
Und dann haben Sie die Anmeldung, die es dem Benutzer ermöglicht, sich mit dem Benutzernamen und

243
00:20:15,137 --> 00:20:15,730
Passwort anzumelden.

244
00:20:15,730 --> 00:20:19,455
Aber jetzt werden wir Facebook verwenden, um den Benutzer einzuloggen.

245
00:20:19,455 --> 00:20:25,601
Also in diesem Fall werden wir sagen, router.get,

246
00:20:25,601 --> 00:20:32,208
und der Endpunkt wird /facebook/token sein.

247
00:20:32,208 --> 00:20:37,260
Wenn der Benutzer also eine Get-Anfrage an Benutzer/Facebook/Token

248
00:20:37,260 --> 00:20:41,550
sendet, werden wir den Benutzer mit

249
00:20:41,550 --> 00:20:45,585
der Facebook OAuth 2-basierten Authentifizierung authentifizieren.

250
00:20:45,585 --> 00:20:50,470
Also hier werden wir sagen passport.authenticate, und

251
00:20:50,470 --> 00:20:57,555
wir werden uns mit der Facebook-Token Strategie authentifizieren.

252
00:20:57,555 --> 00:21:04,076
Erinnern Sie sich, dass wir dies bereits in unserer Datei authenticate.js konfiguriert hatten,

253
00:21:04,076 --> 00:21:10,908
so konfigurieren wir die Pass-Authentifizierungs-Facebook-Token-Strategie und

254
00:21:10,908 --> 00:21:15,786
dann die Callback-Funktion, die hier req, res bekommt.

255
00:21:23,390 --> 00:21:30,081
Also lassen Sie mich, Schalten Sie den Wortumbruch hier,

256
00:21:30,081 --> 00:21:36,356
damit Sie sehen können, dass dies der router.get auf diesem Endpunkt hier ist.

257
00:21:36,356 --> 00:21:44,890
Und dann hier werde ich diese Anwendung konfigurieren.

258
00:21:44,890 --> 00:21:51,768
Also, an diesem Punkt würden wir sagen, wenn (req.user), jetzt bemerken, dass, wenn wir

259
00:21:51,768 --> 00:21:57,168
passport.authenticate mit der facebook-Token Strategie aufrufen.

260
00:21:57,168 --> 00:21:59,055
Dies, wenn es erfolgreich ist,

261
00:21:59,055 --> 00:22:03,010
wäre es in den Benutzer in das Anforderungsobjekt geladen worden. Wenn

262
00:22:03,010 --> 00:22:08,387
wir also hier zu diesem Punkt kommen, nachdem die passport.authenticate

263
00:22:08,387 --> 00:22:11,596
facebook-Token Middle Ware ausgeführt wurde,

264
00:22:11,596 --> 00:22:16,291
würden Sie den Benutzer bereits in das Anforderungsobjekt laden lassen.

265
00:22:16,291 --> 00:22:23,070
Also, wenn das der Fall ist, dann werden wir sagen, dass wir ein Token erstellen.

266
00:22:23,070 --> 00:22:27,709
Wir werden hier ein JSON-Web-Token erstellen, genau wie die Art und Weise, wie wir

267
00:22:27,709 --> 00:22:32,371
das JSON-Web-Token erstellt haben, wenn sich der Benutzer hier angemeldet hat.

268
00:22:32,371 --> 00:22:35,275
Also, wir werden das hier kopieren.

269
00:22:38,010 --> 00:22:41,586
Authenticate.getToken, also erhalten wir das JSON-Web-Token.

270
00:22:41,586 --> 00:22:46,656
Im Wesentlichen sendet der Benutzer das Zugriffstoken an den Express-Server,

271
00:22:46,656 --> 00:22:50,634
der ExpressServer verwendet den AccessToken, um zu Facebook zu gehen und

272
00:22:50,634 --> 00:22:52,979
dann das Profil des Benutzers abzurufen.

273
00:22:52,979 --> 00:22:57,560
Und wenn der Benutzer nicht existiert, erstellen wir einen neuen Benutzer mit dieser Facebook-ID.

274
00:22:57,560 --> 00:23:02,486
Und danach generiert unser Express-Server

275
00:23:02,486 --> 00:23:07,818
ein JSON-Web-Token und gibt dann das JSON-Web-Token an unseren Client zurück.

276
00:23:07,818 --> 00:23:13,878
Alle nachfolgenden Zugriffe von unserem Benutzer müssen dieses

277
00:23:13,878 --> 00:23:19,317
JSON-Web-Token enthalten, das wir gerade mit diesem Ansatz zurückgegeben haben.

278
00:23:19,317 --> 00:23:24,280
An dieser Stelle benötigen Sie das Facebook-Zugriffstoken nicht mehr.

279
00:23:24,280 --> 00:23:29,287
Sie können das Facebook-Zugriffstoken an diesem Punkt verwerfen, da

280
00:23:29,287 --> 00:23:35,237
das JSON-Web-Token derjenige ist, der die Benutzerauthentifizierung für die

281
00:23:35,237 --> 00:23:39,602
Dauer aktiv hält, die dieses JSON-Web-Token aktiv ist.

282
00:23:39,602 --> 00:23:45,529
Darüber hinaus müssen wir diese Schritte natürlich auch hier tun.

283
00:23:45,529 --> 00:23:48,365
Also werde ich diesen Teil hier kopieren.

284
00:23:48,365 --> 00:23:53,336
weil ich genau das Gleiche in diesem Fall auch tun werde,

285
00:23:53,336 --> 00:23:56,284
also werden wir diesen Code hier einfügen.

286
00:23:56,284 --> 00:24:00,485
Also sagen wir StatusCode = 200, Inhalt-Header-Typ, und

287
00:24:00,485 --> 00:24:06,120
dann sagen wir res.json, dass Sie erfolgreich angemeldet sind, und das war's.

288
00:24:06,120 --> 00:24:13,521
Mit diesem Ansatz, wie Sie sehen können, verwenden Sie jetzt einen Aufruf an diesen Endpunkt.

289
00:24:13,521 --> 00:24:17,498
Die Benutzeranwendung, der Client in diesem Fall,

290
00:24:17,498 --> 00:24:24,320
wird das Facebook-Zugriffstoken übergeben, das sie gerade von Facebook erhalten hat.

291
00:24:24,320 --> 00:24:27,970
Und dann wird unser Express-Server dann das Facebook-Zugriffstoken verwenden, um

292
00:24:27,970 --> 00:24:30,380
den Benutzer auf Facebook zu verifizieren.

293
00:24:30,380 --> 00:24:35,580
Und dann, wenn der Benutzer von Facebook als legitimer Benutzer anerkannt wird,

294
00:24:35,580 --> 00:24:42,110
dann wird unser Express-Server ein JSON-Wed-Token an unseren Kunden zurückgeben.

295
00:24:42,110 --> 00:24:44,920
Und dann wird unser Client authentifiziert und

296
00:24:44,920 --> 00:24:48,650
kann dann mit der Ausführung der anderen Operationen fortfahren,

297
00:24:48,650 --> 00:24:53,460
indem das JSON-Wed-Token im Header aller Anforderungsnachrichten verwendet wird.

298
00:24:53,460 --> 00:25:00,190
Anschließend, genau wie wir es bei der lokalen Authentifizierungsstrategie getan haben, ist das alles.

299
00:25:00,190 --> 00:25:07,630
Also haben wir alle Updates unserer Anwendung abgeschlossen, lassen Sie uns die Änderungen speichern.

300
00:25:08,810 --> 00:25:14,940
Gehen wir zu unserem Terminal, lassen Sie uns den Server hier starten,

301
00:25:14,940 --> 00:25:19,710
also sagen wir npm start, und der Server ist betriebsbereit.

302
00:25:20,740 --> 00:25:26,320
Und ich bemerkte, dass ich den P-A-S-S-S-S-S-Port eingegeben hatte,

303
00:25:26,320 --> 00:25:28,790
und so verursachte dies hier einen Fehler.

304
00:25:28,790 --> 00:25:32,250
Beachten Sie also, wie einfach es ist, Fehler zu machen.

305
00:25:32,250 --> 00:25:35,439
Also lassen Sie mich gehen und korrigieren, und dann kommen Sie zurück und starten Sie meinen Server neu.

306
00:25:37,080 --> 00:25:40,280
Also, wenn Sie auf Fehler wie diese stoßen, keine Panik.

307
00:25:40,280 --> 00:25:43,470
Schauen Sie sich um, um zu sehen, wo das Problem ist, und sehr oft

308
00:25:43,470 --> 00:25:47,580
wird es ein einfaches Problem wie dieses sein, das Fehler für Sie verursachen wird.

309
00:25:48,970 --> 00:25:54,160
Wieder, zurück zur users.js und

310
00:25:54,160 --> 00:25:57,930
Sie sehen, dass

311
00:25:57,930 --> 00:26:02,270
ich in der Datei authenticate.js diesen P-A-S-S-S-S-S-Port konfiguriert habe.

312
00:26:02,270 --> 00:26:06,100
Lassen Sie mich in der Datei authenticate.js das in Passsport beheben und

313
00:26:06,100 --> 00:26:08,702
dann die Änderungen speichern und dann meinen Server neu starten.

314
00:26:09,770 --> 00:26:16,340
Nun, starten Sie meinen Server neu, also ist mein Server jetzt betriebsbereit.

315
00:26:17,400 --> 00:26:20,160
Wechseln Sie zu diesem Zeitpunkt zu einem Browser.

316
00:26:20,160 --> 00:26:26,212
Geben Sie im Browser https://localhost3443 ein.

317
00:26:29,625 --> 00:26:37,350
Wenn Sie diese Seite hier zwischengespeichert haben, können Sie den Cache entfernen.

318
00:26:37,350 --> 00:26:41,417
Oder geben Sie einfach localhost: 3343/index.html ein, und

319
00:26:41,417 --> 00:26:45,829
dann werden Sie sofort bemerken, dass

320
00:26:45,829 --> 00:26:49,640
Sie in dieser index.html diese Schaltfläche mit dem Namen Login Button sehen werden.

321
00:26:49,640 --> 00:26:54,280
Wir werden also auf diesen Login-Button klicken, um sich bei Facebook anzumelden.

322
00:26:54,280 --> 00:26:59,880
Lassen Sie uns einloggen und dann kommen Sie mit dieser Nachricht hier.

323
00:26:59,880 --> 00:27:03,365
Wenn Sie sich bereits früher bei Facebook angemeldet haben,

324
00:27:03,365 --> 00:27:07,840
wird es um die Erlaubnis bitten, als Benutzer fortzufahren.

325
00:27:07,840 --> 00:27:12,440
Wenn nicht, dann werden Sie aufgefordert, sich bei Facebook anzumelden und

326
00:27:12,440 --> 00:27:14,030
dann den Vorgang fortzusetzen.

327
00:27:14,030 --> 00:27:17,000
Da ich mich gerade ein bisschen früher bei Facebook eingeloggt hatte,

328
00:27:17,000 --> 00:27:19,020
kann ich einfach auf Weiter klicken.

329
00:27:19,020 --> 00:27:24,955
Öffnen Sie nun die Entwickler-JavaScript-Konsole unten hier.

330
00:27:24,955 --> 00:27:33,070
Und in der JavaScript-Konsole sehen Sie eine Reihe von Nachrichten hier gedruckt.

331
00:27:33,070 --> 00:27:37,720
Öffnen Sie dann insbesondere dieses Objekt, das Sie in der JavaScript-Konsole sehen werden.

332
00:27:37,720 --> 00:27:43,081
Und in diesem Objekt sehen Sie diese Alt-Antwort hier.

333
00:27:43,081 --> 00:27:49,370
Und da drin sehen Sie ein Access-Tool, das dort vorhanden ist.

334
00:27:49,370 --> 00:27:55,320
Nun, dies ist eine Antwort, die von Facebook oder

335
00:27:55,320 --> 00:28:00,610
aus zum Authentifizierungsserver von unserer Anwendung hier erhalten wird.

336
00:28:00,610 --> 00:28:03,060
Und ich werde das einfach kopieren,

337
00:28:03,060 --> 00:28:07,010
denn dies ist das Zugriffstoken, das Facebook uns zur Verfügung gestellt hat.

338
00:28:07,010 --> 00:28:13,710
Jetzt muss ich dieses Zugriffstoken an meinen Express-Server geben

339
00:28:13,710 --> 00:28:19,990
, damit er mein Profil verifizieren kann und mich dann bei dieser Anwendung anmelden kann.

340
00:28:19,990 --> 00:28:22,860
Also mache ich das

341
00:28:22,860 --> 00:28:27,560
hier auf geballte Weise, nur weil ich Ihnen zeigen wollte, wie das Zugriffstoken hier reinkommt.

342
00:28:27,560 --> 00:28:30,940
Und wir kopieren das Zugriffstoken, dann werde ich das nehmen und

343
00:28:30,940 --> 00:28:36,820
Postman verwenden, um dieses Zugriffstoken an meinen Express-Server zu senden.

344
00:28:36,820 --> 00:28:42,330
Wenn Sie nun eine Web-App wie Angular,

345
00:28:42,330 --> 00:28:48,840
die Ionic App oder die NativeScript-App entwerfen, müssen Sie nicht alle diese Schritte ausführen.

346
00:28:48,840 --> 00:28:53,634
Nun, im Grunde, wenn das Zugriffstoken an Ihre Web-App,

347
00:28:53,634 --> 00:28:58,086
die Angular-App, die Ionic App oder die NativeScript-App zurückgegeben wird,

348
00:28:58,086 --> 00:29:01,868
erfassen Sie einfach dieses Zugriffstoken dort.

349
00:29:01,868 --> 00:29:06,791
Und dann übergeben Sie dieses Zugriffstoken an den

350
00:29:06,791 --> 00:29:12,770
Express-Server mit dem XMLHttpRequest, um die Informationen zu erhalten.

351
00:29:12,770 --> 00:29:16,410
Aber da wollte ich manuell die Schritte illustrieren.

352
00:29:16,410 --> 00:29:21,319
Also habe ich diese index.html mit einem einfachen

353
00:29:21,319 --> 00:29:24,640
JavaScript-Code eingerichtet, den Facebook für mich bereitstellt.

354
00:29:26,420 --> 00:29:30,792
Damit ich dieses Autorisierungs-Token abrufen kann, das wir von

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

356
00:29:31,454 --> 00:29:34,662
Also lassen Sie mich dieses Autorisierungs-Token kopieren.

357
00:29:34,662 --> 00:29:39,110
Jetzt werden wir zu Postman gehen und dann versuchen zu

358
00:29:39,110 --> 00:29:45,340
sehen, wie wir das JSON-Web-Token von unserem Express-Server erhalten können.

359
00:29:45,340 --> 00:29:49,220
Nun, gehen Sie zu Postman, von Postman,

360
00:29:49,220 --> 00:29:54,525
lassen Sie mich jetzt eine GET-Anfrage an

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

362
00:30:03,195 --> 00:30:07,855
Und wenn ich diese Anfrage an diesen Punkt sende,

363
00:30:07,855 --> 00:30:13,115
ist die andere Konfiguration, die ich hier tun muss, dass

364
00:30:13,115 --> 00:30:18,080
ich dieses Zugriffstoken übergeben muss, das ich gerade erhalten habe.

365
00:30:18,080 --> 00:30:21,970
Um nun ein Zugriffstoken im Header zu übergeben,

366
00:30:21,970 --> 00:30:26,370
kann ich es als Autorisierungs-Header übergeben, indem ich die Autorisierung eingippe.

367
00:30:26,370 --> 00:30:33,660
Beachten Sie jedoch, dass der Wert in diesem Fall als Beta mit einem Großbuchstaben B eingegeben werden sollte,

368
00:30:33,660 --> 00:30:41,350
und fügen Sie dann das Zugriffstoken, das wir von Facebook erhalten haben, hier ein.

369
00:30:41,350 --> 00:30:44,840
Beachten Sie hier das Großbuchstabe B, und

370
00:30:44,840 --> 00:30:48,990
dann können Sie dies an unseren Server übergeben.

371
00:30:50,090 --> 00:30:53,970
Und dann, wenn Sie von unserem Server antworten,

372
00:30:53,970 --> 00:30:59,810
würden Sie sehen, dass Sie das JSON-Web-Token von unserer Server-Site erhalten hätten.

373
00:30:59,810 --> 00:31:05,472
Dies ist eine Möglichkeit, dass Sie das JSON-Web-Token erhalten, indem Sie Ihr

374
00:31:05,472 --> 00:31:10,000
Zugriffstoken von Facebook austauschen, das Sie gerade mit Ihrem Express-Server erhalten haben.

375
00:31:10,000 --> 00:31:16,330
Und Ihr Express-Server wiederum wird

376
00:31:16,330 --> 00:31:19,960
Ihre Profilinformationen von Facebook abrufen und

377
00:31:19,960 --> 00:31:23,720
dann ein Konto speziell für Sie erstellen und Ihnen

378
00:31:23,720 --> 00:31:28,260
dann das JSON-Web-Token zurückgeben, wenn alles erfolgreich ist.

379
00:31:28,260 --> 00:31:33,290
Eine andere Möglichkeit, diese Informationen zu übergeben, ist in der Kopfzeile,

380
00:31:33,290 --> 00:31:40,480
Sie geben access_token als Schlüssel ein.

381
00:31:40,480 --> 00:31:46,268
Und in den Wert geben Sie einfach das

382
00:31:46,268 --> 00:31:52,020
Zugriffstoken wie hier ein, und dann können Sie die Anfrage senden Und das Gleiche.

383
00:31:52,020 --> 00:31:55,878
Es wird wieder das JSON-Web-Token für Sie zurückgeben.

384
00:31:55,878 --> 00:31:59,410
Und dann würden Sie das JSON-Web-Token erfassen und dann mit dem Rest

385
00:31:59,410 --> 00:32:05,300
der Zugriffe auf Ihren Express-Server fortfahren, indem Sie dieses JSON-Web-Token verwenden.

386
00:32:05,300 --> 00:32:10,010
Ein dritter Ansatz besteht darin, dies in

387
00:32:10,010 --> 00:32:15,410
Ihre URL selbst als Abfrageparameter aufzunehmen.

388
00:32:15,410 --> 00:32:23,827
Der dritte Ansatz ist Token zu sagen? access_token= und

389
00:32:23,827 --> 00:32:32,290
fügen Sie dann das JSON-Web-Token in diesen Abfrageparameter ein.

390
00:32:32,290 --> 00:32:37,140
Verwenden Sie hier nicht die Anführungszeichen, sondern nur das JSON-Web-Token selbst.

391
00:32:37,140 --> 00:32:40,810
Und dann senden Sie die Anfrage an Ihren Server.

392
00:32:40,810 --> 00:32:47,680
Und dann gibt Ihr Server das entsprechende JSON-Web-Token zurück.

393
00:32:47,680 --> 00:32:52,450
Sie sehen also drei verschiedene Möglichkeiten, wie Sie in Ihrem Facebook-Zugriffstoken auf

394
00:32:52,450 --> 00:32:57,350
Ihrem Server analysieren und dann das JSON-Web-Token von Ihrem Server abrufen können.

395
00:32:57,350 --> 00:33:01,660
Und danach verläuft der Rest dieser Schritte genau wie zuvor.

396
00:33:02,970 --> 00:33:09,400
Nun, um Sie davon zu überzeugen, dass tatsächlich ein neues Konto mit dem

397
00:33:09,400 --> 00:33:13,720
Facebook-Profil für diesen bestimmten Benutzer erstellt wurde, gehen wir zum Terminal.

398
00:33:15,080 --> 00:33:20,240
Im Terminal, in einem neuen Terminal-Fenster, werde ich hier die Mongo-Welligkeit starten.

399
00:33:20,240 --> 00:33:25,050
Also in der Mongo-Welligkeit, lassen Sie mich sagen, verwenden Sie ConFusion.

400
00:33:25,050 --> 00:33:31,560
Und dann werde ich sagen, db.users.find () .pretty (),

401
00:33:31,560 --> 00:33:36,570
und dann drucken Sie alle Benutzer aus, die in meinem System registriert sind.

402
00:33:36,570 --> 00:33:40,540
Sie stellen fest, dass die drei Benutzer, die wir in den vorherigen Übungen konfiguriert hatten,

403
00:33:40,540 --> 00:33:41,410
alle da sind.

404
00:33:43,350 --> 00:33:48,130
Beachten Sie zusätzlich einen vierten Benutzer, der gerade in hinzugefügt wurde.

405
00:33:48,130 --> 00:33:53,580
Und beachten Sie, dass wir für diesen bestimmten Benutzer den Hash noch nicht in der Quelle haben,

406
00:33:53,580 --> 00:33:57,650
sondern stattdessen die FacebookId dieses Benutzers eingerichtet ist, und

407
00:33:57,650 --> 00:34:02,660
der Benutzername ist so eingerichtet, dass dieser Wert ist, und der Vorname wird dort eingerichtet.

408
00:34:02,660 --> 00:34:05,580
Und auch der Nachname hätte hier eingerichtet werden sollen, aber

409
00:34:05,580 --> 00:34:08,990
ich denke, es gibt einen kleinen Fehler in meinem Code.

410
00:34:08,990 --> 00:34:16,910
Also werde ich gehen und den Nachnamen Teil davon dort überprüfen.

411
00:34:18,100 --> 00:34:20,110
Geht zu authenticate.js.

412
00:34:20,110 --> 00:34:23,130
Mal sehen, ob ich hier Fehler gemacht habe.

413
00:34:23,130 --> 00:34:24,580
Da gehen wir.

414
00:34:24,580 --> 00:34:28,340
Ich habe den F-A-M-I-L-Y-Namen eingegeben.

415
00:34:28,340 --> 00:34:31,980
Also siehst du, selbst ich bin nicht darum, Fehler zu machen.

416
00:34:31,980 --> 00:34:36,277
Dies sollte also FamilyName hier sein,

417
00:34:36,277 --> 00:34:42,730
user.lastname profile.name.familyName hier.

418
00:34:42,730 --> 00:34:46,520
Lassen Sie mich also die Änderungen speichern, und jetzt sollte der Code korrekt funktionieren. Wenn Sie

419
00:34:47,710 --> 00:34:49,950
wieder zum Terminal zurückkehren,

420
00:34:49,950 --> 00:34:54,460
sehen Sie nun, dass hier ein neuer Benutzer mit dem Facebook-Profil erstellt wurde.

421
00:34:54,460 --> 00:34:59,130
Jetzt

422
00:34:59,130 --> 00:35:00,520
ist jedes spätere Mal, wenn ich versucht habe, mich mit Facebook zu authentifizieren, der gleiche Prozess.

423
00:35:00,520 --> 00:35:03,000
Ich habe das Zugriffstoken von Facebook erhalten und

424
00:35:03,000 --> 00:35:06,160
dann das Zugriffstoken auf meinen Express-Server parsen.

425
00:35:06,160 --> 00:35:10,790
Mein Express-Server wird dann zu Facebook gehen, das Profil abrufen und

426
00:35:10,790 --> 00:35:14,020
dann prüfen, ob der Benutzer bereits existiert.

427
00:35:14,020 --> 00:35:18,660
Und bei der anschließenden Anmeldung, die ich mit Facebook mache,

428
00:35:18,660 --> 00:35:22,460
würde ich feststellen, dass dieser bestimmte Benutzer bereits im System vorhanden ist.

429
00:35:22,460 --> 00:35:26,540
Also, es wird einfach vorwärts gehen und der Benutzer wird authentifiziert und

430
00:35:26,540 --> 00:35:31,730
dann wird der zusätzliche Server ein JSON-Web-Token an seinen

431
00:35:31,730 --> 00:35:37,385
Client ausgeben und wir können von diesem Punkt an wie zuvor vorwärts fortfahren.

432
00:35:37,385 --> 00:35:42,395
So sehen Sie, das Einrichten der OAuth 2-basierten Authentifizierung mit einem OAuth

433
00:35:42,395 --> 00:35:48,123
2-Dienstanbieter wie Facebook ist nicht so schwierig, vorausgesetzt, wir bekommen

434
00:35:48,123 --> 00:35:54,135
die entsprechende Pass-Facebook-Authentifizierungsstrategie basiertes Modul.

435
00:35:54,135 --> 00:35:59,060
Wie Pass-Facebook-Token, das bereits kümmert sich um einen Großteil

436
00:35:59,060 --> 00:36:04,253
der Arbeit in unserem Namen und dann ermöglicht es uns, unseren Express-Server einzurichten,

437
00:36:04,253 --> 00:36:09,750
um Drittanbieter-Authentifizierung basierend auf OAuth 2 von Facebook zu behandeln.

438
00:36:09,750 --> 00:36:12,730
Damit schließen wir diese Übung ab.

439
00:36:12,730 --> 00:36:16,490
In dieser Übung haben wir gelernt, wie die gesamte OAuth 2-Authentifizierung

440
00:36:16,490 --> 00:36:20,590
mit Facebook als OAuth 2-Authentifizierung durchgeführt wird.

441
00:36:20,590 --> 00:36:25,263
Dies ist ein guter Zeitpunkt für Sie, die Änderungen zu speichern, die Sie an

442
00:36:25,263 --> 00:36:29,521
Ihrem Git-Repository mit dem Nachrichten-Pass Facebook vorgenommen haben.

443
00:36:29,521 --> 00:36:35,380
( MUSIK)