1
00:00:03,550 --> 00:00:06,360
In der vorherigen Übung

2
00:00:06,360 --> 00:00:10,860
haben wir gesehen, wie einfach es für uns war,

3
00:00:10,860 --> 00:00:15,950
einen Empfängerserver mit dem LoopBack-Framework zu konfigurieren und dann zu gerüsten.

4
00:00:15,950 --> 00:00:20,895
Wir sehen, dass dieses LoopBack-Framework ein ganzes Spektrum

5
00:00:20,895 --> 00:00:23,040
der Empfängerendpunkte und

6
00:00:23,040 --> 00:00:26,324
alle Operationen der Empfängerendpunkte automatisch für uns unterstützt,

7
00:00:26,324 --> 00:00:28,590
wenn wir unsere Anwendung aufbauen.

8
00:00:28,590 --> 00:00:31,755
In dieser Übung werden wir untersuchen, wie wir

9
00:00:31,755 --> 00:00:35,800
unseren LoopBack-Server mit einer Back-End-Datenbank

10
00:00:35,800 --> 00:00:38,926
oder MongoDB in dieser Instanz verbinden können,

11
00:00:38,926 --> 00:00:45,565
und wir werden auch sehen, wie wir verschiedene Zugriffskontrollen auf den Empfängerendpunkten einrichten können.

12
00:00:45,565 --> 00:00:47,575
Mit den Zugriffskontrollen

13
00:00:47,575 --> 00:00:52,010
können wir also angeben, welche Art von Operationen an den Empfängerendpunkten durchgeführt

14
00:00:52,010 --> 00:00:56,730
werden können und wer diese Operationen ausführen darf.

15
00:00:56,730 --> 00:01:02,385
So kann beispielsweise ein nicht authentifizierter Benutzer oder ein Gast nur auf

16
00:01:02,385 --> 00:01:08,666
Informationen zugreifen oder eine Get-Operation auf den Empfängerendpunkten durchführen,

17
00:01:08,666 --> 00:01:13,484
ein authentifizierter Benutzer könnte dies auch tun,

18
00:01:13,484 --> 00:01:21,240
aber nur ein Administrator würde in der Lage sein, Daten in meinen Server zu schreiben.

19
00:01:21,240 --> 00:01:27,025
Daher können alle Put-, Post- und Löschvorgänge nur von einem Administrator ausgeführt werden.

20
00:01:27,025 --> 00:01:32,535
Auf dem Weg werden wir auch sehen, wie wir ein Admin-Konto in unserem LoopBack-Server einrichten können,

21
00:01:32,535 --> 00:01:35,250
und konfigurieren Sie es dann so, dass

22
00:01:35,250 --> 00:01:38,880
nur der Admin-Benutzer kann diese Operationen ausführen.

23
00:01:38,880 --> 00:01:42,246
Dies ist also, wo LoopBack uns erlaubt, etwas

24
00:01:42,246 --> 00:01:46,080
namens Rollen mit verschiedenen Benutzern zugeordnet zu definieren.

25
00:01:46,080 --> 00:01:48,645
So kann jedem Benutzer eine Rolle zugewiesen werden.

26
00:01:48,645 --> 00:01:52,170
Als Beispiel können Sie über einen gewöhnlichen Benutzer,

27
00:01:52,170 --> 00:01:55,915
einen Administrator, einen Superadministrator und so weiter sprechen.

28
00:01:55,915 --> 00:02:00,675
So können Sie Ihre Gruppe von Benutzern in verschiedene Gruppen unterteilen

29
00:02:00,675 --> 00:02:03,793
und ihnen dann verschiedene Rollen zuweisen.

30
00:02:03,793 --> 00:02:09,885
Außerdem werden wir uns ansehen, wie das integrierte Benutzermodell

31
00:02:09,885 --> 00:02:11,790
innerhalb unserer LoopBack-Anwendung weiter angepasst werden

32
00:02:11,790 --> 00:02:16,290
kann und wie wir ein anderes Modell auf dem Benutzermodell erstellen

33
00:02:16,290 --> 00:02:19,710
und dann das Benutzermodell als Basisklasse verwenden

34
00:02:19,710 --> 00:02:23,400
und ein höheres Modell namens Customer Model entwickeln können,

35
00:02:23,400 --> 00:02:27,060
das ermöglicht es uns, zusätzliche Informationen für jeden

36
00:02:27,060 --> 00:02:30,999
der Kunden zu speichern, der sich auf unserer Website anmelden wird.

37
00:02:30,999 --> 00:02:38,040
Lassen Sie uns also einige dieser Funktionen von LoopBack in dieser Übung untersuchen.

38
00:02:38,040 --> 00:02:42,645
Um mit dieser Übung zu beginnen,

39
00:02:42,645 --> 00:02:44,040
ist das erste, was ich möchte, dass Sie tun, Ihren MongoDB-Server starten.

40
00:02:44,040 --> 00:02:49,545
Also hier bin ich in einem anderen Terminal Tab in meinem MongoDB-Ordner,

41
00:02:49,545 --> 00:02:52,950
wo ich meinen MongoDB-Server früher konfiguriert habe

42
00:02:52,950 --> 00:02:59,065
, der von meinem Express Plus MongoDB-Server in den vorherigen Übungen verwendet wurde.

43
00:02:59,065 --> 00:03:03,775
Lassen Sie mich also den MongoDB-Server starten, indem Sie

44
00:03:03,775 --> 00:03:11,190
MonGod minus D-B Teiledaten

45
00:03:11,190 --> 00:03:15,334
in diesem Ordner eingeben und dann meinen MongoDB-Server starten.

46
00:03:15,334 --> 00:03:20,005
Jetzt werde ich meinen LoopBack-Server mit meinem MongoDB-Server verbinden.

47
00:03:20,005 --> 00:03:23,920
Also, wenn ich hier in meinen LoopBack-Serverordner gehe,

48
00:03:23,920 --> 00:03:28,560
muss ich den Typ L-B Datenquelle auffordern.

49
00:03:28,560 --> 00:03:32,820
Dies ermöglicht es uns, die Datenquelle für unseren LoopBack Server zu konfigurieren.

50
00:03:32,820 --> 00:03:39,460
LoopBack selbst kann gleichzeitig eine Verbindung zu mehreren Datenquellen herstellen, wenn Sie dies wünschen,

51
00:03:39,460 --> 00:03:41,843
und es unterstützt verschiedene Arten.

52
00:03:41,843 --> 00:03:46,800
Es unterstützt My Cycle-Datenbanken, es unterstützt MongoDB,

53
00:03:46,800 --> 00:03:52,175
es unterstützt Cloudant, die auch eine andere Dokumentdatenbank ist,

54
00:03:52,175 --> 00:03:58,410
es unterstützt Oracle und viele andere Arten von Datenbanken.

55
00:03:58,410 --> 00:04:01,830
So können Sie das einfach konfigurieren.

56
00:04:01,830 --> 00:04:04,620
In diesem Beispiel werde ich meinen LoopBack-Server so konfigurieren,

57
00:04:04,620 --> 00:04:09,445
dass er mit meiner MongoDB im Back-End spricht.

58
00:04:09,445 --> 00:04:11,590
Wenn wir also die Datenquelle L-B eingeben,

59
00:04:11,590 --> 00:04:14,610
werden wir zur Information auffordern.

60
00:04:14,610 --> 00:04:18,155
Also zuerst, was es uns fragen wird, ist nach dem Namen der Datenquelle,

61
00:04:18,155 --> 00:04:24,570
und dann werde ich diesen Datenquellennamen als MongoDB konfigurieren,

62
00:04:24,570 --> 00:04:29,315
und dann wird es mich auffordern, den Connector auszuwählen.

63
00:04:29,315 --> 00:04:36,120
LoopBack verwendet Konnektoren, um hinter den Kulissen eine Verbindung zu verschiedenen Datenbanken herzustellen.

64
00:04:36,120 --> 00:04:38,790
Wie Sie sehen können, die In-Memory-DB, die

65
00:04:38,790 --> 00:04:41,795
sie gerade in der vorherigen Übung verwendet haben,

66
00:04:41,795 --> 00:04:45,105
aber natürlich bedeutet die In-Memory-DB, dass, sobald Sie Ihren Server herunterfahren,

67
00:04:45,105 --> 00:04:47,220
alle Werte verschwunden sind,

68
00:04:47,220 --> 00:04:51,080
und das ist kein persistenter Datenspeicher.

69
00:04:51,080 --> 00:04:58,440
Hier sehen Sie also die verschiedenen Arten von Datenbanken, die StrongLoop hier unterstützt.

70
00:04:58,440 --> 00:05:06,720
So können Sie die lange Liste der verschiedenen Datenbanken sehen, die unterstützt werden.

71
00:05:06,720 --> 00:05:09,280
So können Sie sehen, dass es Cassandra, Redis unterstützt,

72
00:05:09,280 --> 00:05:15,360
wir hatten kurz darauf hingewiesen, als wir über NoSQL-Datenbanken, MongoDB,

73
00:05:15,360 --> 00:05:18,385
My SQL, PostGres, Oracle

74
00:05:18,385 --> 00:05:24,325
und sogar direkt zu anderen Rest API-Servern zu SOAP-Servern,

75
00:05:24,325 --> 00:05:26,865
Coachbase und so weiter sprachen.

76
00:05:26,865 --> 00:05:29,040
So sehen Sie, dass es uns mit

77
00:05:29,040 --> 00:05:33,450
einer langen Liste von verschiedenen Arten von Datenquellen von dort,

78
00:05:33,450 --> 00:05:36,783
unser LoopBack-Server kann in Informationen lesen.

79
00:05:36,783 --> 00:05:39,835
In meinem Fall werde ich den MongoDB-Server verwenden, also

80
00:05:39,835 --> 00:05:43,170
werde ich den MongoDB-Connector einrichten.

81
00:05:43,170 --> 00:05:44,660
Wenn ich das mache,

82
00:05:44,660 --> 00:05:50,775
wird LoopBack automatisch den MongoDB-Connector für uns installieren,

83
00:05:50,775 --> 00:05:54,550
und wenn er nach der Verbindungszeichenfolgen-URL fragt,

84
00:05:54,550 --> 00:05:57,810
lassen wir dies einfach leer, da wir

85
00:05:57,810 --> 00:06:01,570
es erlauben, die Standardmethode der Konfiguration zu verwenden.

86
00:06:01,570 --> 00:06:04,550
Wenn es nach dem Host fragt, sagen wir

87
00:06:04,550 --> 00:06:09,815
localhost, weil wir unsere MongoDB auf dem gleichen Computer laufen.

88
00:06:09,815 --> 00:06:11,260
Andernfalls geben Sie

89
00:06:11,260 --> 00:06:16,275
den Hostnamen des Computers an, auf dem MongoDB ausgeführt wird.

90
00:06:16,275 --> 00:06:20,080
Dann ist die nächste die Portnummer und wir

91
00:06:20,080 --> 00:06:24,665
verwenden unsere Standard-MongoDB-Port-Nummer 27017,

92
00:06:24,665 --> 00:06:29,186
und es wird auch nach dem Benutzernamen und Passwort fragen, wenn erforderlich,

93
00:06:29,186 --> 00:06:32,770
und gerade jetzt läuft meine MongoDB

94
00:06:32,770 --> 00:06:36,850
ohne Authentifizierung tun zu müssen, also lasse ich den Benutzernamen und das Passwort leer,

95
00:06:36,850 --> 00:06:38,575
und den Datenbanknamen.

96
00:06:38,575 --> 00:06:44,490
Der Datenbankname auf dem MongoDB-Server, der hinter den Kulissen läuft,

97
00:06:44,490 --> 00:06:47,390
der Datenbankname gibt es Verwirrung.

98
00:06:47,390 --> 00:06:52,040
Wenn Sie sich erinnern, ist dies der Datenbankname, den sie auf unserem MongoDB-Server eingerichtet haben.

99
00:06:52,040 --> 00:06:56,900
Und dann wird es uns fragen, ob es den LoopBack-Connector installieren soll,

100
00:06:56,900 --> 00:06:58,750
und ich werde ja sagen

101
00:06:58,750 --> 00:07:02,410
und tatsächlich das NPM-Modul installieren, das auf

102
00:07:02,410 --> 00:07:07,715
den LoopBack-Connector zur MongoDB-Datenbank zugreift.

103
00:07:07,715 --> 00:07:09,415
Und sobald das erledigt ist,

104
00:07:09,415 --> 00:07:14,630
ist mein Loopback-Connector hier installiert, damit Sie sehen können, dass dies Version 1.18.1 ist

105
00:07:14,630 --> 00:07:19,910
und mein LoopBack-Server bereit ist, mit meiner MongoDB zu sprechen.

106
00:07:19,910 --> 00:07:22,615
Bevor ich jetzt fortfahre,

107
00:07:22,615 --> 00:07:26,090
konfiguriere ich in der vorherigen Übung einige Modelle nicht wirklich

108
00:07:26,090 --> 00:07:30,115
und dann gebe ich sie an, um in der DB gespeichert

109
00:07:30,115 --> 00:07:35,295
zu werden, muss ich sie aktualisieren, um ihre Daten in meiner MongoDB zu speichern.

110
00:07:35,295 --> 00:07:41,610
Also, lassen Sie uns gehen und schnell unseren Code für den LoopBack-Server zurücksetzen.

111
00:07:41,610 --> 00:07:44,770
Dies bietet uns auch die Möglichkeit zu sehen,

112
00:07:44,770 --> 00:07:49,030
was mein Loopback-Server selbst in diesem Ordner konfiguriert hat. Wenn Sie

113
00:07:49,030 --> 00:07:54,730
den LoopBack-Ordner in unserem Editor öffnen,

114
00:07:54,730 --> 00:07:58,200
können Sie sehen, dass Loopback bereits

115
00:07:58,200 --> 00:08:02,000
eine ganze Reihe von Dateien in diesen Ordner gerüstet hat.

116
00:08:02,000 --> 00:08:04,080
Die package.json enthält natürlich

117
00:08:04,080 --> 00:08:10,275
alle zugehörigen NPM-Module, die hier konfiguriert wurden,

118
00:08:10,275 --> 00:08:17,901
und hier können Sie sehen, dass LoopBack selbst das LoopBack NPM-Modul konfiguriert hat,

119
00:08:17,901 --> 00:08:20,970
das LoopBack-Boot-Modul und

120
00:08:20,970 --> 00:08:24,840
insbesondere lassen Sie mich Ihre Aufmerksamkeit auf die LoopBack MongoDB lenken Connector,

121
00:08:24,840 --> 00:08:32,055
dass wir gerade vor kurzem installiert hatten, und viele andere.

122
00:08:32,055 --> 00:08:36,150
Insbesondere die Konfiguration für den Loopback-Server wird

123
00:08:36,150 --> 00:08:40,075
hier größtenteils in Json-Dateien gespeichert,

124
00:08:40,075 --> 00:08:44,970
mit zusätzlichem Javascriptcore, wenn nötig.

125
00:08:44,970 --> 00:08:50,670
Wir werden die JavaScript-Code-Anpassung ein wenig später nachschlagen.

126
00:08:50,670 --> 00:08:53,875
Lassen Sie mich Ihre Aufmerksamkeit auf diesen Ordner lenken, der als üblich bezeichnet wird.

127
00:08:53,875 --> 00:08:55,850
In diesem gemeinsamen Ordner

128
00:08:55,850 --> 00:09:01,725
sehen Sie alle Modelle, die wir zuvor konfiguriert haben.

129
00:09:01,725 --> 00:09:04,860
Sie werden also sehen, dass wir die Dishes.json-Dateien haben.

130
00:09:04,860 --> 00:09:09,210
Wenn Sie also die Datei dishes.json öffnen, sehen Sie, wie LoopBack

131
00:09:09,210 --> 00:09:14,695
alle Informationen über das Geschirr Modell speichert, das Sie gerade erstellt haben,

132
00:09:14,695 --> 00:09:17,790
so dass es den Namen, die Basis

133
00:09:17,790 --> 00:09:21,655
und einige andere Werte hier enthält, die es erfordert.

134
00:09:21,655 --> 00:09:27,369
Und dann schauen Sie sich die Eigenschaften an und wie alle Eigenschaften hier gespeichert sind.

135
00:09:27,369 --> 00:09:30,735
Sie sehen also einige Dinge, die sehr leicht zu

136
00:09:30,735 --> 00:09:34,790
erkennen sind, dass sie sich in der Datei dishes.json befinden.

137
00:09:34,790 --> 00:09:39,040
In ähnlicher Weise sind die leaders.json und die promotions.json.

138
00:09:39,040 --> 00:09:42,171
Die Datei dishes.js ist groß,

139
00:09:42,171 --> 00:09:46,007
wir können einige zusätzliche Anpassungscode für die Gerichte hinzufügen,

140
00:09:46,007 --> 00:09:48,050
aber im Moment werden wir das nicht tun,

141
00:09:48,050 --> 00:09:50,755
und so lassen wir es einfach wie es ist.

142
00:09:50,755 --> 00:09:56,130
Hier können Sie zusätzlichen Code hinzufügen, der möglicherweise

143
00:09:56,130 --> 00:10:02,610
ausgeführt werden muss, wenn Sie auf den Endpunkt des Schrägschrägschüssels zugreifen.

144
00:10:02,610 --> 00:10:07,630
Aber im Moment werden wir es für den Moment leer lassen.

145
00:10:07,630 --> 00:10:11,725
Sehen wir uns nun auch den Serverordner an.

146
00:10:11,725 --> 00:10:13,465
Und der Serverordner,

147
00:10:13,465 --> 00:10:18,745
insbesondere lassen Sie mich Ihre Aufmerksamkeit auf die datasources.json-Datei hier lenken.

148
00:10:18,745 --> 00:10:20,996
In der Datei data sources.json

149
00:10:20,996 --> 00:10:23,740
werden hier alle verschiedenen Datenquellen konfiguriert.

150
00:10:23,740 --> 00:10:26,470
Im Moment haben wir nur die DB, die

151
00:10:26,470 --> 00:10:31,634
die In-Memory-DB-Datenbank ist, die LoopBack standardmäßig konfiguriert,

152
00:10:31,634 --> 00:10:34,045
und dann

153
00:10:34,045 --> 00:10:36,700
absorbiert die MongoDB, die wir gerade konfiguriert haben, nur die Information, dass die Eingabe

154
00:10:36,700 --> 00:10:40,570
in diese Datenquellen gespeichert wurde, json-Datei.

155
00:10:40,570 --> 00:10:46,880
So werden Sie sehen, dass LoopBack selbst arbeitet, indem Sie alle diese Dateien konfigurieren

156
00:10:46,880 --> 00:10:50,493
, die das LoopBack-Framework selbst verwendet, wenn es

157
00:10:50,493 --> 00:10:56,332
den Loopback-basierten Rest API-Server startet.

158
00:10:56,332 --> 00:11:00,620
Lassen Sie uns hier in das Modell config.json Datei gehen.

159
00:11:00,620 --> 00:11:03,050
Das Modell config.json Datei selbst

160
00:11:03,050 --> 00:11:09,028
speichert eine Menge Informationen hier, was für uns nützlich ist,

161
00:11:09,028 --> 00:11:13,810
aber hier, lassen Sie uns gehen und ein paar Dinge ändern.

162
00:11:13,810 --> 00:11:20,500
Also in diesem, werden wir sehen, dass es wieder für die Gerichte,

163
00:11:20,500 --> 00:11:24,965
Aktionen und Führer, die Datenquelle wurde als DB konfiguriert.

164
00:11:24,965 --> 00:11:32,150
Also werden wir das hier zu MongoDB ändern.

165
00:11:32,150 --> 00:11:34,700
Nicht nur für diese,

166
00:11:34,700 --> 00:11:39,053
sie werden auch ändern, dass für Promotions, und auch Führer,

167
00:11:39,053 --> 00:11:45,590
was bedeutet, dass alle diese drei ihre Daten von der MongoDB ableiten.

168
00:11:45,590 --> 00:11:48,720
Auch für die Rolle, die hier definiert ist.

169
00:11:48,720 --> 00:11:50,170
Wir werden auch in MongoDB speichern.

170
00:11:50,170 --> 00:11:53,635
Wir werden ziemlich bald sehen, wie wir die Rolle

171
00:11:53,635 --> 00:11:56,290
und auch das RoleMapping hier nutzen werden.

172
00:11:56,290 --> 00:12:00,675
Wir werden den Grund für diese beiden in kurzer Zeit verstehen.

173
00:12:00,675 --> 00:12:04,030
Und dann, ACL, die Access Control Lists,

174
00:12:04,030 --> 00:12:07,740
diese werden auch in MongoDB gespeichert werden.

175
00:12:07,740 --> 00:12:10,210
Und dann, der Benutzer, auch,

176
00:12:10,210 --> 00:12:12,105
werden wir es in MongoDB speichern,

177
00:12:12,105 --> 00:12:13,848
und dann werden sie es dort lassen.

178
00:12:13,848 --> 00:12:17,175
Dies sind also die Änderungen, die Sie an

179
00:12:17,175 --> 00:12:23,744
der Datei model-config.json vornehmen und dann die Änderungen speichern sollten.

180
00:12:23,744 --> 00:12:27,239
Wie bereits erwähnt,

181
00:12:27,239 --> 00:12:29,705
unterstützt Loopback standardmäßig dieses Modell namens „user“,

182
00:12:29,705 --> 00:12:33,215
das zur Unterstützung der Benutzerauthentifizierung verwendet wird.

183
00:12:33,215 --> 00:12:36,890
Das Benutzermodell selbst speichert nur drei verschiedene Eigenschaften.

184
00:12:36,890 --> 00:12:40,100
Der Benutzername, die E-Mail-Adresse

185
00:12:40,100 --> 00:12:42,890
und die kennwortbezogenen Informationen.

186
00:12:42,890 --> 00:12:44,060
Nun, wenn sie

187
00:12:44,060 --> 00:12:49,125
eine aufwendigere Möglichkeit haben möchten, zusätzliche Informationen über Benutzer zu speichern.

188
00:12:49,125 --> 00:12:54,200
Dann können sie dieses Benutzer-Basismodell

189
00:12:54,200 --> 00:12:56,180
unterklassifizieren und dann davon Gebrauch machen.

190
00:12:56,180 --> 00:12:57,950
In diesem nächsten Schritt

191
00:12:57,950 --> 00:13:01,880
werde ich ein anderes Modell namens Kundenmodell erstellen,

192
00:13:01,880 --> 00:13:08,490
das den Benutzer als Basismodell für seine Funktion verwendet.

193
00:13:08,490 --> 00:13:13,005
Und das Kundenmodell selbst speichert zusätzliche Informationen über Benutzer.

194
00:13:13,005 --> 00:13:14,255
Also, im Kundenmodell,

195
00:13:14,255 --> 00:13:16,820
werde ich die Dinge wie den Vornamen,

196
00:13:16,820 --> 00:13:20,900
den Nachnamen und das Bild für den Benutzer speichern und so weiter.

197
00:13:20,900 --> 00:13:24,035
So wird der Kunde genau wie das Benutzermodell handeln,

198
00:13:24,035 --> 00:13:29,889
das bereits mit einem eigenen Satz der Methoden kommt.

199
00:13:29,889 --> 00:13:32,780
Und so wird das Benutzermodell für die Benutzerauthentifizierung verwendet,

200
00:13:32,780 --> 00:13:34,700
so dass Sie den Benutzernamen und das Kennwort eingeben

201
00:13:34,700 --> 00:13:35,930
und sich anmelden und abmelden können.

202
00:13:35,930 --> 00:13:41,850
Wenn wir also dieses Kundenmodell basierend auf der Basisklasse des Benutzermodells erstellt haben,

203
00:13:41,850 --> 00:13:44,742
unterstützt das Kundenmodell auch die Anmelde- und

204
00:13:44,742 --> 00:13:47,680
Abmeldevorgänge mit diesem Kundenmodell.

205
00:13:47,680 --> 00:13:51,880
So können wir den Benutzer einloggen und den Benutzer abmelden und so weiter.

206
00:13:51,880 --> 00:13:56,520
So kommt die Benutzerauthentifizierung automatisch für das Richtige.

207
00:13:56,520 --> 00:13:59,750
Also, um das Kundenmodell zu erstellen, geben Sie an der

208
00:13:59,750 --> 00:14:03,340
Eingabeaufforderung lb model ein und für den Modellnamen

209
00:14:03,340 --> 00:14:06,440
geben wir Kunde ein.

210
00:14:06,440 --> 00:14:10,700
Und die DataSource, Ich werde es als MongoDB wählen.

211
00:14:10,700 --> 00:14:15,080
Und dann, wenn es darum bittet, die Basisklasse

212
00:14:15,080 --> 00:14:17,435
des Modells auszuwählen, anstatt das PersistedModel zu verwenden,

213
00:14:17,435 --> 00:14:18,875
werden wir nach unten gehen

214
00:14:18,875 --> 00:14:23,570
und dann den Benutzer als Basisklasse auswählen.

215
00:14:23,570 --> 00:14:27,215
Auf diese Weise werden alle Eigenschaften

216
00:14:27,215 --> 00:14:31,275
der Basisbenutzerklasse abgeleitet, die bereits in Loopback integriert ist.

217
00:14:31,275 --> 00:14:35,370
Und dann werden wir dies mit der REST-API

218
00:14:35,370 --> 00:14:39,353
und dem benutzerdefinierten Plural MT verfügbar machen.

219
00:14:39,353 --> 00:14:42,765
Und dann wäre das im gemeinsamen Ordner.

220
00:14:42,765 --> 00:14:49,081
Und dafür sind die drei Eigenschaften, die wir hinzufügen werden,

221
00:14:49,081 --> 00:14:54,900
Vorname, die wir die Typen String haben würden.

222
00:14:54,900 --> 00:14:58,700
Und dies ist nicht erforderlich oder hat keinen Default-Wert.

223
00:14:58,700 --> 00:15:05,895
Und dann, Nachname wieder als Typ Zeichenfolge,

224
00:15:05,895 --> 00:15:08,825
nicht erforderlich, und kein Default-Wert.

225
00:15:08,825 --> 00:15:11,860
Und dann Bild vom Typ String,

226
00:15:11,860 --> 00:15:15,249
nicht erforderlich und kein Default-Wert.

227
00:15:15,249 --> 00:15:18,095
Sie sehen also, dass die Kundenklasse selbst

228
00:15:18,095 --> 00:15:22,546
zusätzliche Eigenschaften zusätzlich zur Benutzerklasse trägt.

229
00:15:22,546 --> 00:15:25,006
die Benutzerklasse unterstützt bereits den Benutzernamen,

230
00:15:25,006 --> 00:15:28,465
die E-Mail und die kennwortbezogenen Informationen dort.

231
00:15:28,465 --> 00:15:30,185
Also, die Kundenklasse,

232
00:15:30,185 --> 00:15:32,030
da Unterklasse die Basisklasse ist,

233
00:15:32,030 --> 00:15:38,405
erhalten wir den Benutzernamen und die E-Mail automatisch von der Benutzerklasse.

234
00:15:38,405 --> 00:15:41,870
Und jetzt, wenn Sie zur Datei model-config.jason gehen,

235
00:15:41,870 --> 00:15:46,725
werden Sie sehen, dass das Kundenmodell bereits dort hinzugefügt wurde.

236
00:15:46,725 --> 00:15:48,390
Und dann in den gängigen Modellen

237
00:15:48,390 --> 00:15:51,278
sehen Sie nun die Datei customer.json

238
00:15:51,278 --> 00:15:55,365
mit diesen drei zusätzlichen Eigenschaften hinzugefügt, die wir dem Kundenmodell hinzugefügt haben.

239
00:15:55,365 --> 00:16:02,020
Beachten Sie jedoch, dass es hier die Basis als Benutzerklasse für das Kundenmodell angibt. Auf

240
00:16:02,020 --> 00:16:04,760
diese Weise können Sie mit Loopback

241
00:16:04,760 --> 00:16:09,832
eine Basismodellklasse aufnehmen und diese dann in die Modellklasse unterklassen.

242
00:16:09,832 --> 00:16:16,340
Sie werden also sehen, wie Loopback es uns ermöglicht, die Benutzerauthentifizierung mithilfe

243
00:16:16,340 --> 00:16:23,855
der Benutzerklasse automatisch zu unterstützen und dann sogar zusätzliche Unterklasse

244
00:16:23,855 --> 00:16:29,780
zu definieren, die zusätzliche Informationen im Zusammenhang mit der Benutzer-Basisklasse speichert.

245
00:16:29,780 --> 00:16:32,660
Als nächstes werden wir Access Control für

246
00:16:32,660 --> 00:16:38,210
die verschiedenen Modelle einrichten, die wir bereits in unserem Loopback-Server eingerichtet haben.

247
00:16:38,210 --> 00:16:40,190
Also, um die Zugriffssteuerung einzurichten,

248
00:16:40,190 --> 00:16:45,170
oder die Zugriffssteuerungslisten in Lookback.

249
00:16:45,170 --> 00:16:49,730
Loopback verwendet diese Zugriffssteuerungslisten, um anzugeben, welche Art von

250
00:16:49,730 --> 00:16:51,290
Operationen auf

251
00:16:51,290 --> 00:16:55,280
den verschiedenen REST-API-Endpunkten ausgeführt werden können, die den verschiedenen Modellen entsprechen.

252
00:16:55,280 --> 00:16:58,695
Also, um dies zu tun, geben wir an der Eingabeaufforderung lb acl,

253
00:16:58,695 --> 00:17:01,880
ACL steht für Access Control Lists.

254
00:17:01,880 --> 00:17:06,980
Und dann, wenn das vorbei ist, werden wir sagen, auf

255
00:17:06,980 --> 00:17:11,960
welches Modell wir diese Zugriffssteuerungsliste anwenden möchten.

256
00:17:11,960 --> 00:17:14,678
Und dann werden wir sagen, alle vorhandenen Modelle.

257
00:17:14,678 --> 00:17:18,845
Und wir werden sagen,, Alle Metriken und Eigenschaften.

258
00:17:18,845 --> 00:17:20,810
Und wir werden sagen,

259
00:17:20,810 --> 00:17:23,233
Alle Arten von Operationen.

260
00:17:23,233 --> 00:17:25,910
Und dann, wir werden sagen,, Alle Benutzer.

261
00:17:25,910 --> 00:17:28,730
Und dann werden wir sagen, explizit den Zugriff verweigern.

262
00:17:28,730 --> 00:17:32,976
Also, wir schließen zuerst alle Modelle für alles ab,

263
00:17:32,976 --> 00:17:34,670
dann werden wir langsam öffnen,

264
00:17:34,670 --> 00:17:38,270
unabhängig von Operationen, die von verschiedenen Benutzern ausgeführt werden können.

265
00:17:38,270 --> 00:17:40,385
Also, ersten Schritt, wir haben

266
00:17:40,385 --> 00:17:45,715
alle Arten von Operationen auf allen Modellen, die wir derzeit haben, geschlossen.

267
00:17:45,715 --> 00:17:51,740
Dann werden wir langsam beginnen, jede einzelne Operation Schritt für Schritt zu öffnen.

268
00:17:51,740 --> 00:17:53,300
Nun, der nächste Schritt,

269
00:17:53,300 --> 00:17:59,960
was wir tun werden, ist wieder die nächste Zugriffskontrollliste einrichten.

270
00:17:59,960 --> 00:18:02,525
In der zweiten Zugriffssteuerungsliste, sagen wir,

271
00:18:02,525 --> 00:18:06,095
für alle vorhandenen Modelle und wir sagen,

272
00:18:06,095 --> 00:18:08,930
Alle Metriken und Eigenschaften.

273
00:18:08,930 --> 00:18:13,400
Und dann, werden wir sagen, nur Lesezugriff. Das

274
00:18:13,400 --> 00:18:18,416
heißt, wenn der Benutzer die GET-Operationen an diesen Endports ausführen kann.

275
00:18:18,416 --> 00:18:24,680
Und diese GET-Operationen können von allen Benutzern ausgeführt werden.

276
00:18:24,680 --> 00:18:27,805
So können Benutzer Informationen abrufen.

277
00:18:27,805 --> 00:18:31,605
Und dafür gewähren wir explizit den Zugriff.

278
00:18:31,605 --> 00:18:35,804
Das bedeutet, dass GET-Operationen auf dem REST-API-Endpunkt-Knoten erlaubt sind.

279
00:18:35,804 --> 00:18:37,610
Zuerst haben wir alles geschlossen,

280
00:18:37,610 --> 00:18:40,880
dann haben wir nur die GET-Operationen für die Benutzer geöffnet.

281
00:18:40,880 --> 00:18:46,175
Nun, schließlich, werden sie zu jedem der Modelle gehen

282
00:18:46,175 --> 00:18:49,490
und dann schließen und zulassen, dass bestimmte Operationen nur

283
00:18:49,490 --> 00:18:53,068
von bestimmten Arten von Benutzern ausgeführt werden.

284
00:18:53,068 --> 00:18:54,625
Um dies zu tun, ist

285
00:18:54,625 --> 00:19:00,511
die nächste ACL, die wir einrichten werden, für ein bestimmtes Modell.

286
00:19:00,511 --> 00:19:03,197
Also, wir werden das für Geschirr einrichten.

287
00:19:03,197 --> 00:19:06,445
Und wir werden sagen, eine einzige Methode.

288
00:19:06,445 --> 00:19:08,685
Und dann ist der Methodenname, erstellen.

289
00:19:08,685 --> 00:19:13,320
Also, was bedeutet, dass die Schaffung dieser wird nur durch erlaubt.

290
00:19:13,320 --> 00:19:15,850
Also, wieder, wenn es sagt, wählen Sie die Rolle,

291
00:19:15,850 --> 00:19:18,260
dann für die Rolle, sagen wir, andere.

292
00:19:18,260 --> 00:19:20,530
Und dann wäre der Rollenname admin.

293
00:19:20,530 --> 00:19:24,663
Also, was wir mit dieser Operation tun ist, dass

294
00:19:24,663 --> 00:19:32,755
wir sagen, dass nur ein Admin-Benutzer neue Gerichte erstellen oder bestehende Gerichte aktualisieren kann.

295
00:19:32,755 --> 00:19:38,535
Also, das ist ein bisschen nah dran, die verbleibenden Operationen.

296
00:19:38,535 --> 00:19:45,669
Also, lasst uns dasselbe für Führer tun.

297
00:19:45,669 --> 00:19:48,880
Und eine einzige Methode und dann,

298
00:19:48,880 --> 00:19:53,821
die erstellen und wir werden sagen,

299
00:19:53,821 --> 00:19:58,320
nur der Administrator kann dies tun.

300
00:19:58,320 --> 00:20:04,330
Und dann endlich auch für Promotions.

301
00:20:04,330 --> 00:20:05,919
Für Werbeaktionen.

302
00:20:05,919 --> 00:20:10,210
Die Methode create wird

303
00:20:10,210 --> 00:20:15,415
nur von Benutzern erlaubt, die über die angegebene Rolle als Administrator verfügen.

304
00:20:15,415 --> 00:20:20,340
Wir werden sehen, wie wir Benutzer mit einer bestimmten Rolle im nächsten Schritt erstellen. Zugriff

305
00:20:20,340 --> 00:20:22,398
explizit gewähren.

306
00:20:22,398 --> 00:20:26,995
Beachten Sie nun, dass ich Kunden für Erstellungsvorgänge nicht geschlossen habe.

307
00:20:26,995 --> 00:20:28,305
Wenn ich Kunden abschließe,

308
00:20:28,305 --> 00:20:31,383
kann sich niemand im System registrieren.

309
00:20:31,383 --> 00:20:33,220
Deshalb werde ich das offen lassen.

310
00:20:33,220 --> 00:20:37,170
Denn der Kunde sollte in der Lage sein, sich im System zu registrieren.

311
00:20:37,170 --> 00:20:41,364
So können Sie sich für neue Konten auf dem System registrieren.

312
00:20:41,364 --> 00:20:42,420
Benutzerkonten auf dem System.

313
00:20:42,420 --> 00:20:45,585
Also, das wird offen bleiben für die Menschen zu tun.

314
00:20:45,585 --> 00:20:50,800
Also, um das für die Kunden zu ermöglichen, sagen wir, Kunden,

315
00:20:50,800 --> 00:20:59,880
Eine einzige Methode, erstellen Sie alle Benutzer.

316
00:20:59,880 --> 00:21:03,450
So können Kunden von allen Benutzern erstellt werden, da sich

317
00:21:03,450 --> 00:21:07,125
dadurch Personen bei ihrem Konto anmelden können.

318
00:21:07,125 --> 00:21:11,820
Schließlich werden wir sehen, wie wir unseren Server so konfigurieren können, dass

319
00:21:11,820 --> 00:21:17,590
ein einzelner Admin-Benutzer automatisch in unseren Loopback-Server konfiguriert wird.

320
00:21:17,590 --> 00:21:19,300
Um dies zu tun,

321
00:21:19,300 --> 00:21:20,820
in unserem Loopback-Server,

322
00:21:20,820 --> 00:21:25,015
im Server-Ordner haben wir diesen Boot-Unterordner hier.

323
00:21:25,015 --> 00:21:28,380
Was auch immer Code, den wir in den Boot-Unterordner legen,

324
00:21:28,380 --> 00:21:33,385
wird beim Start unseres LoopBack-Servers ausgeführt.

325
00:21:33,385 --> 00:21:37,253
Also, hier werden Sie sehen, dass wir bereits diese authentication.js haben,

326
00:21:37,253 --> 00:21:38,490
die bereits eingerichtet ist,

327
00:21:38,490 --> 00:21:42,255
ein Loopback, der die Benutzerauthentifizierung für uns einrichten wird.

328
00:21:42,255 --> 00:21:44,790
Und dann haben wir die root.js, die

329
00:21:44,790 --> 00:21:49,650
einige zusätzliche Informationen für unseren RAM Loopback Server einrichten wird.

330
00:21:49,650 --> 00:21:52,920
Und wir können hier zusätzliche Dateien hinzufügen.

331
00:21:52,920 --> 00:21:55,696
Also, ich werde dort in den Boot-Ordner gehen

332
00:21:55,696 --> 00:22:01,111
und dann in dieser Datei namens script.js hinzufügen.

333
00:22:01,111 --> 00:22:03,259
Und in dieser script.js

334
00:22:03,259 --> 00:22:07,610
werde ich den Code einrichten, um standardmäßig einen Admin-Benutzer zu erstellen.

335
00:22:07,610 --> 00:22:08,785
Also, in der script.js,

336
00:22:08,785 --> 00:22:12,335
die nichts anderes als ein dateibasiertes NPM-Modul sein wird,

337
00:22:12,335 --> 00:22:13,995
werden wir beginnen, indem wir sagen,

338
00:22:13,995 --> 00:22:21,050
module.exports = Funktion (app).

339
00:22:21,050 --> 00:22:23,355
Die App ist die Loopback-App,

340
00:22:23,355 --> 00:22:28,185
die als Parameter für diese Funktion für uns bereitgestellt wird.

341
00:22:28,185 --> 00:22:32,072
Und so können wir es in unserem Code hier nutzen.

342
00:22:32,072 --> 00:22:39,585
Also, hier, werden wir zuerst einen Admin-Benutzer einrichten.

343
00:22:39,585 --> 00:22:41,003
Also, um das zu tun, werden wir sagen,

344
00:22:41,003 --> 00:22:51,840
var Kunde = App.Models.Customer.

345
00:22:51,840 --> 00:22:56,580
Dies gibt uns also Zugriff auf das Kundenmodell.

346
00:22:56,580 --> 00:23:03,321
Dann werden wir sagen, Kunden.Findone.

347
00:23:03,321 --> 00:23:08,820
Also, wir werden zuerst überprüfen, ob ein Benutzer mit

348
00:23:08,820 --> 00:23:16,920
dem Benutzernamen als admin bereits im System konfiguriert ist oder nicht.

349
00:23:16,920 --> 00:23:20,585
Wenn nicht, dann werde ich einen Admin-Benutzer erstellen.

350
00:23:20,585 --> 00:23:30,230
Und das versorgt mich mit einer Callback-Funktion mit zwei Parametern, Err und Benutzern.

351
00:23:30,230 --> 00:23:34,470
Und in diesem- Also werden wir zuerst versuchen zu

352
00:23:34,470 --> 00:23:39,195
sehen, ob ein Benutzer mit seinem Namen admin bereits existiert.

353
00:23:39,195 --> 00:23:40,800
Wenn der Benutzer nicht existiert,

354
00:23:40,800 --> 00:23:42,453
werden wir den Benutzer erstellen.

355
00:23:42,453 --> 00:23:43,800
Also, um den Benutzer zu erstellen,

356
00:23:43,800 --> 00:23:49,326
sagen wir hier, wenn nicht Benutzer.

357
00:23:49,326 --> 00:23:55,830
Also, wenn die Benutzer nicht null sind oder wenn der Benutzer null sagt,

358
00:23:55,830 --> 00:24:02,305
dann bedeutet das, dass es keinen Admin-Benutzer gibt, also muss ich hier einen Admin-Benutzer erstellen.

359
00:24:02,305 --> 00:24:09,330
Also in diesem Fall werden wir sagen, customer.create.

360
00:24:09,330 --> 00:24:19,835
Und diese Erstellung nimmt ein Array von Objekten, wenn Sie möchten.

361
00:24:19,835 --> 00:24:30,235
Und dieses Array von Objekten ermöglicht es uns, anzugeben, welche Benutzerkonten wir erstellen möchten.

362
00:24:30,235 --> 00:24:33,575
Das erste Benutzerkonto, das ich erstellen möchte oder

363
00:24:33,575 --> 00:24:38,678
das einzige Benutzerkonto, das ich erstellen möchte, ist der „Admin“.

364
00:24:38,678 --> 00:24:41,845
Dies wird also der Standard-Administrator für

365
00:24:41,845 --> 00:24:47,447
meinen Loopback-Server sein und dann kann ich die E-Mail konfigurieren.

366
00:24:47,447 --> 00:24:56,850
Also erinnern Sie sich, dass das Benutzermodell diese Eigenschaften unterstützt,

367
00:24:56,850 --> 00:25:02,380
confusion.net und dann Passwort, das

368
00:25:02,380 --> 00:25:07,253
ich als Passwort konfigurieren werde.

369
00:25:07,253 --> 00:25:09,790
Sie können dabei auch

370
00:25:09,790 --> 00:25:11,560
den Vornamen und den Nachnamen

371
00:25:11,560 --> 00:25:14,345
für den Admin-Benutzer angeben.

372
00:25:14,345 --> 00:25:16,975
Aber ich werde es als solche lassen,

373
00:25:16,975 --> 00:25:20,640
als leer, weil diese für den Admin-Benutzer nicht benötigt werden.

374
00:25:20,640 --> 00:25:22,270
Also werde ich es dort lassen.

375
00:25:22,270 --> 00:25:28,765
Dieser Befehl wird also am Ende einen neuen Kunden mit dem Namen „Admin“ erstellen.

376
00:25:28,765 --> 00:25:34,480
Wenn also dieser Benutzer oder der Name „Admin“ nicht existiert,

377
00:25:34,480 --> 00:25:36,194
dann werden wir einen erstellen.

378
00:25:36,194 --> 00:25:43,800
Und dann haben wir hier die Callback-Funktion.

379
00:25:45,150 --> 00:25:54,240
Also irren Sie Benutzer.

380
00:25:54,240 --> 00:25:57,965
Jetzt werde ich sagen,

381
00:25:57,965 --> 00:26:06,850
wenn äh, wir wissen nicht, was es zu tun versucht, also werfen wir einfach den Fehler.

382
00:26:06,850 --> 00:26:12,210
Aber normalerweise erwarten wir nicht, dass dies geschieht.

383
00:26:12,210 --> 00:26:17,650
Wie bezeichnen Sie diesen Benutzer nun als Administratorbenutzer?

384
00:26:17,650 --> 00:26:19,290
Also jetzt, wenn ich mich hier anmelde,

385
00:26:19,290 --> 00:26:21,305
melde ich nur einen normalen Benutzer hier an,

386
00:26:21,305 --> 00:26:24,270
aber wir wollen diesem Benutzer eine besondere Rolle geben.

387
00:26:24,270 --> 00:26:30,775
Daher unterstützt Loopback eine Möglichkeit zum Angeben von Rollen für Benutzer.

388
00:26:30,775 --> 00:26:32,775
Also, um eine Rolle anzugeben,

389
00:26:32,775 --> 00:26:39,609
wir werden var Rolle = App.Models.role.

390
00:26:39,609 --> 00:26:42,490
So kann ich

391
00:26:42,490 --> 00:26:44,670
hier eine Rolle erstellen, einen neuen Rollenaufruf admin.

392
00:26:44,670 --> 00:26:48,600
So können wir verschiedene Drohnen verschiedenen Benutzern zuweisen, wenn Sie möchten.

393
00:26:48,600 --> 00:26:50,365
Und dazu

394
00:26:50,365 --> 00:26:55,394
muss ich hier auch ein Rolemapapping erstellen.

395
00:26:55,394 --> 00:27:05,519
Also sagen wir, App.Models.Rolemapping.

396
00:27:05,519 --> 00:27:12,045
Und wenn es so ist, dass die Datenbank bereits ein

397
00:27:12,045 --> 00:27:18,821
Rolemapping enthält, das bereits existiert,

398
00:27:18,821 --> 00:27:25,290
dann werde ich all diese zerstören, wenn ich meinen Server starte.

399
00:27:25,290 --> 00:27:35,650
Und dann lassen Sie mich versuchen

400
00:27:36,120 --> 00:27:40,550
zu sehen, ob eine Rolle mit

401
00:27:40,550 --> 00:27:46,130
diesem Namen admin bereits

402
00:27:46,130 --> 00:27:53,180
im System existiert.

403
00:27:53,180 --> 00:27:54,885
Ok.

404
00:27:54,885 --> 00:27:56,420
Und in diesem dauert,

405
00:27:56,420 --> 00:27:57,560
wie Sie erwarten würden,

406
00:27:57,560 --> 00:28:06,795
eine Callback-Funktion und im Inneren werden wir sagen, Rolle.Findone.

407
00:28:06,795 --> 00:28:10,530
Wenn also bereits eine Rolle mit dem Namen admin

408
00:28:10,530 --> 00:28:11,927
existiert, muss ich keine erstellen.

409
00:28:11,927 --> 00:28:18,710
Andernfalls, wenn das nicht existiert,

410
00:28:18,710 --> 00:28:20,427
muss ich die Rolle erstellen.

411
00:28:20,427 --> 00:28:29,540
Also werden wir sagen, Rolle.Create.

412
00:28:29,540 --> 00:28:34,950
So werden wir Admin-Rolle hier erstellen.

413
00:28:34,950 --> 00:28:45,230
Und dann führt uns dies zu Parametern irr,

414
00:28:45,230 --> 00:28:52,523
Rolle hier, in der Callback-Funktion.

415
00:28:52,523 --> 00:28:56,215
Nun, hier, um den Fehler zu behandeln,

416
00:28:56,215 --> 00:29:03,749
kopieren wir einfach dieses 'if err' und fügen es dann dort ein.

417
00:29:03,749 --> 00:29:06,685
Ähnlich hier auch, wenn der Fehler auftritt,

418
00:29:06,685 --> 00:29:09,415
dann muss ich damit umgehen.

419
00:29:09,415 --> 00:29:12,820
Also „wenn Fehler“, dann „werfen Sie den Fehler“.

420
00:29:12,820 --> 00:29:21,787
Andernfalls haben wir die Rolle erstellt.

421
00:29:21,787 --> 00:29:28,625
Jetzt muss ich diese Rolle diesem bestimmten Benutzer zuordnen, den ich gerade erstellt habe.

422
00:29:28,625 --> 00:29:31,658
Dieser Benutzer, den ich gerade hier erstellt habe.

423
00:29:31,658 --> 00:29:36,660
Dieser Benutzer. Ich möchte diesem Benutzer die Rolle des Administrators geben.

424
00:29:36,660 --> 00:29:39,140
Also, da ich diese Rolle durch den Namen admin erstellt habe,

425
00:29:39,140 --> 00:29:47,167
so sagen wir, role.principals.create.

426
00:29:47,167 --> 00:29:56,954
So erstellen Sie hier eine Zuordnung zwischen der Rolle und einem bestimmten Benutzer.

427
00:29:56,954 --> 00:29:59,370
Also sagen wir, role.principals.create.

428
00:29:59,370 --> 00:30:01,735
Das ist also die Syntax dort.

429
00:30:01,735 --> 00:30:17,320
Wir werden sagen, PrincipalType: RolleMapping.User

430
00:30:17,320 --> 00:30:25,330
hier und Sie werden

431
00:30:25,330 --> 00:30:32,385
eine Prinzipal-ID nehmen, die die Benutzer ist.

432
00:30:32,385 --> 00:30:36,320
Worauf bezieht sich dieser Benutzer?

433
00:30:36,320 --> 00:30:40,418
Dieser Benutzer bezieht sich auf diese, die gerade kam.

434
00:30:40,418 --> 00:30:43,520
Also, wenn wir diese Benutzer erstellt,

435
00:30:43,520 --> 00:30:49,335
dann muss der Kunde eine erfolgreiche Rückkehr zu uns hier erstellen.

436
00:30:49,335 --> 00:30:51,905
Das ist also, was ich hier benutzen werde.

437
00:30:51,905 --> 00:30:53,240
Wir werden sagen, Benutzer [0].

438
00:30:53,240 --> 00:30:58,430
Dies wäre also ein Array von Benutzern, die erstellt wurden und nur einen von ihnen enthalten.

439
00:30:58,430 --> 00:31:01,748
Deshalb sage ich Benutzer [0].

440
00:31:01,748 --> 00:31:08,037
Und dann werden wir die ID dieses Benutzers hier zuweisen.

441
00:31:08,037 --> 00:31:14,215
So erstellen wir also ein RoleMapping zwischen der Rolle, die wir gerade erstellt haben,

442
00:31:14,215 --> 00:31:20,639
dieser Rolle, und ordnen es dann dem Kunden zu, den wir gerade erstellt haben.

443
00:31:20,639 --> 00:31:29,315
Nun führt uns dies auch zu Parametern, der Callback-Funktion.

444
00:31:29,315 --> 00:31:33,735
Und in dieser Callback-Funktion werden wir einfach sagen,

445
00:31:33,735 --> 00:31:35,950
wenn (err) throw (err).

446
00:31:35,950 --> 00:31:41,825
Sonst sind wir nicht wirklich daran interessiert zu wissen, was dort noch passiert ist.

447
00:31:41,825 --> 00:31:44,055
Das war's. Das ist also, wie.

448
00:31:44,055 --> 00:31:46,870
Wenn also die Rolle „admin“ nicht existiert,

449
00:31:46,870 --> 00:31:48,819
erstellen wir diese Rolle.

450
00:31:48,819 --> 00:31:53,785
Wenn nicht- Also das ist der 'else'

451
00:31:53,785 --> 00:32:01,170
Teil, in dem ich noch dieses Mapping machen muss.

452
00:32:01,170 --> 00:32:08,140
Also lassen Sie mich diesen Code kopieren und dann werde ich genau das hier tun.

453
00:32:08,140 --> 00:32:15,834
Also role.principals.create und mappe dies dann für den Benutzer dort ab.

454
00:32:15,834 --> 00:32:17,980
Wenn also die Administratorrolle bereits vorhanden

455
00:32:17,980 --> 00:32:20,730
ist, müssen sie nur die Zuordnung durchführen.

456
00:32:20,730 --> 00:32:28,420
Dies wird also im RoleMapping-Modell in unserer Datenbank gespeichert. Das ist es.

457
00:32:28,420 --> 00:32:34,520
Also wird dieser Code, den wir in die Datei script.js einfügen, zuerst versuchen zu

458
00:32:34,520 --> 00:32:41,765
finden, ob ein Admin-Benutzer existiert und dieser Benutzer durch den Namen admin identifiziert wird.

459
00:32:41,765 --> 00:32:50,210
Wenn nicht, wird der Benutzer erstellt und erstellt dann auch die Rolle für den Benutzer.

460
00:32:50,210 --> 00:32:52,065
Wir erstellen eine Rolle mit dem Namen admin.

461
00:32:52,065 --> 00:32:53,865
Wenn diese Rolle existiert,

462
00:32:53,865 --> 00:32:54,950
werden wir sie einfach verwenden.

463
00:32:54,950 --> 00:32:56,705
Andernfalls erstellen wir die Rolle.

464
00:32:56,705 --> 00:33:01,485
Und danach werden wir diese Zuordnung zwischen der Rolle und dem Benutzer erstellen.

465
00:33:01,485 --> 00:33:03,940
So Loopback ermöglicht es uns, das RoleMapping zu tun.

466
00:33:03,940 --> 00:33:07,310
Also zu sagen, dass dieser Benutzer nicht für diese Rolle ist.

467
00:33:07,310 --> 00:33:10,395
Diese Zuordnung wird also mit dieser Anweisung durchgeführt.

468
00:33:10,395 --> 00:33:14,010
Damit ist das Setup unserer Server abgeschlossen.

469
00:33:14,010 --> 00:33:18,305
Damit ein Admin-Benutzer erstellt wird und dieser Admin-Benutzer

470
00:33:18,305 --> 00:33:24,155
automatisch die Rolle des Admins erhält, wie hier konfiguriert.

471
00:33:24,155 --> 00:33:27,675
Das war's. Lassen Sie uns die Änderungen in script.js speichern.

472
00:33:27,675 --> 00:33:32,015
Und jetzt sollten unsere Loopback-Server bereit sein.

473
00:33:32,015 --> 00:33:38,840
Also werden wir jetzt gehen und unseren Go Back-Server starten und dann überprüfen, was wir damit machen können.

474
00:33:38,840 --> 00:33:41,085
Gehen wir zu den Terminals,

475
00:33:41,085 --> 00:33:43,060
starten wir den Loopback-Server.

476
00:33:43,060 --> 00:33:49,428
Also sagen wir, npm start und dann sollte unser Server betriebsbereit sein.

477
00:33:49,428 --> 00:33:53,220
Gehen wir zum Explorer und durchsuchen Sie dann die Informationen dort.

478
00:33:53,220 --> 00:33:55,890
Und dieser Loopback-Server wird sich automatisch

479
00:33:55,890 --> 00:33:59,535
mit meinem MongoDP verbunden haben, weil ich die Verbindung eingerichtet habe.

480
00:33:59,535 --> 00:34:03,415
Gehen Sie zu meinem Browser,

481
00:34:03,415 --> 00:34:05,610
lassen Sie mich das neu laden.

482
00:34:05,610 --> 00:34:07,879
Und wenn ich das neu lade,

483
00:34:07,879 --> 00:34:12,450
werden Sie jetzt sehen, dass wir einen neuen Kunden haben, der hier erstellt wurde.

484
00:34:12,450 --> 00:34:14,705
Der Benutzer war bereits früher vorhanden.

485
00:34:14,705 --> 00:34:17,840
Die Gerichte, Führer und Aktionen sind alle da.

486
00:34:17,840 --> 00:34:20,325
Lassen Sie uns ein Get auf dem Geschirr durchführen.

487
00:34:20,325 --> 00:34:23,250
Nun, da dies mit dem Mund MongoDB verbunden ist, hat

488
00:34:23,250 --> 00:34:26,845
meine MongoDB bereits einige Gerichte drin.

489
00:34:26,845 --> 00:34:28,235
Wenn Ihre MongoDB leer ist,

490
00:34:28,235 --> 00:34:31,821
können Sie einige Gerichte mit dem Beitrag hier posten.

491
00:34:31,821 --> 00:34:33,995
Also lasst es uns ausprobieren.

492
00:34:33,995 --> 00:34:38,040
Wenn ich eine get Operation auf den Schrägstrich Gerichte,

493
00:34:38,040 --> 00:34:42,945
Sie werden sehen, dass in der Antwort Körper -

494
00:34:42,945 --> 00:34:48,090
Alle Gerichte, die in meiner Datenbank existieren, wurden alle geholt.

495
00:34:48,090 --> 00:34:52,995
In ähnlicher Weise kann ich ein GET auf

496
00:34:52,995 --> 00:35:01,900
Promotions machen und ich sollte die Promotion sehen, die bereits in meiner Datenbank existiert.

497
00:35:01,900 --> 00:35:04,845
So können Sie sehen, dass die Werbeaktion dort bereits existiert.

498
00:35:04,845 --> 00:35:09,978
Das zeigt uns also, wie wir Informationen abrufen können.

499
00:35:09,978 --> 00:35:12,485
Versuchen wir nun, ein neues Gericht zu posten.

500
00:35:12,485 --> 00:35:14,185
Also, um ein neues Gericht zu posten,

501
00:35:14,185 --> 00:35:16,675
gehen wir hier zum POST.

502
00:35:16,675 --> 00:35:18,715
Lassen Sie mich das einfach kopieren.

503
00:35:18,715 --> 00:35:20,035
Offensichtlich,

504
00:35:20,035 --> 00:35:22,080
in diesem Moment, denn da ich nicht ein eingeloggt bin,

505
00:35:22,080 --> 00:35:26,180
werde ich nicht erlaubt, das Gericht so zu posten,

506
00:35:26,180 --> 00:35:31,615
aber ich

507
00:35:31,615 --> 00:35:34,120
werde zeigen, dass Sie nur kopieren und fügen Sie diese Informationen hier, und wir werden versuchen, dieses Gericht zu posten,

508
00:35:34,120 --> 00:35:36,010
und dann, wenn ich versuche, das Gericht zu posten,

509
00:35:36,010 --> 00:35:40,660
mein Server antwortet sofort mit diesem Fehler, der sagt, AUTHORIZATION_REQUED.

510
00:35:40,660 --> 00:35:42,790
Sie sind nicht berechtigt, diesen Vorgang auszuführen.

511
00:35:42,790 --> 00:35:46,146
Deshalb sind Sie nicht berechtigt, diesen Vorgang durchzuführen.

512
00:35:46,146 --> 00:35:48,505
Wie autorisierst du dich selbst?

513
00:35:48,505 --> 00:35:50,315
Also, um sich selbst zu autorisieren,

514
00:35:50,315 --> 00:35:58,450
erinnern Sie sich jetzt, dass wir bereits einen Benutzer mit dem Namen admin erstellt haben,

515
00:35:58,450 --> 00:36:11,495
und dieser Admin-Benutzer existiert bereits als Kunde hier.

516
00:36:11,495 --> 00:36:12,835
Wenn Sie also in die REST-API-Endpunkte des Kunden scrollen

517
00:36:12,835 --> 00:36:16,925
, sehen Sie hier unten die Anmeldung dieses Kunden.

518
00:36:16,925 --> 00:36:20,220
Also, wenn Sie einen POST auf die Anmeldung des Kunden tun.

519
00:36:20,220 --> 00:36:22,430
Also, für die Anmeldung des Kunden,

520
00:36:22,430 --> 00:36:26,273
scrollen Sie hier nach oben und dann fragt es nach den Anmeldeinformationen.

521
00:36:26,273 --> 00:36:27,540
Also, in den Anmeldeinformationen,

522
00:36:27,540 --> 00:36:35,190
können wir Benutzernamen in doppelte Anführungszeichen eingeben, und wir sagen,

523
00:36:35,190 --> 00:36:40,570
Admin, und dann Passwort,

524
00:36:40,570 --> 00:36:48,665
sagen wir, Passwort, und dann werden wir dies veröffentlichen.

525
00:36:48,665 --> 00:36:50,450
Und dann, wenn Sie es posten,

526
00:36:50,450 --> 00:36:54,365
werden Sie feststellen, dass

527
00:36:54,365 --> 00:36:57,764
LoopBack in der Antwort mir diese Informationen zurücksendet.

528
00:36:57,764 --> 00:36:59,660
Nun, innerhalb dieser Informationen

529
00:36:59,660 --> 00:37:06,725
ist diese bestimmte ID, die sie zurücksendet, der AccessToken für meinen LoopBack-Server.

530
00:37:06,725 --> 00:37:09,835
Also, ich kann diesen AccessToken einfach hier kopieren,

531
00:37:09,835 --> 00:37:13,575
und dann rechts oben hier

532
00:37:13,575 --> 00:37:17,735
können Sie sehen, dass dies Token Not Set ist, hier.

533
00:37:17,735 --> 00:37:19,660
Es steht Token Not Set.

534
00:37:19,660 --> 00:37:22,415
Und hier können Sie diesen AccessToken eingeben

535
00:37:22,415 --> 00:37:24,605
und dann sagen, Zugriffstoken festlegen.

536
00:37:24,605 --> 00:37:27,245
Und dann wird Ihr AccessToken gesetzt,

537
00:37:27,245 --> 00:37:33,525
und dann werden alle nachfolgenden Operationen, die Sie ausführen, automatisch

538
00:37:33,525 --> 00:37:39,750
diesen AccessToken in der Kopfzeile meiner Anforderungsnachricht tragen.

539
00:37:39,750 --> 00:37:45,350
Also, auf diese Weise wird mein Admin jetzt erlaubt, Beiträge von Artikeln dort zu machen.

540
00:37:45,350 --> 00:37:47,480
Nun, da ich mich als Admin angemeldet habe,

541
00:37:47,480 --> 00:37:49,135
lassen Sie mich zu Promotions gehen,

542
00:37:49,135 --> 00:37:51,171
und dann werde ich eine Promotion dort posten

543
00:37:51,171 --> 00:37:57,098
und Ihnen zeigen, dass ich tatsächlich Werbeaktionen posten kann.

544
00:37:57,098 --> 00:38:00,885
Also, lassen Sie uns zu einem POST gehen,

545
00:38:00,885 --> 00:38:07,250
und dann werden wir einfach kopieren, und dann in den Daten,

546
00:38:07,250 --> 00:38:13,855
und dann für den Namen, den wir sagen, Test-Förderung,

547
00:38:13,855 --> 00:38:24,500
und Bild werden wir es einfach als solche lassen, Beschreibung, Testbeschreibung.

548
00:38:30,990 --> 00:38:34,665
Und ich kann es dort veröffentlichen,

549
00:38:34,665 --> 00:38:38,180
und Sie werden sehen,

550
00:38:41,740 --> 00:38:48,265
dass ich diese ID nicht hier einfügen sollte, weil ich

551
00:38:48,265 --> 00:38:53,710
LoopBack automatisch die ID zuweisen lassen habe.

552
00:38:53,710 --> 00:38:58,325
Lassen Sie mich dies posten und dann würden Sie sehen, dass im Antwortkörper

553
00:38:58,325 --> 00:39:01,293
die Testförderung hier veröffentlicht wurde.

554
00:39:01,293 --> 00:39:04,615
Und ich habe gerade bemerkt, dass ich

555
00:39:04,615 --> 00:39:11,130
die Flagge für meine Aktionen und meine Führungskräfte nicht enthalten habe.

556
00:39:11,130 --> 00:39:16,180
Also, ich werde in gehen und fügen Sie die Featured Flag als

557
00:39:16,180 --> 00:39:21,930
einen der Teile meiner Promotions dort.

558
00:39:21,930 --> 00:39:26,845
Wenn ich nun ein GET für die Werbeaktionen mache,

559
00:39:26,845 --> 00:39:29,875
werden Sie sehen, dass in dieser Antwortnachricht die

560
00:39:29,875 --> 00:39:34,795
alte Werbeaktion angezeigt wird, die bereits in meiner Datenbank war,

561
00:39:34,795 --> 00:39:40,395
und dann die neue Werbeaktion, die ich gerade in meiner Datenbank gepostet habe, die bereits hier enthalten ist.

562
00:39:40,395 --> 00:39:44,395
Also, Ich habe gerade bemerkt, dass ich die Featured Flag setzen muss,

563
00:39:44,395 --> 00:39:46,695
Ich werde Ihnen zeigen, wie das in einem zu tun.

564
00:39:46,695 --> 00:39:54,100
So, diese Art von zeigt Ihnen, wie Sie sich anmelden und erkunden Sie Ihren LoopBack-Server.

565
00:39:54,100 --> 00:39:55,420
Lassen Sie mich dieses Token zerstören,

566
00:39:55,420 --> 00:39:58,010
also entfernen wir einfach das Token

567
00:39:58,010 --> 00:39:59,555
und klicken Sie dann darauf,

568
00:39:59,555 --> 00:40:02,440
damit das Zugriffstoken im Wesentlichen an eine

569
00:40:02,440 --> 00:40:05,560
leere Zeichenfolge gesendet wird und mein Token nicht mehr verarbeitet wird,

570
00:40:05,560 --> 00:40:07,880
so dass jetzt mein Benutzer nicht mehr angemeldet ist.

571
00:40:07,880 --> 00:40:11,148
Lassen Sie mich einen neuen Kunden erstellen.

572
00:40:11,148 --> 00:40:16,290
Also, um einen neuen Kunden zu erstellen, werde ich sagen, POST-Kunden.

573
00:40:16,290 --> 00:40:20,780
Und dann kopiere ich das einfach von hier.

574
00:40:20,780 --> 00:40:24,175
Ich erstelle mir hier ein neues Konto.

575
00:40:24,175 --> 00:40:26,160
Und so, hier,

576
00:40:26,160 --> 00:40:28,620
werde ich entfernen die Realm,

577
00:40:28,620 --> 00:40:32,186
ich brauche das nicht, ich brauche nicht die ID.

578
00:40:32,186 --> 00:40:36,070
Also, für den Vornamen

579
00:40:39,750 --> 00:40:46,610
und die EmailVerified sollte automatisch vom System gesetzt werden.

580
00:40:46,610 --> 00:40:49,430
Also, lassen Sie mich als dieser Benutzer anmelden.

581
00:40:49,430 --> 00:40:52,370
Also, ich werde nur meinen Vornamen, Nachnamen

582
00:40:52,370 --> 00:40:54,440
und das Bild einreichen,

583
00:40:54,440 --> 00:40:59,745
ich werde nur eine leere Zeichenfolge dort setzen, Benutzername und E-Mail.

584
00:40:59,745 --> 00:41:01,835
Und dann werden wir es ausprobieren,

585
00:41:01,835 --> 00:41:05,060
und dann kommt es wieder zu sagen,

586
00:41:05,060 --> 00:41:08,820
Details: 'Passwort' kann nicht leer sein.

587
00:41:08,820 --> 00:41:11,285
Also, Sie werden feststellen,

588
00:41:11,285 --> 00:41:16,900
dass ich hier auch zusammen mit dem Benutzernamen,

589
00:41:17,040 --> 00:41:27,834
Passwort und dann, lassen Sie uns dies posten.

590
00:41:27,834 --> 00:41:30,890
Also, wenn Sie es posten, kommt es mit

591
00:41:30,890 --> 00:41:35,535
dem Antwortkörper zurück, der sagt, dass Sie jetzt Teil des Systems sind.

592
00:41:35,535 --> 00:41:37,160
Also, Ihr Vorname,

593
00:41:37,160 --> 00:41:40,280
Ihr Nachname und Ihr Benutzername, Ihre E-Mail-ID

594
00:41:40,280 --> 00:41:45,706
und die ID, die LoopBack Ihnen zuweist, werden an Sie zurückgesendet.

595
00:41:45,706 --> 00:41:52,777
Also, das ist nichts anderes als die MongoDB-ID, wie Sie hier sehen können.

596
00:41:52,777 --> 00:41:56,150
Nun, da ich mich als Kunde angemeldet habe,

597
00:41:56,150 --> 00:41:58,425
sollte ich in der Lage sein, mich als Kunde anzumelden,

598
00:41:58,425 --> 00:42:01,775
damit ich zum POST-Login hier gehe,

599
00:42:01,775 --> 00:42:04,250
und dann

600
00:42:04,250 --> 00:42:11,710
werde ich mich hier anstelle des Admins als der neue Benutzer anmelden, den ich angemeldet habe.

601
00:42:11,710 --> 00:42:14,130
Also, dann klicke ich auf, um es auszuprobieren,

602
00:42:14,130 --> 00:42:17,405
du wirst sehen, dass es mit der ID zurückkehrt,

603
00:42:17,405 --> 00:42:22,910
also gibt es mir das Token für diesen Admin-Benutzer hier.

604
00:42:22,910 --> 00:42:30,080
Damit haben wir die Untersuchung des LoopBack-Servers abgeschlossen, den wir gerade erstellt haben.

605
00:42:30,080 --> 00:42:31,340
Und wie ich gerade erwähnt,

606
00:42:31,340 --> 00:42:36,935
bemerkte ich, dass die Aktionen und die Führer nicht Flag gekennzeichnet haben, also

607
00:42:36,935 --> 00:42:40,930
werde ich in den Code gehen.

608
00:42:40,930 --> 00:42:43,400
Angenommen, Sie vergessen so etwas,

609
00:42:43,400 --> 00:42:47,305
dann können Sie einfach eingehen und den Json-Code bearbeiten, wenn Sie möchten.

610
00:42:47,305 --> 00:42:50,540
Also, ich gehe in meinen Code,

611
00:42:50,540 --> 00:42:52,040
gehe zum Code,

612
00:42:52,040 --> 00:42:56,635
ich gehe zuerst in Commons und dann gehe ich in die dishes.json.

613
00:42:56,635 --> 00:42:59,750
Und dann in der dishes.json,

614
00:42:59,750 --> 00:43:05,320
sehe ich diese vorgestellte Eigenschaft dort.

615
00:43:05,320 --> 00:43:07,480
Ich werde diese vorgestellte Eigenschaft kopieren,

616
00:43:07,480 --> 00:43:09,040
und dann gehe ich in leaders.json,

617
00:43:09,040 --> 00:43:15,151
und dann füge ich diese Feature-Eigenschaft in eine leaders.json

618
00:43:15,151 --> 00:43:17,750
und auch mit promotions.json ein.

619
00:43:17,750 --> 00:43:22,955
Ich habe vergessen, dies einzubeziehen, als ich diese Modelle erstellt habe.

620
00:43:22,955 --> 00:43:27,180
Ich hätte dies tun sollen, als ich das Modell selbst erstellt habe.

621
00:43:27,180 --> 00:43:29,960
Wenn Sie so etwas vergessen,

622
00:43:29,960 --> 00:43:33,370
dann ist dies eine andere Möglichkeit, Ihr Modell zu bearbeiten

623
00:43:33,370 --> 00:43:38,070
und dann sicherzustellen, dass Ihr Modell korrekt eingerichtet ist.

624
00:43:38,070 --> 00:43:40,130
Also, das war's.

625
00:43:40,130 --> 00:43:48,575
Also, jetzt werden meine Promotionen und Führer auch die vorgestellte Flagge dort gesetzt haben.

626
00:43:48,575 --> 00:43:52,675
Damit schließen wir diese Übung ab.

627
00:43:52,675 --> 00:43:56,525
In dieser Übung haben wir gesehen, wie wir

628
00:43:56,525 --> 00:44:03,555
ein neues Modell einrichten können, indem wir eine Basismodellklasse erweitern, die bereits in LoopBack ist.

629
00:44:03,555 --> 00:44:07,250
Wir haben auch gesehen, wie wir Zugriffskontrollen mithilfe

630
00:44:07,250 --> 00:44:11,540
der Zugriffskontrolllisten einrichten konnten, die von LoopBack unterstützt werden.

631
00:44:11,540 --> 00:44:13,970
Damit schließen wir diese Übung ab.

632
00:44:13,970 --> 00:44:16,835
Dies ist ein guter Zeitpunkt für Sie zu tun, eine mit

633
00:44:16,835 --> 00:44:22,450
der Nachricht LoopBack-Datenquellen und Zugriffskontrolle abgedeckt.