1
00:00:03,550 --> 00:00:06,360
Dans l'exercice précédent,

2
00:00:06,360 --> 00:00:10,860
nous avons vu à quel point il était facile pour nous de configurer puis d'

3
00:00:10,860 --> 00:00:15,950
échafaudage un serveur destinataire en utilisant le framework LoopBack.

4
00:00:15,950 --> 00:00:20,895
Nous voyons que ce framework LoopBack prend en charge tout un spectre

5
00:00:20,895 --> 00:00:23,040
des points de terminaison du destinataire et

6
00:00:23,040 --> 00:00:26,324
toutes les opérations des points de terminaison du destinataire automatiquement pour nous,

7
00:00:26,324 --> 00:00:28,590
lorsque nous échafaudons notre application.

8
00:00:28,590 --> 00:00:31,755
Dans cet exercice, nous allons examiner comment nous pouvons connecter

9
00:00:31,755 --> 00:00:35,800
notre serveur LoopBack à une base de données back-end,

10
00:00:35,800 --> 00:00:38,926
ou MongoDB dans ce cas,

11
00:00:38,926 --> 00:00:45,565
et nous allons également voir comment nous pouvons configurer différents contrôles d'accès sur les points de terminaison destinataires.

12
00:00:45,565 --> 00:00:47,575
Par conséquent, en utilisant les contrôles d'accès,

13
00:00:47,575 --> 00:00:52,010
nous pouvons spécifier quel type d'opérations peut être effectué sur les terminaux destinataires,

14
00:00:52,010 --> 00:00:56,730
et qui sera autorisé à effectuer ces opérations.

15
00:00:56,730 --> 00:01:02,385
Ainsi, par exemple, un utilisateur non authentifié ou un invité ne peut

16
00:01:02,385 --> 00:01:08,666
accéder qu'aux informations ou effectuer une opération get sur les points de terminaison du destinataire,

17
00:01:08,666 --> 00:01:13,484
un utilisateur authentifié pourrait également faire la même chose,

18
00:01:13,484 --> 00:01:21,240
mais seul un administrateur pourrait écrire des données dans mon serveur.

19
00:01:21,240 --> 00:01:27,025
Ainsi, toute opération put, post et delete ne peut être effectuée que par un administrateur. En

20
00:01:27,025 --> 00:01:32,535
cours de route, nous verrons également comment nous pouvons configurer un compte administrateur dans notre serveur LoopBack,

21
00:01:32,535 --> 00:01:35,250
puis le configurer de sorte que

22
00:01:35,250 --> 00:01:38,880
seul l'utilisateur admin sera autorisé à effectuer ces opérations.

23
00:01:38,880 --> 00:01:42,246
C' est donc là que LoopBack nous permet de définir quelque chose

24
00:01:42,246 --> 00:01:46,080
appelé rôles associés à divers utilisateurs.

25
00:01:46,080 --> 00:01:48,645
Ainsi, chaque utilisateur peut se voir attribuer un rôle.

26
00:01:48,645 --> 00:01:52,170
À titre d'exemple, vous pouvez parler d'un utilisateur ordinaire, d'

27
00:01:52,170 --> 00:01:55,915
un administrateur, d'un super administrateur et ainsi de suite.

28
00:01:55,915 --> 00:02:00,675
Vous pouvez donc subdiviser votre ensemble d'utilisateurs en différents groupes,

29
00:02:00,675 --> 00:02:03,793
puis leur attribuer différents rôles.

30
00:02:03,793 --> 00:02:09,885
Nous allons également examiner comment le modèle utilisateur intégré peut être plus personnalisé,

31
00:02:09,885 --> 00:02:11,790
dans notre application LoopBack,

32
00:02:11,790 --> 00:02:16,290
et comment nous pouvons construire un autre modèle au-dessus du modèle utilisateur,

33
00:02:16,290 --> 00:02:19,710
puis utiliser le modèle utilisateur comme classe de base

34
00:02:19,710 --> 00:02:23,400
et développer un modèle de niveau supérieur appelé le modèle client,

35
00:02:23,400 --> 00:02:27,060
qui nous permet de stocker des informations supplémentaires pour chacun

36
00:02:27,060 --> 00:02:30,999
des clients qui se connecteront à notre site.

37
00:02:30,999 --> 00:02:38,040
Alors, explorons quelques-unes de ces fonctionnalités de LoopBack dans cet exercice.

38
00:02:38,040 --> 00:02:40,830
Pour commencer cet exercice,

39
00:02:40,830 --> 00:02:42,645
la première chose que je voudrais que vous fassiez,

40
00:02:42,645 --> 00:02:44,040
est de démarrer votre serveur MongoDB.

41
00:02:44,040 --> 00:02:49,545
Donc, ici, je suis dans un autre onglet de terminal dans mon dossier MongoDB,

42
00:02:49,545 --> 00:02:52,950
où j'ai configuré mon serveur MongoDB plus tôt,

43
00:02:52,950 --> 00:02:59,065
qui a été utilisé par mon serveur Express Plus MongoDB dans les exercices précédents.

44
00:02:59,065 --> 00:03:03,775
Donc, permettez-moi de démarrer le serveur MongoDB en tapant

45
00:03:03,775 --> 00:03:11,190
MonGod moins les données de partie D-B

46
00:03:11,190 --> 00:03:15,334
dans ce dossier, puis démarrez mon serveur MongoDB.

47
00:03:15,334 --> 00:03:20,005
Maintenant, je vais connecter mon serveur LoopBack à mon serveur MongoDB.

48
00:03:20,005 --> 00:03:23,920
Donc, en allant dans mon dossier serveur LoopBack ici,

49
00:03:23,920 --> 00:03:28,560
je dois inviter à entrer la source de données L-B.

50
00:03:28,560 --> 00:03:32,820
Cela nous permettra de configurer la source de données pour notre serveur LoopBack.

51
00:03:32,820 --> 00:03:39,460
LoopBack lui-même peut se connecter simultanément à plusieurs sources de données si vous le souhaitez,

52
00:03:39,460 --> 00:03:41,843
et il prend en charge divers types.

53
00:03:41,843 --> 00:03:46,800
Il prend en charge les bases de données My Cycle, il prend en charge MongoDB,

54
00:03:46,800 --> 00:03:52,175
il prend en charge Cloudant qui est également une autre base de données de documents,

55
00:03:52,175 --> 00:03:58,410
il prend en charge Oracle, et beaucoup d'autres types de bases de données.

56
00:03:58,410 --> 00:04:01,830
Ainsi, vous pouvez facilement configurer cela.

57
00:04:01,830 --> 00:04:04,620
Dans cet exemple, je vais configurer mon serveur LoopBack

58
00:04:04,620 --> 00:04:07,810
pour parler à mon MongoDB dans le back-end.

59
00:04:07,810 --> 00:04:09,445
Donc, à l'invite,

60
00:04:09,445 --> 00:04:11,590
si nous tapons L-B source de données,

61
00:04:11,590 --> 00:04:14,610
cela nous demandera des informations.

62
00:04:14,610 --> 00:04:18,155
Donc, la première chose qu'il nous demandera est pour le nom de la source de données,

63
00:04:18,155 --> 00:04:24,570
puis je

64
00:04:24,570 --> 00:04:29,315
vais configurer ce nom de source de données comme MongoDB, et puis il m'invitera à sélectionner le connecteur.

65
00:04:29,315 --> 00:04:36,120
LoopBack utilise des connecteurs pour se connecter à diverses bases de données dans les coulisses.

66
00:04:36,120 --> 00:04:38,790
Donc, comme vous pouvez le voir, la base de données en mémoire qui est celle qu'

67
00:04:38,790 --> 00:04:41,795
ils viennent d'utiliser dans l'exercice précédent,

68
00:04:41,795 --> 00:04:45,105
mais bien sûr la base de données en mémoire signifie qu'une fois que vous arrêtez votre serveur,

69
00:04:45,105 --> 00:04:47,220
toutes les valeurs seront disparues,

70
00:04:47,220 --> 00:04:51,080
et ce n'est donc pas un stockage de données persistant.

71
00:04:51,080 --> 00:04:58,440
Donc, ici, vous voyez les différents types de bases de données que StrongLoop prend en charge ici.

72
00:04:58,440 --> 00:05:06,720
Ainsi, vous pouvez voir la longue liste des différentes bases de données qui sont prises en charge.

73
00:05:06,720 --> 00:05:09,280
Donc, vous pouvez voir qu'il supporte Cassandra, Redis,

74
00:05:09,280 --> 00:05:15,360
nous avions brièvement parlé de ces bases de données NoSQL, MongoDB,

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

76
00:05:18,385 --> 00:05:24,325
et même directement à d'autres serveurs API Rest aux serveurs SOAP,

77
00:05:24,325 --> 00:05:26,865
Coachbase et ainsi de suite.

78
00:05:26,865 --> 00:05:29,040
Donc, vous voyez qu'il nous fournit

79
00:05:29,040 --> 00:05:33,450
une longue liste de différents types de sources de données à partir de là,

80
00:05:33,450 --> 00:05:36,783
notre serveur LoopBack peut lire dans les informations.

81
00:05:36,783 --> 00:05:39,835
Dans mon cas, je vais utiliser le serveur MongoDB donc

82
00:05:39,835 --> 00:05:43,170
je vais configurer le connecteur MongoDB.

83
00:05:43,170 --> 00:05:44,660
Donc, quand je fais cela,

84
00:05:44,660 --> 00:05:50,775
LoopBack installera automatiquement le connecteur MongoDB pour nous,

85
00:05:50,775 --> 00:05:54,550
et quand il demande l'URL de la chaîne de connexion,

86
00:05:54,550 --> 00:05:57,810
nous allons juste laisser ceci vide parce que nous allons

87
00:05:57,810 --> 00:06:01,570
lui permettre d'utiliser la méthode standard de configuration.

88
00:06:01,570 --> 00:06:04,550
Quand il demande l'hôte, nous dirons

89
00:06:04,550 --> 00:06:09,815
localhost parce que nous exécutons notre MongoDB sur le même ordinateur.

90
00:06:09,815 --> 00:06:11,260
Sinon, vous spécifierez

91
00:06:11,260 --> 00:06:16,275
le nom d'hôte de l'ordinateur sur lequel vous exécutez MongoDB.

92
00:06:16,275 --> 00:06:20,080
Ensuite, le suivant est le numéro de port et nous

93
00:06:20,080 --> 00:06:24,665
utilisons notre numéro de port MongoDB standard 27017,

94
00:06:24,665 --> 00:06:29,186
et il demandera également le nom d'utilisateur et le mot de passe si nécessaire,

95
00:06:29,186 --> 00:06:32,770
et en ce moment mon MongoDB fonctionne sans avoir à

96
00:06:32,770 --> 00:06:36,850
faire d'authentification donc je laisse le nom d'utilisateur et le mot de passe vides,

97
00:06:36,850 --> 00:06:38,575
et nom de la base de données.

98
00:06:38,575 --> 00:06:44,490
Le nom de la base de données sur le serveur MongoDB qui s'exécute dans les coulisses, le

99
00:06:44,490 --> 00:06:47,390
nom de la base de données il y a confusion.

100
00:06:47,390 --> 00:06:52,040
Si vous vous souvenez que c'est le nom de la base de données qu'ils ont configuré sur notre serveur MongoDB.

101
00:06:52,040 --> 00:06:56,900
Et puis il nous demandera s'il devrait installer le connecteur LoopBack,

102
00:06:56,900 --> 00:06:58,750
et je dirai oui,

103
00:06:58,750 --> 00:07:02,410
et je vais effectivement aller de l'avant et installer le module NPM qui accède

104
00:07:02,410 --> 00:07:07,715
au connecteur LoopBack à la base de données MongoDB.

105
00:07:07,715 --> 00:07:09,415
Et une fois que cela est fait,

106
00:07:09,415 --> 00:07:14,630
mon connecteur Loopback est installé ici afin que vous puissiez voir qu'il s'agit de la version 1.18.1

107
00:07:14,630 --> 00:07:19,910
et que mon serveur LoopBack est prêt à parler à mon MongoDB.

108
00:07:19,910 --> 00:07:22,615
Maintenant, avant de poursuivre,

109
00:07:22,615 --> 00:07:26,090
dans l'exercice précédent, je ne configure pas vraiment certains modèles,

110
00:07:26,090 --> 00:07:30,115
puis je les spécifie pour être stockés dans la base de données,

111
00:07:30,115 --> 00:07:35,295
je vais devoir aller les mettre à jour pour stocker leurs données dans mon MongoDB.

112
00:07:35,295 --> 00:07:41,610
Alors, allons et réinitialisons rapidement notre code pour le serveur LoopBack.

113
00:07:41,610 --> 00:07:44,770
Cela nous donne également l'occasion de regarder

114
00:07:44,770 --> 00:07:49,030
ce que mon serveur Loopback lui-même a configuré dans ce dossier. En

115
00:07:49,030 --> 00:07:54,730
ouvrant le dossier LoopBack dans notre éditeur,

116
00:07:54,730 --> 00:07:58,200
vous pouvez voir que Loopback a déjà

117
00:07:58,200 --> 00:08:02,000
échafaudé tout un tas de fichiers dans ce dossier.

118
00:08:02,000 --> 00:08:04,080
Le package.json contient bien sûr

119
00:08:04,080 --> 00:08:10,275
tous les modules NPM associés qui ont été configurés ici,

120
00:08:10,275 --> 00:08:17,901
et ici vous pouvez voir que LoopBack lui-même a configuré le module LoopBack NPM,

121
00:08:17,901 --> 00:08:20,970
le module de démarrage LoopBack et en

122
00:08:20,970 --> 00:08:24,840
particulier laissez-moi attirer votre attention sur le LoopBack MongoDB ,

123
00:08:24,840 --> 00:08:32,055
que nous venons d'installer il y a peu de temps, et beaucoup d'autres.

124
00:08:32,055 --> 00:08:36,150
En particulier, la configuration du serveur Loopback est

125
00:08:36,150 --> 00:08:40,075
stockée principalement dans les fichiers Json ici,

126
00:08:40,075 --> 00:08:44,970
avec javascriptcore supplémentaire chaque fois que nécessaire.

127
00:08:44,970 --> 00:08:50,670
Nous chercherons la personnalisation du code javascript un peu plus tard.

128
00:08:50,670 --> 00:08:53,875
Permettez-moi d'attirer votre attention sur ce dossier appelé commun.

129
00:08:53,875 --> 00:08:55,850
Dans ce dossier commun,

130
00:08:55,850 --> 00:09:01,725
vous verrez tous les modèles que nous avons configurés précédemment.

131
00:09:01,725 --> 00:09:04,860
Donc, vous verrez que nous avons les fichiers Dish.json.

132
00:09:04,860 --> 00:09:09,210
Donc, lorsque vous ouvrez le fichier dishes.json, vous voyez comment LoopBack

133
00:09:09,210 --> 00:09:14,695
stocke toutes les informations sur le modèle de plats que vous venez de créer,

134
00:09:14,695 --> 00:09:17,790
il a donc le nom, la base

135
00:09:17,790 --> 00:09:21,655
et quelques autres valeurs ici qu'il nécessite.

136
00:09:21,655 --> 00:09:27,369
Et puis regardez les propriétés et comment toutes les propriétés sont stockées ici.

137
00:09:27,369 --> 00:09:30,735
Donc, vous voyez certaines choses qui sont très faciles à

138
00:09:30,735 --> 00:09:34,790
reconnaître qu'elles sont dans le fichier dishes.json.

139
00:09:34,790 --> 00:09:39,040
De même, les leaders.json et les promotions.json.

140
00:09:39,040 --> 00:09:42,171
Le fichier dishes.js est grand,

141
00:09:42,171 --> 00:09:46,007
nous pouvons ajouter un code de personnalisation supplémentaire pour les plats,

142
00:09:46,007 --> 00:09:48,050
mais pour l'instant nous ne allons pas le faire,

143
00:09:48,050 --> 00:09:50,755
et donc nous allons juste le laisser tel quel.

144
00:09:50,755 --> 00:09:56,130
C' est donc là que vous pouvez ajouter du code supplémentaire qui peut avoir

145
00:09:56,130 --> 00:10:02,610
besoin d'être exécuté lorsque vous accédez au point de fin de la barre oblique.

146
00:10:02,610 --> 00:10:07,630
Mais pour l'instant, nous allons le laisser vide pour le moment.

147
00:10:07,630 --> 00:10:11,725
Maintenant, regardons aussi le dossier du serveur ici.

148
00:10:11,725 --> 00:10:13,465
Et le dossier du serveur,

149
00:10:13,465 --> 00:10:18,745
en particulier laissez-moi attirer votre attention sur le fichier datasources.json ici.

150
00:10:18,745 --> 00:10:20,996
Dans le fichier source de données .json,

151
00:10:20,996 --> 00:10:23,740
toutes les différentes sources de données seront configurées ici.

152
00:10:23,740 --> 00:10:26,470
Donc en ce moment, nous avons seulement la base de données DB qui est

153
00:10:26,470 --> 00:10:31,634
la base de données en mémoire que LoopBack configure par défaut,

154
00:10:31,634 --> 00:10:34,045
puis le MongoDB que nous venons de configurer,

155
00:10:34,045 --> 00:10:36,700
n'a absorbé que l'information que l'entrée a

156
00:10:36,700 --> 00:10:40,570
été stockée dans cette source de données, fichier json.

157
00:10:40,570 --> 00:10:46,880
Ainsi, vous verrez que LoopBack lui-même fonctionne en configurant tous ces fichiers

158
00:10:46,880 --> 00:10:50,493
dont le framework LoopBack lui-même fait usage lorsqu'il

159
00:10:50,493 --> 00:10:56,332
démarre le serveur d'API de repos basé sur Loopback.

160
00:10:56,332 --> 00:11:00,620
Allons dans le fichier config.json modèle ici.

161
00:11:00,620 --> 00:11:03,050
Le fichier config.json modèle lui-même

162
00:11:03,050 --> 00:11:09,028
stocke beaucoup d'informations ici ce qui est utile pour nous,

163
00:11:09,028 --> 00:11:13,810
mais ici, passons et modifions quelques choses.

164
00:11:13,810 --> 00:11:20,500
Donc, dans ce, nous verrons qu'il ya à nouveau pour les plats, les

165
00:11:20,500 --> 00:11:24,965
promotions et les leaders, la source de données a été configurée comme DB.

166
00:11:24,965 --> 00:11:32,150
Donc, nous allons modifier cela à MongoDB ici.

167
00:11:32,150 --> 00:11:34,700
Non seulement pour celui-ci,

168
00:11:34,700 --> 00:11:39,053
ils vont aussi changer cela pour les promotions, et aussi les leaders,

169
00:11:39,053 --> 00:11:45,590
ce qui signifie, que tous ces trois vont tirer leurs données de la MongoDB.

170
00:11:45,590 --> 00:11:48,720
Aussi, pour le rôle qui est défini ici.

171
00:11:48,720 --> 00:11:50,170
Nous allons également stocker dans MongoDB.

172
00:11:50,170 --> 00:11:53,635
Nous allons bientôt voir comment nous allons utiliser le Role,

173
00:11:53,635 --> 00:11:56,290
et aussi le RoleMapping ici.

174
00:11:56,290 --> 00:12:00,675
Nous comprendrons la raison de ces deux-là dans un court moment.

175
00:12:00,675 --> 00:12:04,030
Et puis, ACL, les listes de contrôle d'accès,

176
00:12:04,030 --> 00:12:07,740
ceux-ci seront également stockés dans MongoDB.

177
00:12:07,740 --> 00:12:10,210
Et puis, l'utilisateur, aussi,

178
00:12:10,210 --> 00:12:12,105
nous le stockerons dans MongoDB,

179
00:12:12,105 --> 00:12:13,848
puis ils le laisseront là.

180
00:12:13,848 --> 00:12:17,175
Donc, ce sont les modifications que vous devez faire

181
00:12:17,175 --> 00:12:23,744
au fichier model-config.json, puis enregistrer les modifications.

182
00:12:23,744 --> 00:12:27,239
Comme je l'ai mentionné précédemment, Loopback par défaut,

183
00:12:27,239 --> 00:12:29,705
prend en charge ce modèle appelé, user,

184
00:12:29,705 --> 00:12:33,215
qui est utilisé pour prendre en charge l'authentification de l'utilisateur.

185
00:12:33,215 --> 00:12:36,890
Le modèle utilisateur lui-même ne stocke que trois propriétés différentes.

186
00:12:36,890 --> 00:12:40,100
Le nom d'utilisateur, l'adresse e-mail

187
00:12:40,100 --> 00:12:42,890
et les informations relatives au mot de passe.

188
00:12:42,890 --> 00:12:44,060
Maintenant, s'ils veulent avoir

189
00:12:44,060 --> 00:12:49,125
une façon plus élaborée de stocker des informations supplémentaires sur les utilisateurs.

190
00:12:49,125 --> 00:12:54,200
Ensuite, ils peuvent sous-classer ce modèle de base d'utilisateurs,

191
00:12:54,200 --> 00:12:56,180
puis en faire usage.

192
00:12:56,180 --> 00:12:57,950
Donc, dans cette prochaine étape,

193
00:12:57,950 --> 00:13:01,880
je vais créer un autre modèle appelé, le modèle client,

194
00:13:01,880 --> 00:13:08,490
qui utilisera l'utilisateur comme modèle de base pour son fonctionnement.

195
00:13:08,490 --> 00:13:13,005
Et le modèle client lui-même stockera des informations supplémentaires sur les utilisateurs.

196
00:13:13,005 --> 00:13:14,255
Donc, dans le modèle client,

197
00:13:14,255 --> 00:13:16,820
je vais stocker les choses comme le prénom,

198
00:13:16,820 --> 00:13:20,900
le nom de famille, et l'image de l'utilisateur et ainsi de suite.

199
00:13:20,900 --> 00:13:24,035
Ainsi, le client agira exactement comme le modèle utilisateur,

200
00:13:24,035 --> 00:13:29,889
qui vient déjà avec son propre ensemble de méthodes.

201
00:13:29,889 --> 00:13:32,780
Ainsi, le modèle utilisateur est utilisé pour l'authentification de l'utilisateur, de

202
00:13:32,780 --> 00:13:34,700
sorte que vous pouvez taper le nom d'utilisateur et le mot de passe,

203
00:13:34,700 --> 00:13:35,930
et vous connecter et vous déconnecter.

204
00:13:35,930 --> 00:13:41,850
Ainsi, lorsque nous avons créé ce modèle client basé sur la classe de base du modèle utilisateur,

205
00:13:41,850 --> 00:13:44,742
le modèle client prend également en charge les

206
00:13:44,742 --> 00:13:47,680
opérations de connexion et de déconnexion lors de l'utilisation de ce modèle client.

207
00:13:47,680 --> 00:13:51,880
Ainsi, nous pouvons nous connecter à l'utilisateur et déconnecter l'utilisateur et ainsi de suite.

208
00:13:51,880 --> 00:13:56,520
Ainsi, l'authentification de l'utilisateur vient automatiquement pour le droit.

209
00:13:56,520 --> 00:13:59,750
Donc, pour créer le modèle client, à l'invite,

210
00:13:59,750 --> 00:14:03,340
tapez modèle lb et pour le nom du modèle,

211
00:14:03,340 --> 00:14:06,440
nous taperons Client.

212
00:14:06,440 --> 00:14:10,700
Et le DataSource, je vais le choisir comme MongoDB.

213
00:14:10,700 --> 00:14:15,080
Et puis quand il demande de sélectionner la classe de base du modèle,

214
00:14:15,080 --> 00:14:17,435
au lieu d'utiliser le modèle persistedModel,

215
00:14:17,435 --> 00:14:18,875
nous allons descendre,

216
00:14:18,875 --> 00:14:23,570
puis sélectionner l'utilisateur comme classe de base.

217
00:14:23,570 --> 00:14:27,215
Donc, de cette façon, il dérivera toutes leurs propriétés

218
00:14:27,215 --> 00:14:31,275
de la classe utilisateur de base qui est déjà intégrée dans Loopback.

219
00:14:31,275 --> 00:14:35,370
Et puis nous allons exposer cela avec l'API REST,

220
00:14:35,370 --> 00:14:39,353
et le MT pluriel personnalisé.

221
00:14:39,353 --> 00:14:42,765
Et puis ce serait dans le dossier commun.

222
00:14:42,765 --> 00:14:49,081
Et pour cela, les trois propriétés que nous allons ajouter sont,

223
00:14:49,081 --> 00:14:54,900
prénom, qui aurions la chaîne de types.

224
00:14:54,900 --> 00:14:58,700
Et cela n'est pas obligatoire ou n'a pas de valeur par défaut.

225
00:14:58,700 --> 00:15:05,895
Et puis, nom de famille à nouveau comme la chaîne de type,

226
00:15:05,895 --> 00:15:08,825
pas obligatoire, et aucune valeur par défaut.

227
00:15:08,825 --> 00:15:11,860
Et puis image de la chaîne de type,

228
00:15:11,860 --> 00:15:15,249
pas obligatoire et pas de valeur par défaut.

229
00:15:15,249 --> 00:15:18,095
Ainsi, vous voyez que la classe de clients elle-même

230
00:15:18,095 --> 00:15:22,546
porte des propriétés supplémentaires en plus de la classe utilisateur.

231
00:15:22,546 --> 00:15:25,006
la classe utilisateur prend déjà en charge le nom d'utilisateur,

232
00:15:25,006 --> 00:15:28,465
l'e-mail et les informations relatives au mot de passe.

233
00:15:28,465 --> 00:15:30,185
Donc, la classe de client,

234
00:15:30,185 --> 00:15:32,030
puisque la sous-classe est la classe de base,

235
00:15:32,030 --> 00:15:38,405
nous allons obtenir le nom d'utilisateur et l'e-mail automatiquement de la classe utilisateur.

236
00:15:38,405 --> 00:15:41,870
Et maintenant, lorsque vous allez dans le fichier model-config.jason,

237
00:15:41,870 --> 00:15:46,725
vous verrez que le modèle Customer a déjà été ajouté.

238
00:15:46,725 --> 00:15:48,390
Et puis dans les modèles courants,

239
00:15:48,390 --> 00:15:51,278
vous verrez maintenant le fichier customer.json ajouté

240
00:15:51,278 --> 00:15:55,365
avec ces trois propriétés supplémentaires que nous avons ajoutées au modèle client.

241
00:15:55,365 --> 00:16:02,020
Mais notez, qu'il spécifie la base en tant que classe utilisateur pour le modèle client ici.

242
00:16:02,020 --> 00:16:04,760
Donc, c'est ainsi que Loopback vous permet de prendre

243
00:16:04,760 --> 00:16:09,832
une classe de modèle de base, puis de la sous-classer dans la classe de modèle.

244
00:16:09,832 --> 00:16:16,340
Ainsi, vous verrez comment Loopback nous permet de prendre en charge automatiquement l'authentification de l'utilisateur en utilisant

245
00:16:16,340 --> 00:16:23,855
la classe utilisateur, puis nous permet même de définir une sous-classe supplémentaire de celle-ci,

246
00:16:23,855 --> 00:16:29,780
qui stockera des informations supplémentaires liées à la classe de base utilisateur.

247
00:16:29,780 --> 00:16:32,660
Ensuite, nous allons configurer le contrôle d'accès pour

248
00:16:32,660 --> 00:16:38,210
les différents modèles que nous avons déjà mis en place dans notre serveur de bouclage.

249
00:16:38,210 --> 00:16:40,190
Ainsi, pour configurer le contrôle d'accès

250
00:16:40,190 --> 00:16:45,170
ou les listes de contrôle d'accès dans Lookback.

251
00:16:45,170 --> 00:16:49,730
Loopback utilise ces listes de contrôle d'accès comme moyen de spécifier le type d'

252
00:16:49,730 --> 00:16:51,290
opérations qui peuvent être effectuées sur

253
00:16:51,290 --> 00:16:55,280
les différents points de terminaison de l'API REST correspondent aux différents modèles.

254
00:16:55,280 --> 00:16:58,695
Donc, pour ce faire, nous allons taper à l'invite lb acl,

255
00:16:58,695 --> 00:17:01,880
ACL signifie listes de contrôle d'accès.

256
00:17:01,880 --> 00:17:06,980
Et puis, quand cela sera épuisé, nous dirons,

257
00:17:06,980 --> 00:17:11,960
quel modèle nous voulons appliquer cette liste de contrôle d'accès.

258
00:17:11,960 --> 00:17:14,678
Et puis nous dirons, tous les modèles existants.

259
00:17:14,678 --> 00:17:18,845
Et nous dirons, Toutes les mesures et les propriétés.

260
00:17:18,845 --> 00:17:20,810
Et nous dirons,

261
00:17:20,810 --> 00:17:23,233
Tous les types d'opérations.

262
00:17:23,233 --> 00:17:25,910
Et puis, nous dirons, Tous les utilisateurs.

263
00:17:25,910 --> 00:17:28,730
Et puis nous dirons : Refuser explicitement l'accès.

264
00:17:28,730 --> 00:17:32,976
Donc, nous fermons d'abord tous les modèles pour tout,

265
00:17:32,976 --> 00:17:34,670
puis nous ouvrirons lentement,

266
00:17:34,670 --> 00:17:38,270
quelles que soient les opérations qui peuvent être effectuées par différents utilisateurs.

267
00:17:38,270 --> 00:17:40,385
Donc, première étape, nous avons fermé

268
00:17:40,385 --> 00:17:45,715
tous les types d'opérations sur tous les modèles que nous avons actuellement.

269
00:17:45,715 --> 00:17:51,740
Ensuite, nous commencerons lentement à ouvrir chacune des opérations, étape par étape.

270
00:17:51,740 --> 00:17:53,300
Maintenant, l'étape suivante,

271
00:17:53,300 --> 00:17:59,960
ce que nous allons faire est de nouveau configurer la prochaine liste de contrôle d'accès.

272
00:17:59,960 --> 00:18:02,525
Dans la deuxième liste de contrôle d'accès, nous dirons,

273
00:18:02,525 --> 00:18:06,095
pour tous les modèles existants et nous dirons,

274
00:18:06,095 --> 00:18:08,930
Toutes les mesures et propriétés.

275
00:18:08,930 --> 00:18:13,400
Et puis, nous dirons, seulement l'accès en lecture.

276
00:18:13,400 --> 00:18:18,416
Autrement dit, lorsque l'utilisateur peut effectuer les opérations GET sur ces ports finaux.

277
00:18:18,416 --> 00:18:24,680
Et ces opérations GET peuvent être effectuées par tous les utilisateurs.

278
00:18:24,680 --> 00:18:27,805
Ainsi, les utilisateurs peuvent récupérer des informations.

279
00:18:27,805 --> 00:18:31,605
Et nous allons explicitement accorder l'accès pour cela.

280
00:18:31,605 --> 00:18:35,804
Donc, ce qui signifie que les opérations GET sont autorisées sur le nœud des points de terminaison de l'API REST. Tout d'

281
00:18:35,804 --> 00:18:37,610
abord, nous avons tout fermé,

282
00:18:37,610 --> 00:18:40,880
puis nous avons ouvert uniquement les opérations GET pour les utilisateurs.

283
00:18:40,880 --> 00:18:46,175
Maintenant, enfin, ils vont aller à chacun des modèles,

284
00:18:46,175 --> 00:18:49,490
puis fermer et permettre que certaines opérations ne

285
00:18:49,490 --> 00:18:53,068
soient effectuées que par certains types d'utilisateurs.

286
00:18:53,068 --> 00:18:54,625
Donc, pour ce faire,

287
00:18:54,625 --> 00:19:00,511
la prochaine ACL que nous allons mettre en place est pour un modèle spécifique.

288
00:19:00,511 --> 00:19:03,197
Donc, nous allons installer celui-ci pour la vaisselle.

289
00:19:03,197 --> 00:19:06,445
Et nous dirons : Une seule méthode.

290
00:19:06,445 --> 00:19:08,685
Et puis le nom de la méthode est, créer.

291
00:19:08,685 --> 00:19:13,320
Donc, ce qui signifie que la création de ceux-ci ne sera autorisée que par.

292
00:19:13,320 --> 00:19:15,850
Donc, encore une fois, quand il dit sélectionner le rôle,

293
00:19:15,850 --> 00:19:18,260
puis pour le rôle, nous allons dire, autre.

294
00:19:18,260 --> 00:19:20,530
Et puis le nom du rôle serait admin.

295
00:19:20,530 --> 00:19:24,663
Donc, ce que nous faisons par cette opération, c'est que,

296
00:19:24,663 --> 00:19:32,755
nous disons que seul un utilisateur administrateur peut créer de nouveaux plats ou mettre à jour des plats existants.

297
00:19:32,755 --> 00:19:38,535
Donc, c'est un peu fermé, les opérations restantes.

298
00:19:38,535 --> 00:19:45,669
Alors, faisons la même chose pour les dirigeants.

299
00:19:45,669 --> 00:19:48,880
Et une seule méthode, puis,

300
00:19:48,880 --> 00:19:53,821
la création et nous dirons,

301
00:19:53,821 --> 00:19:58,320
seul l'administrateur peut le faire.

302
00:19:58,320 --> 00:20:04,330
Et enfin, aussi pour les promotions.

303
00:20:04,330 --> 00:20:05,919
Pour les promotions.

304
00:20:05,919 --> 00:20:10,210
La méthode unique, la méthode create ne sera autorisée

305
00:20:10,210 --> 00:20:15,415
que par les utilisateurs qui ont le rôle désigné en tant qu'administrateur.

306
00:20:15,415 --> 00:20:20,340
Nous verrons comment nous allons créer des utilisateurs avec un rôle spécifique à l'étape suivante.

307
00:20:20,340 --> 00:20:22,398
Accorder explicitement l'accès.

308
00:20:22,398 --> 00:20:26,995
Notez maintenant que je n'ai pas fermé les clients pour les opérations de création.

309
00:20:26,995 --> 00:20:28,305
Si je ferme les clients,

310
00:20:28,305 --> 00:20:31,383
personne ne pourra s'inscrire dans le système.

311
00:20:31,383 --> 00:20:33,220
Donc, c'est pour ça que je vais laisser ça ouvert.

312
00:20:33,220 --> 00:20:37,170
Parce que, le client devrait être en mesure de s'inscrire dans le système.

313
00:20:37,170 --> 00:20:41,364
Ainsi, vous pouvez vous inscrire pour de nouveaux comptes sur le système.

314
00:20:41,364 --> 00:20:42,420
Comptes d'utilisateurs sur le système.

315
00:20:42,420 --> 00:20:45,585
Donc, cela sera laissé libre aux gens de le faire.

316
00:20:45,585 --> 00:20:50,800
Donc, pour permettre que pour les clients, nous dirons, clients,

317
00:20:50,800 --> 00:20:59,880
Une méthode unique, créer tous les utilisateurs.

318
00:20:59,880 --> 00:21:03,450
Ainsi, les clients peuvent être créés par tous les utilisateurs car cela

319
00:21:03,450 --> 00:21:07,125
permettra aux utilisateurs de se connecter à leur compte.

320
00:21:07,125 --> 00:21:11,820
Enfin, nous verrons comment nous pouvons configurer notre serveur pour démarrer

321
00:21:11,820 --> 00:21:17,590
avec un seul utilisateur admin automatique configuré dans notre serveur Loopback.

322
00:21:17,590 --> 00:21:19,300
Donc, pour ce faire,

323
00:21:19,300 --> 00:21:20,820
dans notre serveur Loopback,

324
00:21:20,820 --> 00:21:25,015
dans le dossier du serveur, nous avons ce sous-dossier de démarrage ici.

325
00:21:25,015 --> 00:21:28,380
Quel que soit le code que nous mettons dans le sous-dossier de démarrage,

326
00:21:28,380 --> 00:21:33,385
sera exécuté au démarrage de notre serveur LoopBack.

327
00:21:33,385 --> 00:21:37,253
Donc, ici, vous verrez que nous avons déjà ce authentication.js,

328
00:21:37,253 --> 00:21:38,490
qui est déjà configuré,

329
00:21:38,490 --> 00:21:42,255
un Loopback qui va configurer l'authentification de l'utilisateur pour nous.

330
00:21:42,255 --> 00:21:44,790
Et puis nous avons le root.js qui va mettre en place

331
00:21:44,790 --> 00:21:49,650
quelques informations supplémentaires pour notre serveur RAM Loopback.

332
00:21:49,650 --> 00:21:52,920
Et nous pouvons ajouter des fichiers supplémentaires ici.

333
00:21:52,920 --> 00:21:55,696
Donc, je vais y aller dans le dossier de démarrage,

334
00:21:55,696 --> 00:22:01,111
puis ajouter dans ce fichier appelé, script.js.

335
00:22:01,111 --> 00:22:03,259
Et dans ce script.js,

336
00:22:03,259 --> 00:22:07,610
je vais configurer le code pour créer un utilisateur admin par défaut.

337
00:22:07,610 --> 00:22:08,785
Donc, dans le script.js,

338
00:22:08,785 --> 00:22:12,335
qui ne sera rien d'autre qu'un module NPM basé sur des fichiers donc,

339
00:22:12,335 --> 00:22:13,995
nous allons commencer en disant,

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

341
00:22:21,050 --> 00:22:23,355
L' application est l'application Loopback,

342
00:22:23,355 --> 00:22:28,185
qui sera fournie en tant que paramètre pour cette fonction pour nous.

343
00:22:28,185 --> 00:22:32,072
Et donc, nous pouvons en faire usage dans notre code ici.

344
00:22:32,072 --> 00:22:39,585
Donc, ici, nous allons d'abord configurer un utilisateur admin.

345
00:22:39,585 --> 00:22:41,003
Donc, pour ce faire, nous dirons,

346
00:22:41,003 --> 00:22:51,840
var Client = app.models.Customer.

347
00:22:51,840 --> 00:22:56,580
Ainsi, cela nous donne accès au modèle client.

348
00:22:56,580 --> 00:23:03,321
Ensuite, nous dirons, clients. Findone.

349
00:23:03,321 --> 00:23:08,820
Donc, nous allons d'abord vérifier si un utilisateur avec

350
00:23:08,820 --> 00:23:16,920
le nom d'utilisateur en tant qu'administrateur est déjà configuré dans le système ou non.

351
00:23:16,920 --> 00:23:20,585
Sinon, je vais créer un utilisateur admin.

352
00:23:20,585 --> 00:23:30,230
Et cela me fournit une fonction de rappel avec deux paramètres, err et utilisateurs.

353
00:23:30,230 --> 00:23:34,470
Et à l'intérieur de cette- Donc, nous allons d'abord essayer de

354
00:23:34,470 --> 00:23:39,195
voir si un utilisateur avec leur nom admin existe déjà.

355
00:23:39,195 --> 00:23:40,800
Si l'utilisateur n'existe pas,

356
00:23:40,800 --> 00:23:42,453
alors nous allons créer l'utilisateur.

357
00:23:42,453 --> 00:23:43,800
Donc, pour créer l'utilisateur,

358
00:23:43,800 --> 00:23:49,326
nous allons dire ici, sinon les utilisateurs.

359
00:23:49,326 --> 00:23:55,830
Donc, si les utilisateurs n'est pas null ou si l'utilisateur dit null,

360
00:23:55,830 --> 00:24:02,305
cela signifie qu'il n'y a pas d'utilisateur admin donc je dois créer un utilisateur admin ici.

361
00:24:02,305 --> 00:24:09,330
Donc, dans ce cas, nous dirons, customer.create.

362
00:24:09,330 --> 00:24:19,835
Et cette création prend un tableau d'objets si vous le souhaitez.

363
00:24:19,835 --> 00:24:30,235
Et ce tableau d'objets nous permettra de spécifier les comptes d'utilisateurs que nous voulons créer.

364
00:24:30,235 --> 00:24:33,575
Donc, le premier compte d'utilisateur que je veux créer ou

365
00:24:33,575 --> 00:24:38,678
le seul compte d'utilisateur que je veux créer est le 'Admin'.

366
00:24:38,678 --> 00:24:41,845
Donc, ce sera l'administrateur par défaut pour

367
00:24:41,845 --> 00:24:47,447
mon serveur de bouclage, puis je peux configurer l'e-mail.

368
00:24:47,447 --> 00:24:56,850
Rappelons donc que le modèle utilisateur prend en charge ces propriétés,

369
00:24:56,850 --> 00:25:02,380
confusion.net, puis mot de passe que

370
00:25:02,380 --> 00:25:07,253
je vais configurer comme mot de passe.

371
00:25:07,253 --> 00:25:09,790
Vous pouvez également fournir avec cela,

372
00:25:09,790 --> 00:25:11,560
le prénom et le nom de famille,

373
00:25:11,560 --> 00:25:14,345
si vous le souhaitez, pour l'utilisateur admin.

374
00:25:14,345 --> 00:25:16,975
Mais je vais le laisser en tant que tel,

375
00:25:16,975 --> 00:25:20,640
comme vide parce que ceux-ci ne sont pas requis pour l'utilisateur admin.

376
00:25:20,640 --> 00:25:22,270
Alors je vais le laisser là.

377
00:25:22,270 --> 00:25:28,765
Donc, cette commande finira par créer un nouveau client avec le nom 'Admin'.

378
00:25:28,765 --> 00:25:34,480
Donc, si cet utilisateur ou le nom « Admin » n'existe pas,

379
00:25:34,480 --> 00:25:36,194
alors nous allons en créer un.

380
00:25:36,194 --> 00:25:43,800
Et puis ici, nous avons la fonction de rappel.

381
00:25:45,150 --> 00:25:54,240
Donc, les utilisateurs errent.

382
00:25:54,240 --> 00:25:57,965
Maintenant, je vais dire,

383
00:25:57,965 --> 00:26:06,850
si erreur, nous ne savons pas ce qu'il essaie de faire, alors nous allons simplement jeter l'erreur.

384
00:26:06,850 --> 00:26:12,210
Mais normalement, nous ne nous attendons pas à ce que cela arrive.

385
00:26:12,210 --> 00:26:17,650
Alors maintenant, comment désignez-vous cet utilisateur en tant qu'utilisateur administratif ?

386
00:26:17,650 --> 00:26:19,290
Donc, en ce moment, quand je m'inscrit ici,

387
00:26:19,290 --> 00:26:21,305
je suis juste en train d'inscrire un utilisateur normal ici,

388
00:26:21,305 --> 00:26:24,270
mais nous voulons donner un rôle spécial à cet utilisateur. C'

389
00:26:24,270 --> 00:26:30,775
est donc là que bouclage prend en charge un moyen de spécifier des rôles pour les utilisateurs.

390
00:26:30,775 --> 00:26:32,775
Donc, pour spécifier un rôle,

391
00:26:32,775 --> 00:26:39,609
nous allons var Role = app.Models.Role.

392
00:26:39,609 --> 00:26:42,490
Donc, cela me permettra de créer un rôle,

393
00:26:42,490 --> 00:26:44,670
un nouvel appel de rôle admin ici.

394
00:26:44,670 --> 00:26:48,600
Donc, nous pouvons assigner différents drones à différents utilisateurs si vous voulez.

395
00:26:48,600 --> 00:26:50,365
Et avec cela,

396
00:26:50,365 --> 00:26:55,394
j'ai aussi besoin de créer un RoleMapapping ici.

397
00:26:55,394 --> 00:27:05,519
Donc, nous allons dire, App.Models.RoleMapping.

398
00:27:05,519 --> 00:27:12,045
Et s'il arrive que la base de données contient déjà

399
00:27:12,045 --> 00:27:18,821
un RoleMapping qui existe déjà,

400
00:27:18,821 --> 00:27:25,290
alors je vais détruire tous ceux quand je démarre mon serveur.

401
00:27:25,290 --> 00:27:35,650
Et puis laissez-moi essayer de trouver

402
00:27:36,120 --> 00:27:40,550
pour voir si un rôle avec

403
00:27:40,550 --> 00:27:46,130
ce nom admin

404
00:27:46,130 --> 00:27:53,180
existe déjà dans le système.

405
00:27:53,180 --> 00:27:54,885
D' accord.

406
00:27:54,885 --> 00:27:56,420
Et dans cela prend,

407
00:27:56,420 --> 00:27:57,560
comme vous vous y attendez,

408
00:27:57,560 --> 00:28:06,795
une fonction de rappel et à l'intérieur ici nous dirons, role.findone.

409
00:28:06,795 --> 00:28:10,530
Donc, si un rôle avec le nom admin existe déjà,

410
00:28:10,530 --> 00:28:11,927
alors je n'ai pas besoin d'en créer un.

411
00:28:11,927 --> 00:28:18,710
Sinon, si cela n'existe pas,

412
00:28:18,710 --> 00:28:20,427
alors je dois créer le rôle.

413
00:28:20,427 --> 00:28:29,540
Donc, nous allons dire, rôle.Créer.

414
00:28:29,540 --> 00:28:34,950
Nous allons donc créer un rôle d'administrateur ici.

415
00:28:34,950 --> 00:28:45,230
Et puis cela nous amène aux paramètres err,

416
00:28:45,230 --> 00:28:52,523
rôle ici, dans la fonction de rappel.

417
00:28:52,523 --> 00:28:56,215
Maintenant encore une fois, ici pour gérer l'erreur,

418
00:28:56,215 --> 00:29:03,749
nous allons juste copier ce « si erreur » et ensuite le coller là.

419
00:29:03,749 --> 00:29:06,685
De même ici aussi, si l'erreur se produit,

420
00:29:06,685 --> 00:29:09,415
alors je dois gérer cela.

421
00:29:09,415 --> 00:29:12,820
Donc, 'si erreur' puis 'jetez l'erre'.

422
00:29:12,820 --> 00:29:21,787
Sinon, nous avons créé le rôle.

423
00:29:21,787 --> 00:29:28,625
Donc maintenant, j'ai besoin de mapper ce rôle à cet utilisateur particulier que je viens de créer.

424
00:29:28,625 --> 00:29:31,658
Cet utilisateur que je viens de créer ici.

425
00:29:31,658 --> 00:29:36,660
Cet utilisateur. Je veux donner à cet utilisateur le rôle de l'administrateur.

426
00:29:36,660 --> 00:29:39,140
Donc, depuis que j'ai créé ce rôle par le nom admin,

427
00:29:39,140 --> 00:29:47,167
donc nous allons dire, role.principals.create.

428
00:29:47,167 --> 00:29:56,954
C' est ainsi que vous créez un mappage entre le rôle et un utilisateur particulier ici.

429
00:29:56,954 --> 00:29:59,370
Donc, nous allons dire, role.principals.create.

430
00:29:59,370 --> 00:30:01,735
Donc, c'est la syntaxe là-bas.

431
00:30:01,735 --> 00:30:17,320
Nous dirons, PrincipalType : RolemApping.user

432
00:30:17,320 --> 00:30:25,330
ici et vous prendrez

433
00:30:25,330 --> 00:30:32,385
un identifiant principal ici qui est les utilisateurs.

434
00:30:32,385 --> 00:30:36,320
À quoi se réfère cet utilisateur ?

435
00:30:36,320 --> 00:30:40,418
Cet utilisateur fait référence à ce qui vient d'arriver.

436
00:30:40,418 --> 00:30:43,520
Donc, lorsque nous avons créé ces utilisateurs,

437
00:30:43,520 --> 00:30:49,335
alors le client doit créer un retour réussi à nous ici.

438
00:30:49,335 --> 00:30:51,905
C' est ce que je vais utiliser ici.

439
00:30:51,905 --> 00:30:53,240
Nous dirons, utilisateurs [0].

440
00:30:53,240 --> 00:30:58,430
Donc, ce serait un tableau d'utilisateurs qui ont été créés et qui ne contiennent qu'un d'entre eux.

441
00:30:58,430 --> 00:31:01,748
C' est pourquoi je dis utilisateur [0].

442
00:31:01,748 --> 00:31:08,037
Et puis nous allons attribuer l'ID de cet utilisateur ici.

443
00:31:08,037 --> 00:31:14,215
C' est ainsi que nous allons créer un RoleMapping entre le rôle que nous venons de créer,

444
00:31:14,215 --> 00:31:20,639
ce rôle, puis le mapper au client que nous venons de créer.

445
00:31:20,639 --> 00:31:29,315
Maintenant, cela nous amène également aux paramètres, la fonction de rappel.

446
00:31:29,315 --> 00:31:33,735
Et dans cette fonction de rappel, nous allons simplement dire,

447
00:31:33,735 --> 00:31:35,950
si (err) jeter (err).

448
00:31:35,950 --> 00:31:41,825
Sinon, nous ne sommes pas vraiment désireux de savoir ce qui s'est passé là-bas.

449
00:31:41,825 --> 00:31:44,055
C' est ça. Alors c'est comme ça.

450
00:31:44,055 --> 00:31:46,870
Donc, si le rôle nommé admin n'existe pas,

451
00:31:46,870 --> 00:31:48,819
nous allons créer ce rôle.

452
00:31:48,819 --> 00:31:53,785
Si non - Donc, c'est la

453
00:31:53,785 --> 00:32:01,170
partie 'else' où j'aurai encore besoin de faire ce mappage.

454
00:32:01,170 --> 00:32:08,140
Alors laissez-moi copier ce code et ensuite je le ferai exactement ici.

455
00:32:08,140 --> 00:32:15,834
Donc role.principals.create et ensuite mapper ceci pour l'utilisateur là.

456
00:32:15,834 --> 00:32:17,980
Donc, si le rôle admin existe déjà,

457
00:32:17,980 --> 00:32:20,730
alors tout ce qu'ils doivent faire est de faire le mappage.

458
00:32:20,730 --> 00:32:28,420
Cela sera donc stocké dans le modèle RoleMapping dans notre base de données. C'est ça.

459
00:32:28,420 --> 00:32:34,520
Donc, ce morceau de code que nous mettons dans le fichier script.js va d'abord essayer de

460
00:32:34,520 --> 00:32:41,765
trouver si un utilisateur admin existe et que cet utilisateur est identifié par le nom admin.

461
00:32:41,765 --> 00:32:50,210
Si ce n'est pas le cas, l'utilisateur sera créé et créera également le rôle pour l'utilisateur.

462
00:32:50,210 --> 00:32:52,065
Nous allons créer un rôle nommé admin.

463
00:32:52,065 --> 00:32:53,865
Si ce rôle existe,

464
00:32:53,865 --> 00:32:54,950
nous allons juste l'utiliser.

465
00:32:54,950 --> 00:32:56,705
Sinon, nous allons créer le rôle.

466
00:32:56,705 --> 00:33:01,485
Et puis après cela, nous allons créer ce mappage entre le rôle et l'utilisateur.

467
00:33:01,485 --> 00:33:03,940
Donc loopback nous permet de faire le RoleMapping.

468
00:33:03,940 --> 00:33:07,310
Donc dire que cet utilisateur n'est pas à ce rôle.

469
00:33:07,310 --> 00:33:10,395
Donc, ce mappage est fait en utilisant cette instruction.

470
00:33:10,395 --> 00:33:14,010
Donc, cela complète la configuration de nos serveurs.

471
00:33:14,010 --> 00:33:18,305
Pour qu'un utilisateur admin soit créé et que cet utilisateur administrateur

472
00:33:18,305 --> 00:33:24,155
obtienne automatiquement le rôle de l'administrateur tel que configuré ici.

473
00:33:24,155 --> 00:33:27,675
C' est ça. Enregistrez les modifications dans script.js.

474
00:33:27,675 --> 00:33:32,015
Et maintenant, nos serveurs de bouclage devraient être prêts.

475
00:33:32,015 --> 00:33:38,840
Donc, nous allons maintenant démarrer notre serveur de retour et ensuite vérifier ce que nous pouvons faire avec cela.

476
00:33:38,840 --> 00:33:41,085
En allant aux terminaux,

477
00:33:41,085 --> 00:33:43,060
commençons le serveur de bouclage.

478
00:33:43,060 --> 00:33:49,428
Donc, nous allons dire, npm start et alors notre serveur devrait être opérationnel.

479
00:33:49,428 --> 00:33:53,220
Allons dans l'Explorateur, puis parcourez les informations là-bas.

480
00:33:53,220 --> 00:33:55,890
Et ce serveur de bouclage se sera automatiquement

481
00:33:55,890 --> 00:33:59,535
connecté à mon MongoDP parce que j'ai configuré la connexion.

482
00:33:59,535 --> 00:34:03,415
Aller à mon navigateur,

483
00:34:03,415 --> 00:34:05,610
laissez-moi recharger ça.

484
00:34:05,610 --> 00:34:07,879
Et quand je rechargerai ceci,

485
00:34:07,879 --> 00:34:12,450
vous verrez maintenant que nous avons un nouveau client qui a été créé ici.

486
00:34:12,450 --> 00:34:14,705
L' utilisateur existait déjà plus tôt.

487
00:34:14,705 --> 00:34:17,840
Les plats, les leaders et les promotions sont tous là.

488
00:34:17,840 --> 00:34:20,325
Effectuons un get sur la vaisselle.

489
00:34:20,325 --> 00:34:23,250
Maintenant que cela est connecté à la bouche MongoDB,

490
00:34:23,250 --> 00:34:26,845
mon MongoDB a déjà quelques plats là-dedans.

491
00:34:26,845 --> 00:34:28,235
Si votre MongoDB est vide,

492
00:34:28,235 --> 00:34:31,821
vous pouvez poster quelques plats en utilisant le post ici.

493
00:34:31,821 --> 00:34:33,995
Alors essayons-le.

494
00:34:33,995 --> 00:34:38,040
Quand je fais une opération get sur les plats barre oblique,

495
00:34:38,040 --> 00:34:42,945
vous verrez que dans le corps de réponse-

496
00:34:42,945 --> 00:34:48,090
Tous les plats qui existent dans ma base de données ont tous été récupérés.

497
00:34:48,090 --> 00:34:52,995
De même, je peux faire un GET sur les

498
00:34:52,995 --> 00:35:01,900
promotions et je devrais voir la promotion qui existe déjà dans ma base de données là-bas.

499
00:35:01,900 --> 00:35:04,845
Ainsi, vous pouvez voir que la promotion existe déjà là.

500
00:35:04,845 --> 00:35:09,978
Donc, cela nous montre comment nous pouvons récupérer des informations.

501
00:35:09,978 --> 00:35:12,485
Maintenant, essayons de poster un nouveau plat.

502
00:35:12,485 --> 00:35:14,185
Donc, pour poster un nouveau plat,

503
00:35:14,185 --> 00:35:16,675
nous allons au POST ici.

504
00:35:16,675 --> 00:35:18,715
Laisse-moi juste copier ça.

505
00:35:18,715 --> 00:35:20,035
Évidemment,

506
00:35:20,035 --> 00:35:22,080
en ce moment, parce que puisque je ne suis pas connecté,

507
00:35:22,080 --> 00:35:26,180
je ne serai pas autorisé à poster le plat si,

508
00:35:26,180 --> 00:35:31,615
mais je vais démontrer que vous êtes juste copier et coller cette information ici,

509
00:35:31,615 --> 00:35:34,120
et nous allons essayer de poster ce plat,

510
00:35:34,120 --> 00:35:36,010
puis quand j'essaie de poster le plat,

511
00:35:36,010 --> 00:35:40,660
mon serveur répond immédiatement avec cette erreur en disant, AUTORIZATION_REQUIS.

512
00:35:40,660 --> 00:35:42,790
Vous n'êtes pas autorisé à effectuer cette opération.

513
00:35:42,790 --> 00:35:46,146
Donc, c'est pourquoi vous n'êtes pas autorisé à faire cette opération.

514
00:35:46,146 --> 00:35:48,505
Comment vous autorisez-vous ?

515
00:35:48,505 --> 00:35:50,315
Donc, pour vous autoriser,

516
00:35:50,315 --> 00:35:58,450
rappelez-vous maintenant que nous avons déjà créé un utilisateur avec le nom admin,

517
00:35:58,450 --> 00:36:05,240
et cet utilisateur admin existe déjà en tant que client ici.

518
00:36:05,240 --> 00:36:11,495
Par conséquent, en allant dans les points de terminaison de l'API REST du client

519
00:36:11,495 --> 00:36:12,835
, si vous faites défiler

520
00:36:12,835 --> 00:36:16,925
vers le bas, ci-dessous, vous verrez la connexion de ce client.

521
00:36:16,925 --> 00:36:20,220
Donc, lorsque vous faites un POST sur la connexion du client.

522
00:36:20,220 --> 00:36:22,430
Donc, pour la connexion du client,

523
00:36:22,430 --> 00:36:26,273
vous faites défiler ici, puis ici, il demande les informations d'identification.

524
00:36:26,273 --> 00:36:27,540
Donc, dans les informations d'identification,

525
00:36:27,540 --> 00:36:35,190
nous pouvons taper le nom d'utilisateur entre guillemets, et nous dirons,

526
00:36:35,190 --> 00:36:40,570
Admin, puis mot de passe,

527
00:36:40,570 --> 00:36:48,665
nous allons dire, mot de passe, puis nous posterons ceci.

528
00:36:48,665 --> 00:36:50,450
Et puis quand vous l'affichez,

529
00:36:50,450 --> 00:36:54,365
vous remarquerez que dans la réponse,

530
00:36:54,365 --> 00:36:57,764
LoopBack me renverra cette information.

531
00:36:57,764 --> 00:36:59,660
Maintenant, dans cette information,

532
00:36:59,660 --> 00:37:06,725
cet identifiant particulier qu'il renvoie est le AccessToKen pour mon serveur LoopBack.

533
00:37:06,725 --> 00:37:09,835
Donc, je peux juste copier cet AccessToken ici,

534
00:37:09,835 --> 00:37:13,575
et puis juste en haut ici,

535
00:37:13,575 --> 00:37:17,735
vous pouvez voir que c'est Token Not Set, ici.

536
00:37:17,735 --> 00:37:19,660
Ça dit Token Not Set.

537
00:37:19,660 --> 00:37:22,415
Et ici, vous pouvez taper ce AccessToken,

538
00:37:22,415 --> 00:37:24,605
puis dire, Définir jeton d'accès.

539
00:37:24,605 --> 00:37:27,245
Et puis votre AccessToken sera défini,

540
00:37:27,245 --> 00:37:33,525
puis toutes les opérations suivantes que vous effectuez porteront automatiquement

541
00:37:33,525 --> 00:37:39,750
cet AccessToKen dans l'en-tête de mon message de requête.

542
00:37:39,750 --> 00:37:45,350
Donc, de cette façon, maintenant mon administrateur sera autorisé à faire des messages d'articles là-bas.

543
00:37:45,350 --> 00:37:47,480
Donc, maintenant que je me suis connecté en tant qu'administrateur,

544
00:37:47,480 --> 00:37:49,135
laissez-moi aller aux promotions,

545
00:37:49,135 --> 00:37:51,171
puis je vais poster une promotion là-bas,

546
00:37:51,171 --> 00:37:57,098
et vous montrer que je peux réellement poster des promotions.

547
00:37:57,098 --> 00:38:00,885
Donc, allons à un POST,

548
00:38:00,885 --> 00:38:07,250
et puis nous allons juste copier ceci, puis dans les données,

549
00:38:07,250 --> 00:38:13,855
et puis pour le nom que nous allons dire, Promotion de test,

550
00:38:13,855 --> 00:38:24,500
et l'image nous allons juste laisser en tant que telle, description, Description de test.

551
00:38:30,990 --> 00:38:34,665
Et je peux le poster là-dedans,

552
00:38:34,665 --> 00:38:38,180
et vous verrez

553
00:38:41,740 --> 00:38:48,265
que je ne devrais pas inclure cet identifiant ici parce que j'ai

554
00:38:48,265 --> 00:38:53,710
laissé LoopBack lui attribuer automatiquement l'identifiant.

555
00:38:53,710 --> 00:38:58,325
Laissez-moi poster ceci et vous verrez que dans le corps de la réponse,

556
00:38:58,325 --> 00:39:01,293
la promotion de test a été posté ici.

557
00:39:01,293 --> 00:39:04,615
Et je viens de remarquer que je n'ai pas inclus

558
00:39:04,615 --> 00:39:11,130
le drapeau en vedette pour mes promotions et mes leaders.

559
00:39:11,130 --> 00:39:16,180
Donc, je vais y aller et inclure le drapeau en vedette comme l'

560
00:39:16,180 --> 00:39:21,930
une des parties de mes promotions là-bas.

561
00:39:21,930 --> 00:39:26,845
Donc, maintenant, quand je fais un GET pour les promotions,

562
00:39:26,845 --> 00:39:29,875
vous verrez que dans ce message de réponse,

563
00:39:29,875 --> 00:39:34,795
vous verrez l'ancienne promotion qui était déjà dans ma base de données,

564
00:39:34,795 --> 00:39:40,395
puis la nouvelle promotion que je viens de poster dans ma base de données déjà incluse ici.

565
00:39:40,395 --> 00:39:44,395
Donc, je viens de remarquer que je dois définir l'indicateur en vedette,

566
00:39:44,395 --> 00:39:46,695
je vais vous montrer comment faire cela dans un.

567
00:39:46,695 --> 00:39:54,100
Donc, ce genre de vous montre comment vous pouvez vous connecter et explorer votre serveur LoopBack.

568
00:39:54,100 --> 00:39:55,420
Laissez-moi détruire ce jeton,

569
00:39:55,420 --> 00:39:58,010
donc nous allons simplement supprimer le jeton,

570
00:39:58,010 --> 00:39:59,555
puis cliquer dessus

571
00:39:59,555 --> 00:40:02,440
afin que cela enverra essentiellement le jeton d'accès à une

572
00:40:02,440 --> 00:40:05,560
chaîne vide et donc mon jeton ne traitera plus,

573
00:40:05,560 --> 00:40:07,880
donc maintenant mon utilisateur n'est plus connecté.

574
00:40:07,880 --> 00:40:11,148
Laissez-moi créer un nouveau client.

575
00:40:11,148 --> 00:40:16,290
Donc, pour créer un nouveau client, je dirai, les clients POST.

576
00:40:16,290 --> 00:40:20,780
Et puis je vais copier ça d'ici.

577
00:40:20,780 --> 00:40:24,175
Je vais me créer un nouveau compte ici.

578
00:40:24,175 --> 00:40:26,160
Et donc, ici,

579
00:40:26,160 --> 00:40:28,620
je vais supprimer le royaume,

580
00:40:28,620 --> 00:40:32,186
je n'ai pas besoin de cela, je n'ai pas besoin de l'identifiant.

581
00:40:32,186 --> 00:40:36,070
Donc, pour le prénom

582
00:40:39,750 --> 00:40:46,610
et l'emailVerified devraient être automatiquement définis par le système.

583
00:40:46,610 --> 00:40:49,430
Donc, laissez-moi me connecter en tant qu'utilisateur.

584
00:40:49,430 --> 00:40:52,370
Donc, je vais juste soumettre mon prénom, nom de famille,

585
00:40:52,370 --> 00:40:54,440
et l'image actuellement,

586
00:40:54,440 --> 00:40:59,745
je vais juste définir une chaîne vide là, nom d'utilisateur et e-mail.

587
00:40:59,745 --> 00:41:01,835
Et puis nous allons l'essayer,

588
00:41:01,835 --> 00:41:05,060
et puis il revient en disant,

589
00:41:05,060 --> 00:41:08,820
Détails : 'mot de passe' ne peut pas être vide.

590
00:41:08,820 --> 00:41:11,285
Donc, vous remarquerez que ici,

591
00:41:11,285 --> 00:41:16,900
je devrais également inclure avec le nom d'utilisateur,

592
00:41:17,040 --> 00:41:27,834
mot de passe et ensuite, posons ceci.

593
00:41:27,834 --> 00:41:30,890
Donc, quand vous le publiez, il revient avec

594
00:41:30,890 --> 00:41:35,535
le corps de réponse disant que vous faites maintenant partie du système.

595
00:41:35,535 --> 00:41:37,160
Ainsi, votre prénom,

596
00:41:37,160 --> 00:41:40,280
votre nom de famille et votre nom d'utilisateur, votre identifiant e-mail

597
00:41:40,280 --> 00:41:45,706
et l'identifiant que LoopBack vous attribue vous sont renvoyés.

598
00:41:45,706 --> 00:41:52,777
Donc, ce n'est rien d'autre que l'identifiant MongoDB comme vous pouvez le voir ici.

599
00:41:52,777 --> 00:41:56,150
Donc, maintenant que je me suis inscrit en tant que client,

600
00:41:56,150 --> 00:41:58,425
je devrais pouvoir me connecter en tant que client,

601
00:41:58,425 --> 00:42:01,775
afin que j'aille à la connexion POST ici,

602
00:42:01,775 --> 00:42:04,250
puis ici, à la place de l'administrateur,

603
00:42:04,250 --> 00:42:11,710
je vais me connecter en tant que nouvel utilisateur que je me suis connecté.

604
00:42:11,710 --> 00:42:14,130
Donc, alors je clique sur pour essayer,

605
00:42:14,130 --> 00:42:17,405
vous verrez qu'il retourne avec l'identifiant,

606
00:42:17,405 --> 00:42:22,910
donc il me donne le jeton pour cet utilisateur admin ici.

607
00:42:22,910 --> 00:42:30,080
Donc, avec cela, nous avons terminé l'examen du serveur LoopBack que nous venons de créer.

608
00:42:30,080 --> 00:42:31,340
Et comme je viens de le mentionner,

609
00:42:31,340 --> 00:42:36,935
j'ai remarqué que les promotions et les leaders n'ont pas présenté drapeau alors,

610
00:42:36,935 --> 00:42:40,930
je vais entrer dans le code.

611
00:42:40,930 --> 00:42:43,400
Donc, supposons que vous oubliez quelque chose comme ça,

612
00:42:43,400 --> 00:42:47,305
alors vous pouvez simplement entrer et modifier le code Json si vous le souhaitez.

613
00:42:47,305 --> 00:42:50,540
Donc, je vais entrer dans mon code,

614
00:42:50,540 --> 00:42:52,040
aller au code,

615
00:42:52,040 --> 00:42:56,635
je vais d'abord aller dans les communes et ensuite je vais aller dans les plats.json.

616
00:42:56,635 --> 00:42:59,750
Et puis dans les plats.json,

617
00:42:59,750 --> 00:43:05,320
je vois cette propriété en vedette là-bas.

618
00:43:05,320 --> 00:43:07,480
Je vais copier cette propriété en vedette,

619
00:43:07,480 --> 00:43:09,040
puis je vais aller dans leaders.json,

620
00:43:09,040 --> 00:43:15,151
puis je vais coller cette propriété de fonctionnalité à un leaders.json,

621
00:43:15,151 --> 00:43:17,750
et aussi avec promotions.json.

622
00:43:17,750 --> 00:43:22,955
J' ai oublié de l'inclure quand j'ai créé ces modèles.

623
00:43:22,955 --> 00:43:27,180
J' aurais dû le faire lorsque je créais le modèle lui-même donc,

624
00:43:27,180 --> 00:43:29,960
si vous oubliez quelque chose comme ça,

625
00:43:29,960 --> 00:43:33,370
alors c'est une autre façon d'éditer votre modèle

626
00:43:33,370 --> 00:43:38,070
et de s'assurer que votre modèle est correctement configuré.

627
00:43:38,070 --> 00:43:40,130
Alors, c'est tout.

628
00:43:40,130 --> 00:43:48,575
Donc, maintenant, mes promotions et mes dirigeants auront également le drapeau en vedette là-dedans.

629
00:43:48,575 --> 00:43:52,675
Avec cela, nous terminons cet exercice.

630
00:43:52,675 --> 00:43:56,525
Dans cet exercice, nous avons vu comment nous pouvons mettre en place

631
00:43:56,525 --> 00:44:03,555
un nouveau modèle en étendant une classe de modèle de base déjà dans LoopBack.

632
00:44:03,555 --> 00:44:07,250
Nous avons également vu comment nous pouvions mettre en place des contrôles d'

633
00:44:07,250 --> 00:44:11,540
accès en utilisant les listes de contrôle d'accès prises en charge par LoopBack.

634
00:44:11,540 --> 00:44:13,970
Avec cela, nous terminons cet exercice.

635
00:44:13,970 --> 00:44:16,835
C' est un bon moment pour vous de faire une couverture avec

636
00:44:16,835 --> 00:44:22,450
le message LoopBack sources de données et le contrôle d'accès.