1
00:00:03,550 --> 00:00:06,360
في التمرين السابق،

2
00:00:06,360 --> 00:00:10,860
رأينا كم كان من السهل بالنسبة لنا تكوين ثم

3
00:00:10,860 --> 00:00:15,950
سقالة خادم مستلم باستخدام إطار LoopBack.

4
00:00:15,950 --> 00:00:20,895
ونحن نرى أن إطار LoopBack هذا يدعم مجموعة كاملة

5
00:00:20,895 --> 00:00:23,040
من نقاط النهاية المستلم

6
00:00:23,040 --> 00:00:26,324
وجميع عمليات نقاط النهاية المستلم تلقائيا بالنسبة لنا،

7
00:00:26,324 --> 00:00:28,590
عندما سقالة من التطبيق لدينا.

8
00:00:28,590 --> 00:00:31,755
في هذا التمرين، سننظر في كيفية توصيل

9
00:00:31,755 --> 00:00:35,800
خادم LoopBack الخاص بنا بقاعدة بيانات خلفية،

10
00:00:35,800 --> 00:00:38,926
أو MongoDB في هذه الحالة،

11
00:00:38,926 --> 00:00:45,565
وسنرى أيضًا كيف يمكننا إعداد عناصر تحكم وصول مختلفة على نقاط نهاية المستلم.

12
00:00:45,565 --> 00:00:47,575
لذلك باستخدام ضوابط الوصول،

13
00:00:47,575 --> 00:00:52,010
يمكننا تحديد نوع العمليات التي يمكن تنفيذها على نقاط نهاية المستلم،

14
00:00:52,010 --> 00:00:56,730
ومن سيسمح له بتنفيذ تلك العمليات.

15
00:00:56,730 --> 00:01:02,385
على سبيل المثال، يمكن للمستخدم غير المصادق عليه أو الضيف

16
00:01:02,385 --> 00:01:08,666
الوصول إلى المعلومات فقط أو القيام بعملية الحصول على نقاط النهاية المستلم،

17
00:01:08,666 --> 00:01:13,484
وسيتمكن المستخدم المصادق عليه أيضًا من القيام بنفس الشيء،

18
00:01:13,484 --> 00:01:21,240
ولكن المسؤول فقط سيكون قادرًا على كتابة البيانات في الخادم الخاص بي.

19
00:01:21,240 --> 00:01:27,025
لذلك، لا يمكن تنفيذ أي عمليات وضع ونشر وحذف إلا من قبل مسؤول.

20
00:01:27,025 --> 00:01:32,535
على طول الطريق سوف نرى أيضا كيف يمكننا إعداد حساب المشرف في خادم LoopBack لدينا،

21
00:01:32,535 --> 00:01:35,250
ومن ثم تكوينه

22
00:01:35,250 --> 00:01:38,880
بحيث يسمح للمستخدم المشرف فقط لتنفيذ هذه العمليات.

23
00:01:38,880 --> 00:01:42,246
لذلك هذا هو المكان الذي يسمح لنا LoopBack بتحديد شيء

24
00:01:42,246 --> 00:01:46,080
يسمى الأدوار المرتبطة بمختلف المستخدمين.

25
00:01:46,080 --> 00:01:48,645
لذلك يمكن تعيين دور لكل مستخدم.

26
00:01:48,645 --> 00:01:52,170
على سبيل المثال، يمكنك التحدث عن مستخدم

27
00:01:52,170 --> 00:01:55,915
عادي، مسؤول، مشرف سوبر وهلم جرا.

28
00:01:55,915 --> 00:02:00,675
حتى تتمكن من تقسيم مجموعة المستخدمين إلى مجموعات مختلفة،

29
00:02:00,675 --> 00:02:03,793
ومن ثم تعيين أدوار مختلفة لهم.

30
00:02:03,793 --> 00:02:09,885
كما سننظر في كيفية تخصيص نموذج المستخدم المدمج،

31
00:02:09,885 --> 00:02:11,790
داخل تطبيق LoopBack الخاص بنا،

32
00:02:11,790 --> 00:02:16,290
وكيف يمكننا بناء نموذج آخر على رأس نموذج المستخدم،

33
00:02:16,290 --> 00:02:19,710
ومن ثم استخدام نموذج المستخدم كفئة أساسية

34
00:02:19,710 --> 00:02:23,400
وتطوير نموذج مستوى أعلى يسمى نموذج العميل،

35
00:02:23,400 --> 00:02:27,060
والذي يسمح لنا لتخزين معلومات إضافية لكل

36
00:02:27,060 --> 00:02:30,999
من العملاء الذين سيتم تسجيل الدخول إلى موقعنا.

37
00:02:30,999 --> 00:02:38,040
لذلك، دعونا استكشاف بعض هذه الميزات من LoopBack في هذا التمرين.

38
00:02:38,040 --> 00:02:40,830
للبدء في هذا التمرين،

39
00:02:40,830 --> 00:02:42,645
أول شيء أود منك القيام به،

40
00:02:42,645 --> 00:02:44,040
هو بدء تشغيل خادم MongoDB الخاص بك.

41
00:02:44,040 --> 00:02:49,545
حتى هنا أنا في علامة تبويب محطة أخرى في مجلد MongoDB الخاص بي،

42
00:02:49,545 --> 00:02:52,950
حيث قمت بتكوين خادم MongoDB الخاص بي في وقت سابق،

43
00:02:52,950 --> 00:02:59,065
والذي تم استخدامه من قبل خادم Express Plus MongoDB في التدريبات السابقة.

44
00:02:59,065 --> 00:03:03,775
لذلك اسمحوا لي أن أبدأ خادم MongoDB عن طريق كتابة

45
00:03:03,775 --> 00:03:11,190
MonGod ناقص بيانات جزء D-B

46
00:03:11,190 --> 00:03:15,334
في هذا المجلد ثم بدء تشغيل خادم MongoDB الخاص بي.

47
00:03:15,334 --> 00:03:20,005
الآن، سأقوم بتوصيل خادم LoopBack الخاص بي بخادم MongoDB الخاص بي.

48
00:03:20,005 --> 00:03:23,920
حتى الذهاب إلى مجلد خادم LoopBack الخاص بي هنا،

49
00:03:23,920 --> 00:03:28,560
لا بد لي من المطالبة نوع مصدر البيانات L-B.

50
00:03:28,560 --> 00:03:32,820
سيسمح لنا ذلك بتكوين مصدر البيانات لخادم LoopBack الخاص بنا.

51
00:03:32,820 --> 00:03:39,460
يمكن لـ LoopBack نفسه الاتصال في وقت واحد بمصادر بيانات متعددة إذا اخترت

52
00:03:39,460 --> 00:03:41,843
ذلك، ويدعم أنواعًا مختلفة.

53
00:03:41,843 --> 00:03:46,800
وهو يدعم قواعد بيانات بلدي دورة، فإنه يدعم مونغودب،

54
00:03:46,800 --> 00:03:52,175
فإنه يدعم كلودانت الذي هو أيضا قاعدة بيانات وثيقة أخرى،

55
00:03:52,175 --> 00:03:58,410
فإنه يدعم أوراكل، والعديد من أنواع أخرى من قواعد البيانات.

56
00:03:58,410 --> 00:04:01,830
لذلك، يمكنك بسهولة تكوين ذلك.

57
00:04:01,830 --> 00:04:04,620
في هذا المثال، سأقوم بتكوين خادم LoopBack الخاص بي

58
00:04:04,620 --> 00:04:07,810
للتحدث إلى MongoDB الخاص بي في النهاية الخلفية.

59
00:04:07,810 --> 00:04:09,445
لذلك في موجه،

60
00:04:09,445 --> 00:04:11,590
إذا قمنا بكتابة مصدر بيانات L-B،

61
00:04:11,590 --> 00:04:14,610
فإنه سيدفعنا للحصول على معلومات.

62
00:04:14,610 --> 00:04:18,155
لذا فإن أول شيء سيطلبه منا هو اسم مصدر البيانات،

63
00:04:18,155 --> 00:04:24,570
ثم سأقوم بتكوين اسم مصدر البيانات هذا كـ MongoDB،

64
00:04:24,570 --> 00:04:29,315
ثم سيطالبني بتحديد الموصل.

65
00:04:29,315 --> 00:04:36,120
يستخدم LoopBack الموصلات للاتصال بقواعد بيانات مختلفة خلف الكواليس.

66
00:04:36,120 --> 00:04:38,790
لذا كما ترون، فإن DB في الذاكرة وهو الذي

67
00:04:38,790 --> 00:04:41,795
استخدموه للتو في التمرين السابق،

68
00:04:41,795 --> 00:04:45,105
ولكن بالطبع يعني DB في الذاكرة أنه بمجرد إيقاف تشغيل الخادم الخاص بك،

69
00:04:45,105 --> 00:04:47,220
ستختفي جميع القيم،

70
00:04:47,220 --> 00:04:51,080
وبذلك لا يكون تخزين بيانات مستمر.

71
00:04:51,080 --> 00:04:58,440
حتى هنا ترى أنواع مختلفة من قواعد البيانات التي تدعم StronGloop هنا.

72
00:04:58,440 --> 00:05:06,720
حتى تتمكن من رؤية قائمة طويلة من قواعد البيانات المختلفة التي يتم دعمها.

73
00:05:06,720 --> 00:05:09,280
لذلك يمكنك أن ترى أنه يدعم كاساندرا، ريديس،

74
00:05:09,280 --> 00:05:15,360
كنا قد أشرنا لفترة وجيزة إلى هذه عندما تحدثنا عن قواعد بيانات نوسكل، مونغودب

75
00:05:15,360 --> 00:05:18,385
، بلدي سكل، بوستغريز، أوراكل،

76
00:05:18,385 --> 00:05:24,325
وحتى مباشرة إلى خوادم أبي بقية إلى خوادم سواب،

77
00:05:24,325 --> 00:05:26,865
كوتشباس وهلم جرا.

78
00:05:26,865 --> 00:05:29,040
لذا ترى أنه يوفر لنا

79
00:05:29,040 --> 00:05:33,450
قائمة طويلة من أنواع مختلفة من مصادر البيانات من هناك،

80
00:05:33,450 --> 00:05:36,783
يمكن لخادم LoopBack قراءة المعلومات.

81
00:05:36,783 --> 00:05:39,835
في حالتي، سأستخدم خادم MongoDB لذا

82
00:05:39,835 --> 00:05:43,170
سأقوم بإعداد موصل MongoDB.

83
00:05:43,170 --> 00:05:44,660
لذلك عندما أفعل ذلك،

84
00:05:44,660 --> 00:05:50,775
سيقوم LoopBack تلقائيًا بتثبيت موصل MongoDB لنا،

85
00:05:50,775 --> 00:05:54,550
وعندما يطلب عنوان URL لسلسلة الاتصال،

86
00:05:54,550 --> 00:05:57,810
سنترك هذا

87
00:05:57,810 --> 00:06:01,570
الأمر فارغًا لأننا سنسمح له باستخدام الطريقة القياسية للتكوين.

88
00:06:01,570 --> 00:06:04,550
عندما يسأل عن المضيف، سنقول

89
00:06:04,550 --> 00:06:09,815
localhost لأننا نقوم بتشغيل MongoDB على نفس الكمبيوتر.

90
00:06:09,815 --> 00:06:11,260
خلاف ذلك، ستقوم

91
00:06:11,260 --> 00:06:20,080
بتحديد اسم المضيف للكمبيوتر الذي تقوم بتشغيل MongoDB عليه.

92
00:06:20,080 --> 00:06:24,665
ثم الرقم التالي هو رقم المنفذ

93
00:06:24,665 --> 00:06:29,186
ونحن نستخدم رقم منفذ MongoDB القياسي 27017،

94
00:06:29,186 --> 00:06:32,770
وسيطلب أيضًا اسم المستخدم وكلمة المرور إذا لزم الأمر،

95
00:06:32,770 --> 00:06:36,850
والآن يعمل MongoDB دون الحاجة إلى

96
00:06:36,850 --> 00:06:38,575
القيام بأي مصادقة لذلك أترك اسم المستخدم وكلمة المرور فارغين، اسم قاعدة البيانات.

97
00:06:38,575 --> 00:06:44,490
اسم قاعدة البيانات على خادم MongoDB الذي يعمل خلف الكواليس،

98
00:06:44,490 --> 00:06:47,390
اسم قاعدة البيانات هناك الارتباك.

99
00:06:47,390 --> 00:06:52,040
إذا كنت تتذكر أن هذا هو اسم قاعدة البيانات التي قاموا بإعدادها على خادم MongoDB الخاص بنا.

100
00:06:52,040 --> 00:06:56,900
وبعد ذلك سوف يسألنا ما إذا كان يجب تثبيت موصل LoopBack،

101
00:06:56,900 --> 00:06:58,750
وسأقول نعم، وسوف

102
00:06:58,750 --> 00:07:02,410
تذهب في الواقع إلى الأمام وتثبيت وحدة NPM التي تصل إلى

103
00:07:02,410 --> 00:07:07,715
موصل LoopBack إلى قاعدة بيانات MongoDB.

104
00:07:07,715 --> 00:07:09,415
وبمجرد الانتهاء من ذلك، يتم

105
00:07:09,415 --> 00:07:14,630
تثبيت موصل الاسترجاع الخاص بي هنا حتى تتمكن من رؤية أن هذا هو الإصدار 1.18.1

106
00:07:14,630 --> 00:07:19,910
وخادم LoopBack الخاص بي جاهز للتحدث إلى MongoDB الخاص بي.

107
00:07:19,910 --> 00:07:22,615
الآن قبل المضي قدما،

108
00:07:22,615 --> 00:07:26,090
في التمرين السابق أنا لا حقا تكوين بعض النماذج

109
00:07:26,090 --> 00:07:30,115
ومن ثم أنا تحديدها ليتم تخزينها في دب،

110
00:07:30,115 --> 00:07:35,295
وسوف تحتاج إلى الذهاب وتحديثها لتخزين بياناتهم في بلدي مونغودب.

111
00:07:35,295 --> 00:07:41,610
لذلك، دعونا نذهب ونعيد بسرعة رمز لدينا لخادم LoopBack.

112
00:07:41,610 --> 00:07:44,770
يوفر لنا هذا أيضًا فرصة للنظر في

113
00:07:44,770 --> 00:07:49,030
ما قام به خادم Looback نفسه بتكوينه في هذا المجلد.

114
00:07:49,030 --> 00:07:54,730
فتح مجلد LoopBack في محررنا،

115
00:07:54,730 --> 00:07:58,200
يمكنك أن ترى أن Loopback قد

116
00:07:58,200 --> 00:08:02,000
سقفت بالفعل مجموعة كاملة من الملفات في هذا المجلد.

117
00:08:02,000 --> 00:08:04,080
يحتوي package.json بالطبع على

118
00:08:04,080 --> 00:08:10,275
جميع وحدات NPM ذات الصلة التي تم تكوينها هنا،

119
00:08:10,275 --> 00:08:17,901
وهنا يمكنك أن ترى أن LoopBack نفسه قد قام بتكوين وحدة LoopBack NPM،

120
00:08:17,901 --> 00:08:20,970
وحدة التمهيد LoopBack

121
00:08:20,970 --> 00:08:24,840
وعلى وجه الخصوص اسمحوا لي أن ألفت انتباهكم إلى LoopBack MongoDB موصل,

122
00:08:24,840 --> 00:08:32,055
أن كنا قد ركبت للتو منذ فترة قصيرة, وغيرها الكثير.

123
00:08:32,055 --> 00:08:36,150
على وجه الخصوص، يتم

124
00:08:36,150 --> 00:08:40,075
تخزين التكوين الخاص بخادم Loopback في الغالب في ملفات Json هنا،

125
00:08:40,075 --> 00:08:44,970
مع javascriptcore إضافية كلما لزم الأمر.

126
00:08:44,970 --> 00:08:50,670
سنبحث عن تخصيص شفرة جافا سكريبت بعد ذلك بقليل.

127
00:08:50,670 --> 00:08:53,875
اسمحوا لي أن ألفت انتباهكم إلى هذا المجلد يسمى المشترك.

128
00:08:53,875 --> 00:08:55,850
في هذا المجلد المشترك،

129
00:08:55,850 --> 00:09:01,725
سترى جميع النماذج التي قمنا بتكوينها في وقت سابق.

130
00:09:01,725 --> 00:09:04,860
لذلك سترى أن لدينا ملفات الصحون.json.

131
00:09:04,860 --> 00:09:09,210
لذلك عند فتح ملف dishes.json، ترى كيف يقوم LooPack

132
00:09:09,210 --> 00:09:14,695
بتخزين جميع المعلومات حول طراز الأطباق الذي قمت بإنشائه للتو،

133
00:09:14,695 --> 00:09:17,790
لذلك يحتوي على الاسم

134
00:09:17,790 --> 00:09:21,655
والقاعدة وبعض القيم الأخرى هنا التي يتطلبها.

135
00:09:21,655 --> 00:09:27,369
ثم انظر إلى الخصائص وكيف يتم تخزين جميع الخصائص هنا.

136
00:09:27,369 --> 00:09:30,735
لذلك ترى بعض الأشياء التي من السهل جدا بالنسبة لك

137
00:09:30,735 --> 00:09:34,790
للتعرف على أنها في ملف dishes.json.

138
00:09:34,790 --> 00:09:39,040
وبالمثل، فإن القادة. json والترويجs.json.

139
00:09:39,040 --> 00:09:42,171
ملف dishes.js كبير،

140
00:09:42,171 --> 00:09:46,007
يمكننا إضافة في بعض التعليمات البرمجية التخصيص إضافية للأطباق،

141
00:09:46,007 --> 00:09:48,050
ولكن الآن نحن لن نفعل ذلك،

142
00:09:48,050 --> 00:09:50,755
ولذا فإننا سوف مجرد ترك الأمر كما هو.

143
00:09:50,755 --> 00:09:56,130
لذلك هذا هو المكان الذي يمكنك إضافة في بعض التعليمات البرمجية الإضافية التي قد

144
00:09:56,130 --> 00:10:02,610
تحتاج إلى تنفيذها عند الوصول إلى نقطة نهاية أطباق الشرطة المائلة.

145
00:10:02,610 --> 00:10:07,630
لكن الآن سنتركه فارغاً في الوقت الحالي

146
00:10:07,630 --> 00:10:11,725
الآن دعونا ننظر أيضا في مجلد الخادم هنا.

147
00:10:11,725 --> 00:10:13,465
ومجلد الخادم، على

148
00:10:13,465 --> 00:10:18,745
وجه الخصوص اسمحوا لي أن ألفت انتباهكم إلى ملف datasources.json هنا.

149
00:10:18,745 --> 00:10:20,996
في ملف sources.json البيانات،

150
00:10:20,996 --> 00:10:23,740
سيتم تكوين جميع مصادر البيانات المختلفة هنا.

151
00:10:23,740 --> 00:10:26,470
حتى الآن، لدينا فقط دب الذي هو

152
00:10:26,470 --> 00:10:31,634
قاعدة بيانات دب في الذاكرة أن لوباك افتراضيا تكوين،

153
00:10:31,634 --> 00:10:34,045
ومن ثم مونغودب الذي قمنا للتو بتكوينه،

154
00:10:34,045 --> 00:10:36,700
استوعبت فقط المعلومات التي

155
00:10:36,700 --> 00:10:40,570
تم تخزين المدخلات في تلك البيانات، ملف جسون.

156
00:10:40,570 --> 00:10:46,880
لذا، سترى أن Loopback نفسه يعمل عن طريق تكوين كل هذه الملفات

157
00:10:46,880 --> 00:10:50,493
التي يستخدمها إطار Loopback نفسه عند

158
00:10:50,493 --> 00:10:56,332
بدء تشغيل خادم واجهة برمجة التطبيقات الباقية المستندة إلى Loopback.

159
00:10:56,332 --> 00:11:00,620
دعونا نذهب إلى ملف config.json نموذج هنا.

160
00:11:00,620 --> 00:11:03,050
يقوم ملف config.json النموذجي نفسه

161
00:11:03,050 --> 00:11:09,028
بتخزين الكثير من المعلومات هنا المفيدة لنا

162
00:11:09,028 --> 00:11:13,810
، ولكن هنا، دعنا نذهب وتعديل بعض الأشياء.

163
00:11:13,810 --> 00:11:20,500
لذا في هذا، سنرى أن هناك مرة أخرى للأطباق،

164
00:11:20,500 --> 00:11:24,965
الترقيات والقادة، تم تكوين مصدر البيانات كـ DB.

165
00:11:24,965 --> 00:11:32,150
لذلك سنقوم بتعديل ذلك إلى MongoDB هنا.

166
00:11:32,150 --> 00:11:34,700
ليس فقط لهذا واحد،

167
00:11:34,700 --> 00:11:39,053
فإنها أيضا تغيير ذلك للترقيات، وأيضا القادة،

168
00:11:39,053 --> 00:11:45,590
وهذا يعني، أن كل هؤلاء الثلاثة سوف تستمد بياناتهم من MongoDB.

169
00:11:45,590 --> 00:11:48,720
أيضا، للدور الذي تم تعريفه هنا.

170
00:11:48,720 --> 00:11:50,170
سنقوم أيضا بتخزين في MongoDB.

171
00:11:50,170 --> 00:11:53,635
سنرى قريبًا كيف سنستفيد من الدور،

172
00:11:53,635 --> 00:11:56,290
وكذلك RoleMapping هنا.

173
00:11:56,290 --> 00:12:00,675
سوف نفهم سبب هذين في فترة قصيرة.

174
00:12:00,675 --> 00:12:04,030
وبعد ذلك، ACL، قوائم التحكم في الوصول،

175
00:12:04,030 --> 00:12:07,740
سيتم أيضًا تخزين هذه في MongoDB.

176
00:12:07,740 --> 00:12:10,210
وبعد ذلك، المستخدم، أيضا،

177
00:12:10,210 --> 00:12:12,105
سنقوم بتخزينها في MongoDB،

178
00:12:12,105 --> 00:12:13,848
وبعد ذلك سوف يتركها هناك.

179
00:12:13,848 --> 00:12:17,175
لذا، هذه هي التعديلات التي يجب عليك القيام بها

180
00:12:17,175 --> 00:12:23,744
على ملف model-config.json ثم حفظ التغييرات.

181
00:12:23,744 --> 00:12:27,239
كما ذكرت سابقا، الاسترجاع افتراضيا،

182
00:12:27,239 --> 00:12:29,705
ويدعم هذا النموذج يسمى، المستخدم،

183
00:12:29,705 --> 00:12:33,215
والذي يستخدم لدعم مصادقة المستخدم.

184
00:12:33,215 --> 00:12:36,890
نموذج المستخدم نفسه يخزن ثلاثة خصائص مختلفة فقط.

185
00:12:36,890 --> 00:12:40,100
اسم المستخدم وعنوان البريد الإلكتروني

186
00:12:40,100 --> 00:12:42,890
والمعلومات المتعلقة بكلمة المرور.

187
00:12:42,890 --> 00:12:44,060
الآن، إذا كانوا يريدون الحصول

188
00:12:44,060 --> 00:12:49,125
على طريقة أكثر تفصيلاً لتخزين معلومات إضافية حول المستخدمين.

189
00:12:49,125 --> 00:12:54,200
ثم يمكنهم تصنيف نموذج قاعدة المستخدم هذا،

190
00:12:54,200 --> 00:12:56,180
ومن ثم الاستفادة من ذلك.

191
00:12:56,180 --> 00:12:57,950
لذا، في هذه الخطوة التالية،

192
00:12:57,950 --> 00:13:01,880
سأقوم بإنشاء نموذج آخر يسمى، نموذج العميل،

193
00:13:01,880 --> 00:13:08,490
والذي سيستخدم المستخدم كنموذج أساسي لعمله.

194
00:13:08,490 --> 00:13:13,005
وسيقوم نموذج العميل نفسه بتخزين معلومات إضافية حول المستخدمين.

195
00:13:13,005 --> 00:13:14,255
لذلك، في نموذج العميل،

196
00:13:14,255 --> 00:13:16,820
وسوف تخزين أشياء مثل الاسم الأول،

197
00:13:16,820 --> 00:13:20,900
والاسم الأخير، والصورة للمستخدم وهلم جرا.

198
00:13:20,900 --> 00:13:24,035
لذا، سيتصرف العميل تمامًا مثل نموذج المستخدم،

199
00:13:24,035 --> 00:13:29,889
والذي يأتي بالفعل مع مجموعته الخاصة من الطرق.

200
00:13:29,889 --> 00:13:32,780
وهكذا يتم استخدام نموذج المستخدم لمصادقة المستخدم،

201
00:13:32,780 --> 00:13:34,700
حتى تتمكن من كتابة اسم المستخدم وكلمة المرور،

202
00:13:34,700 --> 00:13:35,930
وتسجيل الدخول وتسجيل الخروج.

203
00:13:35,930 --> 00:13:41,850
لذلك، عندما أنشأنا نموذج العميل هذا استنادًا إلى الفئة الأساسية لنموذج المستخدم،

204
00:13:41,850 --> 00:13:44,742
سيقوم نموذج العميل أيضًا بدعم

205
00:13:44,742 --> 00:13:47,680
عمليات تسجيل الدخول وتسجيل الخروج باستخدام نموذج العميل هذا.

206
00:13:47,680 --> 00:13:51,880
لذلك، يمكننا تسجيل الدخول إلى المستخدم وتسجيل الخروج من المستخدم وهلم جرا.

207
00:13:51,880 --> 00:13:56,520
لذا، تأتي مصادقة المستخدم تلقائيًا إلى اليمين.

208
00:13:56,520 --> 00:13:59,750
لذلك، لإنشاء نموذج العميل، في المطالبة،

209
00:13:59,750 --> 00:14:03,340
اكتب نموذج lb واسم الطراز،

210
00:14:03,340 --> 00:14:06,440
سنقوم بكتابة العميل.

211
00:14:06,440 --> 00:14:10,700
و DataSource، سأختار أنه MongoDB.

212
00:14:10,700 --> 00:14:15,080
ثم عندما يطلب تحديد الفئة الأساسية للنموذج،

213
00:14:15,080 --> 00:14:17,435
بدلاً من استخدام PersistedModel،

214
00:14:17,435 --> 00:14:18,875
سنتحرك لأسفل،

215
00:14:18,875 --> 00:14:23,570
ثم حدد المستخدم كفئة أساسية.

216
00:14:23,570 --> 00:14:27,215
لذا، بهذه الطريقة، سوف تستمد جميع خصائصها

217
00:14:27,215 --> 00:14:31,275
لفئة المستخدم الأساسية المضمنة بالفعل في Loopback.

218
00:14:31,275 --> 00:14:35,370
ثم سنقوم بفضح هذا مع واجهة برمجة تطبيقات REST،

219
00:14:35,370 --> 00:14:39,353
و MT الجمع المخصص.

220
00:14:39,353 --> 00:14:42,765
ثم سيكون هذا في المجلد المشترك.

221
00:14:42,765 --> 00:14:49,081
ولهذا، فإن الخصائص الثلاثة التي سنضيفها هي،

222
00:14:49,081 --> 00:14:54,900
الاسم الأول، الذي سيكون لدينا سلسلة الأنواع.

223
00:14:54,900 --> 00:14:58,700
وهذا غير مطلوب أو لا يحتوي على قيمة افتراضية.

224
00:14:58,700 --> 00:15:05,895
ثم، اسم العائلة مرة أخرى كسلسلة النوع،

225
00:15:05,895 --> 00:15:08,825
غير مطلوب، ولا قيمة افتراضية.

226
00:15:08,825 --> 00:15:11,860
ثم صورة لسلسلة النوع،

227
00:15:11,860 --> 00:15:15,249
غير مطلوبة ولا قيمة افتراضية.

228
00:15:15,249 --> 00:15:18,095
لذلك، ترى أن فئة العميل نفسها

229
00:15:18,095 --> 00:15:22,546
تحمل خصائص إضافية بالإضافة إلى فئة المستخدم.

230
00:15:22,546 --> 00:15:25,006
فئة المستخدم يدعم بالفعل اسم المستخدم

231
00:15:25,006 --> 00:15:28,465
والبريد الإلكتروني ومعلومات كلمة المرور ذات الصلة هناك.

232
00:15:28,465 --> 00:15:30,185
لذا، فإن فئة العميل،

233
00:15:30,185 --> 00:15:32,030
نظرًا لأن الفئة الفرعية هي الفئة الأساسية،

234
00:15:32,030 --> 00:15:38,405
فسوف نحصل على اسم المستخدم والبريد الإلكتروني تلقائيًا من فئة المستخدم.

235
00:15:38,405 --> 00:15:41,870
والآن، عندما تذهب إلى ملف model-config.jason،

236
00:15:41,870 --> 00:15:46,725
سترى أن نموذج العميل قد تمت إضافته بالفعل هناك.

237
00:15:46,725 --> 00:15:48,390
ثم في النماذج الشائعة،

238
00:15:48,390 --> 00:15:51,278
سترى الآن ملف customer.json المضافة هناك

239
00:15:51,278 --> 00:15:55,365
مع هذه الخصائص الإضافية الثلاثة التي أضفناها إلى نموذج العميل.

240
00:15:55,365 --> 00:16:02,020
ولكن لاحظ، أنه يحدد القاعدة كفئة المستخدم لنموذج العميل هنا.

241
00:16:02,020 --> 00:16:04,760
لذا، هذه هي الطريقة التي يسمح لك بها

242
00:16:04,760 --> 00:16:09,832
Looback بأخذ فئة نموذج أساسي ثم فئة فرعية في فئة النموذج.

243
00:16:09,832 --> 00:16:16,340
لذلك، سترى كيف تمكننا Looback من دعم مصادقة المستخدم تلقائيًا باستخدام

244
00:16:16,340 --> 00:16:23,855
فئة المستخدم ثم يسمح لنا بتحديد فئة فرعية إضافية لذلك،

245
00:16:23,855 --> 00:16:29,780
والتي ستخزن معلومات إضافية تتعلق بفئة قاعدة المستخدم.

246
00:16:29,780 --> 00:16:32,660
بعد ذلك، سنقوم بإعداد التحكم

247
00:16:32,660 --> 00:16:38,210
في الوصول للنماذج المختلفة التي قمنا بإعدادها بالفعل في خادم Looback الخاص بنا.

248
00:16:38,210 --> 00:16:40,190
لذلك، لإعداد التحكم في الوصول،

249
00:16:40,190 --> 00:16:45,170
أو قوائم التحكم بالوصول في Lookback.

250
00:16:45,170 --> 00:16:49,730
يستخدم Looback قوائم التحكم بالوصول هذه كطريقة لتحديد نوع

251
00:16:49,730 --> 00:16:51,290
العمليات التي يمكن تنفيذها على

252
00:16:51,290 --> 00:16:55,280
نقاط النهاية REST API المختلفة التي تتوافق مع النماذج المختلفة.

253
00:16:55,280 --> 00:16:58,695
لذلك، للقيام بذلك، سنقوم كتابة في موجه lb acl،

254
00:16:58,695 --> 00:17:01,880
ACL لتقف على قوائم التحكم في الوصول.

255
00:17:01,880 --> 00:17:06,980
وبعد ذلك، عندما ينفد هذا، سنقول،

256
00:17:06,980 --> 00:17:11,960
النموذج الذي نريد أن يتم تطبيق قائمة التحكم بالوصول هذه.

257
00:17:11,960 --> 00:17:14,678
وبعد ذلك سنقول، كل النماذج الموجودة.

258
00:17:14,678 --> 00:17:18,845
وسنقول، كل المقاييس والخصائص.

259
00:17:18,845 --> 00:17:20,810
وسنقول،

260
00:17:20,810 --> 00:17:23,233
كل أنواع العمليات.

261
00:17:23,233 --> 00:17:25,910
وبعد ذلك، سنقول، جميع المستخدمين.

262
00:17:25,910 --> 00:17:28,730
وبعد ذلك سنقول، رفض الوصول بشكل صريح.

263
00:17:28,730 --> 00:17:32,976
لذلك، نحن أولا إغلاق جميع النماذج لكل شيء،

264
00:17:32,976 --> 00:17:34,670
ثم سنقوم بفتح ببطء،

265
00:17:34,670 --> 00:17:38,270
مهما كانت العمليات التي يمكن أن يؤديها مختلف المستخدمين.

266
00:17:38,270 --> 00:17:40,385
لذلك، الخطوة الأولى، قمنا بإغلاق

267
00:17:40,385 --> 00:17:45,715
جميع أنواع العمليات على جميع النماذج التي لدينا حاليا.

268
00:17:45,715 --> 00:17:51,740
ثم، سنبدأ ببطء فتح كل من العمليات، خطوة بخطوة.

269
00:17:51,740 --> 00:17:53,300
الآن، الخطوة التالية،

270
00:17:53,300 --> 00:17:59,960
ما سنفعله هو إعداد قائمة التحكم بالوصول التالية مرة أخرى.

271
00:17:59,960 --> 00:18:02,525
في قائمة التحكم في الوصول الثانية، سنقول،

272
00:18:02,525 --> 00:18:06,095
لجميع النماذج الموجودة وسنقول،

273
00:18:06,095 --> 00:18:08,930
جميع المقاييس والخصائص.

274
00:18:08,930 --> 00:18:13,400
وبعد ذلك، سوف نقول، فقط قراءة الوصول.

275
00:18:13,400 --> 00:18:18,416
بمعنى، عندما يمكن للمستخدم تنفيذ عمليات GET على هذه المنافذ النهائية.

276
00:18:18,416 --> 00:18:24,680
ويمكن إجراء عمليات GET هذه من قبل جميع المستخدمين.

277
00:18:24,680 --> 00:18:27,805
لذلك، يمكن للمستخدمين استرداد المعلومات.

278
00:18:27,805 --> 00:18:31,605
ونحن سوف نمنح صراحة الوصول لهذا.

279
00:18:31,605 --> 00:18:35,804
لذلك، مما يعني أن عمليات GET مسموح بها على عقدة نقاط نهاية API REST.

280
00:18:35,804 --> 00:18:37,610
أولا، أغلقنا كل شيء،

281
00:18:37,610 --> 00:18:40,880
ثم فتحنا فقط عمليات جيت للمستخدمين.

282
00:18:40,880 --> 00:18:46,175
الآن، وأخيرا، سوف يذهبون إلى كل واحد من النماذج،

283
00:18:46,175 --> 00:18:49,490
ومن ثم إغلاق والسماح لعمليات معينة فقط

284
00:18:49,490 --> 00:18:53,068
ليتم تنفيذها من قبل أنواع معينة من المستخدمين.

285
00:18:53,068 --> 00:18:54,625
لذا، للقيام بذلك،

286
00:18:54,625 --> 00:19:00,511
فإن قائمة ACL التالية التي سنقوم بإعدادها هي لنموذج معين.

287
00:19:00,511 --> 00:19:03,197
لذلك، سنقوم بإعداد هذا واحد للأطباق.

288
00:19:03,197 --> 00:19:06,445
وسنقول، طريقة واحدة.

289
00:19:06,445 --> 00:19:08,685
ثم اسم الأسلوب هو، إنشاء.

290
00:19:08,685 --> 00:19:13,320
لذلك، وهذا يعني أن إنشاء هذه لن يسمح إلا من قبل.

291
00:19:13,320 --> 00:19:15,850
لذلك، مرة أخرى، عندما يقول حدد الدور،

292
00:19:15,850 --> 00:19:18,260
ثم للدور، سنقول، أخرى.

293
00:19:18,260 --> 00:19:20,530
ثم سيكون اسم الدور المشرف.

294
00:19:20,530 --> 00:19:24,663
لذلك، ما نقوم به من خلال هذه العملية هو أنه،

295
00:19:24,663 --> 00:19:32,755
ونحن نقول أن المستخدم المشرف فقط يمكن إنشاء أطباق جديدة أو تحديث الأطباق الموجودة.

296
00:19:32,755 --> 00:19:38,535
لذلك، هذا هو قريب قليلا قبالة، والعمليات المتبقية.

297
00:19:38,535 --> 00:19:45,669
لذلك، دعونا نفعل نفس الشيء للقادة.

298
00:19:45,669 --> 00:19:48,880
وهناك طريقة واحدة وبعد ذلك،

299
00:19:48,880 --> 00:19:53,821
وخلق وسوف نقول،

300
00:19:53,821 --> 00:19:58,320
فقط المشرف يمكن القيام بذلك.

301
00:19:58,320 --> 00:20:04,330
ثم أخيرا، أيضا للترقيات.

302
00:20:04,330 --> 00:20:05,919
للترقيات

303
00:20:05,919 --> 00:20:10,210
طريقة واحدة، سيتم السماح طريقة إنشاء

304
00:20:10,210 --> 00:20:15,415
فقط من قبل المستخدمين الذين لديهم دور معين كمسؤول.

305
00:20:15,415 --> 00:20:20,340
سنرى كيف سننشئ مستخدمين لهم دور محدد في الخطوة التالية.

306
00:20:20,340 --> 00:20:22,398
منح حق الوصول بشكل صريح.

307
00:20:22,398 --> 00:20:26,995
الآن لاحظ أنني لم أغلق العملاء لإنشاء العمليات.

308
00:20:26,995 --> 00:20:28,305
إذا أغلقت العملاء،

309
00:20:28,305 --> 00:20:31,383
لن يتمكن أحد من التسجيل في النظام.

310
00:20:31,383 --> 00:20:33,220
لذلك، لهذا السبب سأترك هذا مفتوحا.

311
00:20:33,220 --> 00:20:37,170
لأنه، يجب أن يكون العميل قادرا على التسجيل في النظام.

312
00:20:37,170 --> 00:20:41,364
لذلك، يمكنك الاشتراك في حسابات جديدة على النظام.

313
00:20:41,364 --> 00:20:42,420
حسابات المستخدمين على النظام.

314
00:20:42,420 --> 00:20:45,585
لذلك، سيتم ترك ذلك مفتوحا للناس للقيام به.

315
00:20:45,585 --> 00:20:50,800
لذلك, للسماح للعملاء, سنقول, العملاء,

316
00:20:50,800 --> 00:20:59,880
طريقة واحدة, إنشاء جميع المستخدمين.

317
00:20:59,880 --> 00:21:03,450
لذلك، يمكن إنشاء العملاء من قبل جميع المستخدمين لأن ذلك

318
00:21:03,450 --> 00:21:07,125
سيسمح للأشخاص بتسجيل الدخول إلى حسابهم.

319
00:21:07,125 --> 00:21:11,820
وأخيرًا، سنرى كيف يمكننا تكوين خادمنا للبدء باستخدام

320
00:21:11,820 --> 00:21:17,590
مستخدم مسؤول واحد يتم تكوينه تلقائيًا في خادم Loopback الخاص بنا.

321
00:21:17,590 --> 00:21:19,300
لذلك، للقيام بذلك،

322
00:21:19,300 --> 00:21:20,820
في خادم الاسترجاع لدينا،

323
00:21:20,820 --> 00:21:25,015
في مجلد الخادم لدينا هذا المجلد الفرعي التمهيد هنا.

324
00:21:25,015 --> 00:21:28,380
مهما كان الرمز الذي وضعناه في المجلد الفرعي التمهيد،

325
00:21:28,380 --> 00:21:33,385
سيتم تنفيذه عند بدء تشغيل خادم LoopBack الخاص بنا.

326
00:21:33,385 --> 00:21:37,253
لذلك، هنا، سترى أن لدينا بالفعل هذا authentication.js،

327
00:21:37,253 --> 00:21:38,490
الذي تم إعداده بالفعل

328
00:21:38,490 --> 00:21:42,255
، استرجاع الذي سيتم إعداد مصادقة المستخدم بالنسبة لنا.

329
00:21:42,255 --> 00:21:44,790
ثم لدينا root.js الذي سيتم إعداد

330
00:21:44,790 --> 00:21:49,650
بعض المعلومات الإضافية لخادم الاسترجاع ذاكرة الوصول العشوائي لدينا.

331
00:21:49,650 --> 00:21:52,920
ويمكننا إضافة ملفات إضافية هنا.

332
00:21:52,920 --> 00:21:55,696
لذلك، أنا ذاهب للذهاب إلى هناك في مجلد التمهيد،

333
00:21:55,696 --> 00:22:01,111
ومن ثم إضافة في هذا الملف يسمى، script.js.

334
00:22:01,111 --> 00:22:03,259
وفي هذا script.js،

335
00:22:03,259 --> 00:22:07,610
سأقوم بإعداد التعليمات البرمجية لإنشاء مستخدم مشرف بشكل افتراضي.

336
00:22:07,610 --> 00:22:08,785
لذلك، في script.js،

337
00:22:08,785 --> 00:22:12,335
والتي لن تكون سوى وحدة الآلية الوقائية الوطنية القائمة على الملف لذلك،

338
00:22:12,335 --> 00:22:13,995
سنبدأ بالقول،

339
00:22:13,995 --> 00:22:21,050
module.exports = وظيفة (التطبيق).

340
00:22:21,050 --> 00:22:23,355
التطبيق هو تطبيق Looback،

341
00:22:23,355 --> 00:22:28,185
والذي سيتم توفيره كمعلمة لهذه الوظيفة بالنسبة لنا.

342
00:22:28,185 --> 00:22:32,072
وهكذا، يمكننا الاستفادة منه داخل شفرتنا هنا.

343
00:22:32,072 --> 00:22:39,585
لذلك، هنا، سنقوم أولا بإعداد مستخدم المشرف.

344
00:22:39,585 --> 00:22:41,003
لذلك، للقيام بذلك، سنقول،

345
00:22:41,003 --> 00:22:51,840
فار العميل = app.Models.Customer.

346
00:22:51,840 --> 00:22:56,580
لذلك، وهذا يتيح لنا الوصول إلى نموذج العميل.

347
00:22:56,580 --> 00:23:03,321
ثم سنقول يا زبائن.فيندون

348
00:23:03,321 --> 00:23:08,820
لذلك، سنقوم أولا التحقق لمعرفة ما إذا كان المستخدم مع

349
00:23:08,820 --> 00:23:16,920
اسم المستخدم كمسؤول قد تم تكوينه بالفعل في النظام أم لا.

350
00:23:16,920 --> 00:23:20,585
إذا لم يكن كذلك، ثم أنا ذاهب لإنشاء مستخدم المشرف.

351
00:23:20,585 --> 00:23:30,230
وهذا يزودني بوظيفة رد اتصال مع معلمتين، خطأ والمستخدمين.

352
00:23:30,230 --> 00:23:34,470
وداخل هذا- لذلك سنحاول أولا

353
00:23:34,470 --> 00:23:39,195
معرفة ما إذا كان المستخدم مع اسم المشرف موجود بالفعل.

354
00:23:39,195 --> 00:23:40,800
إذا كان المستخدم غير موجود،

355
00:23:40,800 --> 00:23:42,453
ثم سنقوم بإنشاء المستخدم.

356
00:23:42,453 --> 00:23:43,800
لذلك، لإنشاء المستخدم،

357
00:23:43,800 --> 00:23:49,326
سنقول هنا، إن لم يكن المستخدمين.

358
00:23:49,326 --> 00:23:55,830
لذلك، إذا لم يكن المستخدمون فارغًا أو إذا كان المستخدم يقول null،

359
00:23:55,830 --> 00:24:02,305
فهذا يعني أنه لا يوجد مستخدم مشرف لذلك أحتاج إلى إنشاء مستخدم مشرف هنا.

360
00:24:02,305 --> 00:24:09,330
حتى في هذه الحالة، سنقول، customer.create.

361
00:24:09,330 --> 00:24:19,835
وهذا الإنشاء يأخذ مجموعة من الكائنات إذا كنت تريد ذلك.

362
00:24:19,835 --> 00:24:30,235
وستسمح لنا هذه المجموعة من الكائنات بتحديد حسابات المستخدمين التي نريد إنشاءها.

363
00:24:30,235 --> 00:24:33,575
لذا فإن حساب المستخدم الأول الذي أريد إنشائه أو

364
00:24:33,575 --> 00:24:38,678
حساب المستخدم الوحيد الذي أريد إنشائه هو «المسؤول».

365
00:24:38,678 --> 00:24:41,845
لذلك سيكون هذا هو المسؤول الافتراضي

366
00:24:41,845 --> 00:24:47,447
لخادم الاسترجاع الخاص بي ومن ثم يمكنني تكوين البريد الإلكتروني.

367
00:24:47,447 --> 00:24:56,850
لذلك تذكر أن نموذج المستخدم يدعم هذه الخصائص،

368
00:24:56,850 --> 00:25:02,380
confusion.net ثم كلمة المرور

369
00:25:02,380 --> 00:25:07,253
سأقوم بتكوين كلمة مرور.

370
00:25:07,253 --> 00:25:09,790
يمكنك أيضا توفير جنبا إلى جنب مع هذا،

371
00:25:09,790 --> 00:25:11,560
الاسم الأول واسم العائلة،

372
00:25:11,560 --> 00:25:14,345
إذا كنت تريد، لمستخدم المشرف.

373
00:25:14,345 --> 00:25:16,975
ولكن أنا ذاهب إلى ترك الأمر على هذا

374
00:25:16,975 --> 00:25:20,640
النحو، فارغة لأن تلك ليست مطلوبة للمستخدم المشرف.

375
00:25:20,640 --> 00:25:22,270
لذا سأتركه هناك

376
00:25:22,270 --> 00:25:28,765
لذلك سينتهي هذا الأمر بإنشاء عميل جديد باسم «المسؤول».

377
00:25:28,765 --> 00:25:34,480
حتى إذا كان هذا المستخدم أو اسم «المسؤول» غير موجود،

378
00:25:34,480 --> 00:25:36,194
ثم سنقوم بإنشاء واحد.

379
00:25:36,194 --> 00:25:43,800
ثم هنا لدينا وظيفة رد الاتصال.

380
00:25:45,150 --> 00:25:54,240
إذا المستخدمين يخطئون.

381
00:25:54,240 --> 00:25:57,965
الآن سأقول،

382
00:25:57,965 --> 00:26:06,850
إذا أخطأت، نحن لا نعرف ما تحاول القيام به لذلك سنقوم ببساطة رمي الخطأ.

383
00:26:06,850 --> 00:26:12,210
لكن عادة لن نتوقع حدوث هذا

384
00:26:12,210 --> 00:26:17,650
حتى الآن، كيف يمكنك تعيين هذا المستخدم كمستخدم إداري؟

385
00:26:17,650 --> 00:26:19,290
حتى الآن عندما أقوم بالتسجيل هنا،

386
00:26:19,290 --> 00:26:21,305
أنا مجرد تسجيل مستخدم عادي هنا،

387
00:26:21,305 --> 00:26:24,270
ولكن نريد أن نعطي دورا خاصا لهذا المستخدم.

388
00:26:24,270 --> 00:26:30,775
وهذا هو المكان الذي يدعم الاسترجاع طريقة لتحديد الأدوار للمستخدمين.

389
00:26:30,775 --> 00:26:32,775
لذلك لتحديد دور،

390
00:26:32,775 --> 00:26:39,609
سنقوم فار دور = app.Models.role.

391
00:26:39,609 --> 00:26:42,490
لذلك هذا سوف يسمح لي لخلق دور،

392
00:26:42,490 --> 00:26:44,670
دور جديد دعوة المشرف هنا.

393
00:26:44,670 --> 00:26:48,600
حتى نتمكن من تعيين طائرات بدون طيار مختلفة لمستخدمين مختلفين إذا كنت تريد.

394
00:26:48,600 --> 00:26:50,365
وإلى جانب هذا،

395
00:26:50,365 --> 00:26:55,394
أنا أيضا بحاجة إلى إنشاء رولمابابينغ هنا.

396
00:26:55,394 --> 00:27:05,519
لذلك سنقول، App.Models.Rolemaping.

397
00:27:05,519 --> 00:27:12,045
وإذا حدث ذلك أن قاعدة البيانات تحتوي بالفعل على

398
00:27:12,045 --> 00:27:18,821
أي رولمابينج موجود بالفعل،

399
00:27:18,821 --> 00:27:25,290
ثم أنا ذاهب لتدمير كل تلك عندما أبدأ الخادم الخاص بي.

400
00:27:25,290 --> 00:27:35,650
ثم اسمحوا لي أن أحاول العثور

401
00:27:36,120 --> 00:27:40,550
على معرفة ما إذا كان هناك دور مع

402
00:27:40,550 --> 00:27:46,130
هذا الاسم المشرف

403
00:27:46,130 --> 00:27:53,180
موجود بالفعل في النظام.

404
00:27:53,180 --> 00:27:54,885
حسناً

405
00:27:54,885 --> 00:27:56,420
وفي هذا يأخذ،

406
00:27:56,420 --> 00:27:57,560
كما تتوقع،

407
00:27:57,560 --> 00:28:06,795
وظيفة رد الاتصال وداخل هنا سنقول، دور. Findone.

408
00:28:06,795 --> 00:28:10,530
حتى إذا كان هناك دور مع اسم المشرف موجود بالفعل،

409
00:28:10,530 --> 00:28:11,927
ثم أنا لست بحاجة إلى إنشاء واحد.

410
00:28:11,927 --> 00:28:18,710
خلاف ذلك، إذا لم يكن ذلك موجودًا،

411
00:28:18,710 --> 00:28:20,427
فأنا بحاجة إلى إنشاء الدور.

412
00:28:20,427 --> 00:28:29,540
لذلك سوف نقول، دور. خلق.

413
00:28:29,540 --> 00:28:34,950
لذلك سنقوم بإنشاء دور المشرف هنا.

414
00:28:34,950 --> 00:28:45,230
ثم هذا يأخذنا إلى المعلمات خطأ،

415
00:28:45,230 --> 00:28:52,523
دور هنا، في وظيفة رد الاتصال.

416
00:28:52,523 --> 00:28:56,215
الآن مرة أخرى، هنا للتعامل مع الخطأ،

417
00:28:56,215 --> 00:29:03,749
سنقوم فقط بنسخ هذا «إذا خطأ» ثم لصقه هناك.

418
00:29:03,749 --> 00:29:06,685
وبالمثل هنا أيضًا، إذا حدث الخطأ،

419
00:29:06,685 --> 00:29:09,415
فأنا بحاجة إلى التعامل مع ذلك.

420
00:29:09,415 --> 00:29:12,820
لذلك «إذا كان خطأ» ثم «رمي الخطأ».

421
00:29:12,820 --> 00:29:21,787
وإلا، فقد أنشأنا هذا الدور.

422
00:29:21,787 --> 00:29:28,625
حتى الآن أنا بحاجة إلى تعيين هذا الدور لهذا المستخدم معين أن لدي مجرد إنشاء.

423
00:29:28,625 --> 00:29:31,658
هذا المستخدم الذي قمت بإنشائه للتو هنا.

424
00:29:31,658 --> 00:29:36,660
هذا المستخدم أريد أن أعطي هذا المستخدم دور المشرف.

425
00:29:36,660 --> 00:29:39,140
لذلك منذ أن قمت بإنشاء هذا الدور من قبل مسؤول الاسم،

426
00:29:39,140 --> 00:29:47,167
لذلك سنقول، role.principals.create.

427
00:29:47,167 --> 00:29:56,954
إذن هذه هي الطريقة التي تقوم بها بإنشاء تعيين بين الدور ومستخدم معين هنا.

428
00:29:56,954 --> 00:29:59,370
لذلك سنقول، دور.principals.create.

429
00:29:59,370 --> 00:30:01,735
لذلك هذا هو بناء الجملة هناك.

430
00:30:01,735 --> 00:30:17,320
سنقول، PrincipalType: Rolemapping.User

431
00:30:17,320 --> 00:30:25,330
هنا وستأخذ

432
00:30:25,330 --> 00:30:32,385
معرفًا رئيسيًا هنا وهو المستخدمون.

433
00:30:32,385 --> 00:30:36,320
الآن ما الذي يشير إليه هذا المستخدم؟

434
00:30:36,320 --> 00:30:40,418
يشير هذا المستخدمون إلى هذا الذي جاء للتو.

435
00:30:40,418 --> 00:30:43,520
لذلك عندما أنشأنا هؤلاء المستخدمين،

436
00:30:43,520 --> 00:30:49,335
ثم يجب على العميل خلق عودة ناجحة لنا هنا.

437
00:30:49,335 --> 00:30:51,905
إذن هذا ما سأستخدمه هنا

438
00:30:51,905 --> 00:30:53,240
سنقول، المستخدمين [0].

439
00:30:53,240 --> 00:30:58,430
لذلك سيكون هذا مجموعة من المستخدمين التي تم إنشاؤها وتحتوي على واحد منهم فقط.

440
00:30:58,430 --> 00:31:01,748
لذلك هذا هو السبب في أنني أقول المستخدم [0].

441
00:31:01,748 --> 00:31:08,037
ثم سنقوم بتعيين معرف هذا المستخدم هنا.

442
00:31:08,037 --> 00:31:14,215
إذن هذه هي الطريقة التي سنقوم بها بإنشاء RoleMapping بين الدور الذي أنشأنا للتو

443
00:31:14,215 --> 00:31:20,639
، هذا الدور، ثم تعيينه للعميل الذي أنشأنا للتو.

444
00:31:20,639 --> 00:31:29,315
الآن هذا يأخذنا أيضا إلى المعلمات، وظيفة رد الاتصال.

445
00:31:29,315 --> 00:31:33,735
وفي وظيفة رد الاتصال هذه، سنقول ببساطة،

446
00:31:33,735 --> 00:31:35,950
إذا كان (err) رمي (err).

447
00:31:35,950 --> 00:31:41,825
و إلا فإننا لسنا حريصين حقا على معرفة ما حدث هناك أيضا.

448
00:31:41,825 --> 00:31:44,055
هذا كل شيء إذن هذه هي الطريقة

449
00:31:44,055 --> 00:31:46,870
لذلك إذا كان الدور المسمى المشرف غير موجود،

450
00:31:46,870 --> 00:31:48,819
سنقوم بإنشاء هذا الدور.

451
00:31:48,819 --> 00:31:53,785
إذا لم يكن - لذلك هذا هو

452
00:31:53,785 --> 00:32:01,170
الجزء «آخر» حيث ما زلت بحاجة إلى القيام بهذا التعيين.

453
00:32:01,170 --> 00:32:08,140
لذلك اسمحوا لي أن نسخ هذا الرمز وبعد ذلك سأفعل ذلك بالضبط هنا.

454
00:32:08,140 --> 00:32:15,834
لذلك دور.principals.create ثم تعيين هذا للمستخدم هناك.

455
00:32:15,834 --> 00:32:17,980
لذلك إذا كان دور المشرف موجودًا بالفعل،

456
00:32:17,980 --> 00:32:20,730
فكل ما يحتاجون إليه هو القيام بالتخطيط.

457
00:32:20,730 --> 00:32:28,420
لذلك سيتم تخزين هذا في نموذج رولمابينغ في قاعدة البيانات لدينا. هذا هو

458
00:32:28,420 --> 00:32:34,520
لذا ستحاول هذه القطعة من التعليمات البرمجية التي وضعناها في ملف script.js أولاً

459
00:32:34,520 --> 00:32:41,765
العثور على ما إذا كان مستخدم المشرف موجودًا ويتم تحديد هذا المستخدم بواسطة مسؤول الاسم.

460
00:32:41,765 --> 00:32:50,210
إذا لم يكن كذلك، ثم سيتم إنشاء المستخدم وأيضا بعد ذلك سيتم إنشاء دور للمستخدم.

461
00:32:50,210 --> 00:32:52,065
سنقوم بإنشاء دور اسمه المشرف.

462
00:32:52,065 --> 00:32:53,865
إذا كان هذا الدور موجودًا،

463
00:32:53,865 --> 00:32:54,950
فسنستخدم ذلك فقط.

464
00:32:54,950 --> 00:32:56,705
وإلا سنخلق الدور

465
00:32:56,705 --> 00:33:01,485
وبعد ذلك سنقوم بإنشاء هذا التعيين بين الدور والمستخدم.

466
00:33:01,485 --> 00:33:03,940
لذلك الاسترجاع يسمح لنا للقيام رولمابينغ.

467
00:33:03,940 --> 00:33:07,310
حتى القول هذا المستخدم ليس لهذا الدور.

468
00:33:07,310 --> 00:33:10,395
لذلك يتم هذا التعيين باستخدام هذا البيان.

469
00:33:10,395 --> 00:33:14,010
بحيث يكمل إعداد خوادمنا.

470
00:33:14,010 --> 00:33:18,305
بحيث سيتم إنشاء مستخدم المشرف وأن المستخدم المشرف سوف

471
00:33:18,305 --> 00:33:24,155
تحصل تلقائيا على دور المشرف كما تم تكوينه هنا.

472
00:33:24,155 --> 00:33:27,675
هذا كل شيء دعونا حفظ التغييرات إلى script.js.

473
00:33:27,675 --> 00:33:32,015
والآن يجب أن تكون خوادم الاسترجاع جاهزة.

474
00:33:32,015 --> 00:33:38,840
لذا سنذهب الآن ونبدأ سيرفر العودة ثم نتحقق من ما يمكننا القيام به مع هذا.

475
00:33:38,840 --> 00:33:41,085
الذهاب إلى المحطات،

476
00:33:41,085 --> 00:33:43,060
دعونا نبدأ خادم الاسترجاع.

477
00:33:43,060 --> 00:33:49,428
لذلك سنقول، بداية npm ومن ثم يجب أن يكون خادمنا قيد التشغيل.

478
00:33:49,428 --> 00:33:53,220
دعونا نذهب إلى المستكشف ثم تصفح المعلومات هناك.

479
00:33:53,220 --> 00:33:55,890
وسيكون خادم الاسترجاع هذا

480
00:33:55,890 --> 00:33:59,535
متصلاً تلقائيًا بمونغودب لأنني قمت بإعداد الاتصال.

481
00:33:59,535 --> 00:34:03,415
الذهاب إلى المتصفح الخاص بي،

482
00:34:03,415 --> 00:34:05,610
اسمحوا لي إعادة تحميل هذا.

483
00:34:05,610 --> 00:34:07,879
وعندما أعيد تحميل هذا،

484
00:34:07,879 --> 00:34:12,450
سترى الآن أن لدينا زبون جديد تم إنشاؤه هنا.

485
00:34:12,450 --> 00:34:14,705
المستخدم موجود بالفعل في وقت سابق.

486
00:34:14,705 --> 00:34:17,840
الأطباق، والقادة، والعروض الترويجية كلها هناك.

487
00:34:17,840 --> 00:34:20,325
دعونا أداء الحصول على الأطباق.

488
00:34:20,325 --> 00:34:23,250
الآن بعد أن يرتبط هذا بالفم MongoDB،

489
00:34:23,250 --> 00:34:26,845
يحتوي MongoDB بالفعل على بعض الأطباق هناك.

490
00:34:26,845 --> 00:34:28,235
إذا كان MongoDB الخاص بك فارغًا،

491
00:34:28,235 --> 00:34:31,821
فيمكنك نشر بعض الأطباق باستخدام المشاركة هنا.

492
00:34:31,821 --> 00:34:33,995
لذلك دعونا نحاول بها.

493
00:34:33,995 --> 00:34:38,040
عندما أفعل عملية الحصول على أطباق مائلة،

494
00:34:38,040 --> 00:34:42,945
سترى أنه في الجسم الاستجابة-

495
00:34:42,945 --> 00:34:48,090
جميع الأطباق الموجودة في قاعدة البيانات الخاصة بي تم جلبها.

496
00:34:48,090 --> 00:34:52,995
وبالمثل، يمكنني أن أفعل GET على

497
00:34:52,995 --> 00:35:01,900
الترقيات ويجب أن أرى العرض الترويجي الموجود بالفعل في قاعدة البيانات الخاصة بي هناك.

498
00:35:01,900 --> 00:35:04,845
لذلك، يمكنك أن ترى أن الترقية موجودة بالفعل هناك.

499
00:35:04,845 --> 00:35:09,978
لذلك، هذا يبين لنا كيف يمكننا جلب المعلومات.

500
00:35:09,978 --> 00:35:12,485
الآن، دعونا نحاول نشر طبق جديد.

501
00:35:12,485 --> 00:35:14,185
لذلك، لنشر طبق جديد،

502
00:35:14,185 --> 00:35:16,675
نذهب إلى بوست هنا.

503
00:35:16,675 --> 00:35:18,715
اسمحوا لي فقط نسخ هذا.

504
00:35:18,715 --> 00:35:20,035
من الواضح، في هذه اللحظة،

505
00:35:20,035 --> 00:35:22,080
لأنه منذ أنا لست تسجيل الدخول،

506
00:35:22,080 --> 00:35:26,180
لن يسمح لي بنشر الطبق حتى،

507
00:35:26,180 --> 00:35:31,615
ولكن سوف أثبت أن لك مجرد نسخ ولصق هذه المعلومات هنا،

508
00:35:31,615 --> 00:35:34,120
وسنحاول نشر هذا الطبق،

509
00:35:34,120 --> 00:35:36,010
وبعد ذلك عندما أحاول نشر الطبق،

510
00:35:36,010 --> 00:35:40,660
خادم بلدي الردود على الفور مع هذا الخطأ قائلا، AUTHORIZATION_

511
00:35:40,660 --> 00:35:42,790
أنت غير مخوّل للقيام بهذه العملية.

512
00:35:42,790 --> 00:35:46,146
لذلك، هذا هو السبب في أنك غير مأذون للقيام بهذه العملية.

513
00:35:46,146 --> 00:35:48,505
الآن، كيف تصرح لنفسك؟

514
00:35:48,505 --> 00:35:50,315
لذلك، لتفويض نفسك،

515
00:35:50,315 --> 00:35:58,450
أذكر الآن أننا قد أنشأنا بالفعل مستخدم واحد مع اسم المشرف،

516
00:35:58,450 --> 00:36:05,240
وهذا المستخدم المشرف موجود بالفعل كعميل هنا.

517
00:36:05,240 --> 00:36:11,495
لذا، انتقل إلى نقاط نهاية واجهة برمجة تطبيقات REST الخاصة بالعميل

518
00:36:11,495 --> 00:36:12,835
، إذا قمت بالتمرير

519
00:36:12,835 --> 00:36:16,925
لأسفل، أسفل هنا، سترى تسجيل دخول هذا العميل.

520
00:36:16,925 --> 00:36:20,220
لذلك، عند القيام POST على تسجيل دخول العميل.

521
00:36:20,220 --> 00:36:22,430
لذلك، لتسجيل دخول العميل،

522
00:36:22,430 --> 00:36:26,273
يمكنك التمرير هنا ثم هنا يسأل عن بيانات الاعتماد.

523
00:36:26,273 --> 00:36:27,540
لذلك، في بيانات الاعتماد،

524
00:36:27,540 --> 00:36:35,190
يمكننا كتابة اسم المستخدم في علامات اقتباس مزدوجة، وسنقول،

525
00:36:35,190 --> 00:36:40,570
المشرف، ثم كلمة المرور،

526
00:36:40,570 --> 00:36:48,665
وسنقول، كلمة المرور، ومن ثم سنقوم بنشر هذا.

527
00:36:48,665 --> 00:36:50,450
ثم عند نشره،

528
00:36:50,450 --> 00:36:54,365
ستلاحظ أنه في الرد، سيقوم

529
00:36:54,365 --> 00:36:57,764
LoopBack بإرسال هذه المعلومات مرة أخرى.

530
00:36:57,764 --> 00:36:59,660
الآن، ضمن هذه المعلومات،

531
00:36:59,660 --> 00:37:06,725
هذا المعرف الخاص الذي يرسل مرة أخرى هو AccessStoken لخادم LoopBack الخاص بي.

532
00:37:06,725 --> 00:37:09,835
لذلك، يمكنني فقط نسخ هذا AccessStoken هنا،

533
00:37:09,835 --> 00:37:13,575
ثم الحق في الجزء العلوي هنا،

534
00:37:13,575 --> 00:37:17,735
يمكنك أن ترى أن هذا هو رمز غير تعيين، هنا.

535
00:37:17,735 --> 00:37:19,660
وتقول رمز غير تعيين.

536
00:37:19,660 --> 00:37:22,415
وهنا يمكنك كتابة في هذا AccessStoken،

537
00:37:22,415 --> 00:37:24,605
ومن ثم يقول، تعيين رمز الوصول.

538
00:37:24,605 --> 00:37:27,245
ثم سيتم تعيين AccessStoken الخاص بك،

539
00:37:27,245 --> 00:37:33,525
ومن ثم ستحمل جميع العمليات اللاحقة التي تقوم بها تلقائيًا

540
00:37:33,525 --> 00:37:39,750
هذا AccessStoken في رأس رسالة طلبي.

541
00:37:39,750 --> 00:37:45,350
لذا، بهذه الطريقة، الآن سيسمح للمشرف الخاص بي بالقيام بمشاركات العناصر هناك.

542
00:37:45,350 --> 00:37:47,480
لذلك، الآن بعد أن قمت بتسجيل الدخول كمشرف،

543
00:37:47,480 --> 00:37:49,135
اسمحوا لي أن أذهب إلى العروض الترويجية،

544
00:37:49,135 --> 00:37:51,171
وبعد ذلك سأقوم بنشر عرض ترويجي واحد هناك،

545
00:37:51,171 --> 00:37:57,098
وأظهر لك أنه يمكنني بالفعل نشر العروض الترويجية.

546
00:37:57,098 --> 00:38:00,885
لذلك، دعونا نذهب إلى POST،

547
00:38:00,885 --> 00:38:07,250
وبعد ذلك سنقوم فقط بنسخ هذا، ثم في البيانات،

548
00:38:07,250 --> 00:38:13,855
ومن ثم للاسم سنقول، ترقية الاختبار،

549
00:38:13,855 --> 00:38:24,500
وصورة سنترك الأمر على هذا النحو، وصف، وصف الاختبار.

550
00:38:30,990 --> 00:38:34,665
ويمكنني نشره هناك،

551
00:38:34,665 --> 00:38:38,180
وسترى

552
00:38:41,740 --> 00:38:48,265
أنه لا ينبغي أن أقوم بتضمين هذا المعرف هنا لأنني

553
00:38:48,265 --> 00:38:53,710
تركت LoopBack يقوم تلقائيًا بتعيين المعرف إليه.

554
00:38:53,710 --> 00:38:58,325
اسمحوا لي أن نشر هذا وبعد ذلك سترى أنه في هيئة الاستجابة،

555
00:38:58,325 --> 00:39:01,293
تم نشر ترويج الاختبار هنا.

556
00:39:01,293 --> 00:39:04,615
ولقد لاحظت أنني لم أقم بتضمين

557
00:39:04,615 --> 00:39:11,130
العلم المميز للترقيات الخاصة بي وقادتي.

558
00:39:11,130 --> 00:39:16,180
لذلك، أنا ذاهب للذهاب في وتشمل العلم مميزة باعتبارها

559
00:39:16,180 --> 00:39:21,930
واحدة من أجزاء من الترقيات بلدي هناك.

560
00:39:21,930 --> 00:39:26,845
لذلك، الآن عندما أقوم بعمل GET للترقيات،

561
00:39:26,845 --> 00:39:29,875
سترى أنه في رسالة الرد هذه،

562
00:39:29,875 --> 00:39:34,795
سترى العرض الترويجي القديم الذي كان بالفعل في قاعدة البيانات الخاصة بي

563
00:39:34,795 --> 00:39:40,395
ثم العرض الترويجي الجديد الذي قمت بنشره للتو إلى قاعدة البيانات الخاصة بي المضمنة بالفعل هنا.

564
00:39:40,395 --> 00:39:44,395
لذلك، لاحظت فقط أنني بحاجة إلى تعيين العلم المميز،

565
00:39:44,395 --> 00:39:46,695
وسوف تظهر لك كيفية القيام بذلك في

566
00:39:46,695 --> 00:39:54,100
، وهذا النوع من يوضح لك كيف يمكنك تسجيل الدخول واستكشاف خادم LoopBack الخاص بك.

567
00:39:54,100 --> 00:39:55,420
اسمحوا لي أن تدمير هذا الرمز المميز،

568
00:39:55,420 --> 00:39:58,010
لذلك سنقوم فقط بإزالة الرمز المميز،

569
00:39:58,010 --> 00:39:59,555
ثم انقر فوق

570
00:39:59,555 --> 00:40:02,440
ذلك بحيث سيتم إرسال رمز الوصول بشكل أساسي إلى

571
00:40:02,440 --> 00:40:05,560
سلسلة فارغة وبالتالي لن يتم معالجة الرمز المميز

572
00:40:05,560 --> 00:40:07,880
الخاص بي، حتى الآن لم يعد مستخدم تسجيل الدخول.

573
00:40:07,880 --> 00:40:11,148
اسمحوا لي أن خلق عميل جديد.

574
00:40:11,148 --> 00:40:16,290
لذلك، لإنشاء عميل جديد سأقول، عملاء POST.

575
00:40:16,290 --> 00:40:20,780
وبعد ذلك سأنسخ هذا من هنا

576
00:40:20,780 --> 00:40:24,175
سأقوم بإنشاء حساب جديد لنفسي هنا

577
00:40:24,175 --> 00:40:26,160
وهكذا، هنا،

578
00:40:26,160 --> 00:40:28,620
سأقوم بإزالة المجال، لست

579
00:40:28,620 --> 00:40:32,186
بحاجة إلى ذلك، لست بحاجة إلى المعرف،

580
00:40:32,186 --> 00:40:36,070
لذلك، بالنسبة للاسم الأول

581
00:40:39,750 --> 00:40:46,610
و EmailVerified يجب أن يتم تعيين تلقائيا من قبل النظام.

582
00:40:46,610 --> 00:40:49,430
لذلك، اسمحوا لي تسجيل الدخول كمستخدم هذا.

583
00:40:49,430 --> 00:40:52,370
لذلك، أنا فقط ذاهب لتقديم اسمي الأول، اسم العائلة،

584
00:40:52,370 --> 00:40:54,440
والصورة حاليا،

585
00:40:54,440 --> 00:40:59,745
وسوف مجرد تعيين سلسلة فارغة هناك، اسم المستخدم والبريد الإلكتروني.

586
00:40:59,745 --> 00:41:01,835
ثم سنحاول الخروج،

587
00:41:01,835 --> 00:41:05,060
ثم يعود قائلا،

588
00:41:05,060 --> 00:41:08,820
التفاصيل: «كلمة المرور» لا يمكن أن تكون فارغة.

589
00:41:08,820 --> 00:41:11,285
لذلك، ستلاحظ أنه هنا،

590
00:41:11,285 --> 00:41:16,900
يجب أن أقوم أيضًا بتضمين مع اسم المستخدم

591
00:41:17,040 --> 00:41:27,834
وكلمة المرور وبعد ذلك، دعنا ننشر هذا.

592
00:41:27,834 --> 00:41:30,890
لذلك، عندما تقوم بنشره، فإنه يعود مع

593
00:41:30,890 --> 00:41:35,535
هيئة الاستجابة قائلا أنك الآن جزء من النظام.

594
00:41:35,535 --> 00:41:40,280
لذلك، يتم

595
00:41:40,280 --> 00:41:45,706
إرسال اسمك الأول واسم عائلتك واسم المستخدم الخاص بك ومعرف بريدك الإلكتروني والمعرف الذي يعينه لك LoopBack مرة أخرى إليك.

596
00:41:45,706 --> 00:41:52,777
لذا، هذا ليس سوى معرف MongoDB كما ترون هنا.

597
00:41:52,777 --> 00:41:56,150
لذا، الآن بعد أن قمت بالتسجيل كعميل،

598
00:41:56,150 --> 00:41:58,425
يجب أن أتمكن من تسجيل الدخول كعميل،

599
00:41:58,425 --> 00:42:01,775
بحيث سأذهب إلى سجل POST

600
00:42:01,775 --> 00:42:04,250
هنا، ثم هنا بدلاً من المشرف،

601
00:42:04,250 --> 00:42:11,710
سأقوم بتسجيل الدخول كمستخدم جديد قمت بتسجيل الدخول.

602
00:42:11,710 --> 00:42:14,130
لذلك، ثم انقر فوق لمحاولة الخروج،

603
00:42:14,130 --> 00:42:17,405
سترى أنه يعود مع معرف،

604
00:42:17,405 --> 00:42:22,910
لذلك يعطيني الرمز المميز لهذا المستخدم المشرف هنا.

605
00:42:22,910 --> 00:42:30,080
لذلك، مع هذا أكملنا فحص خادم LoopBack الذي أنشأنا للتو.

606
00:42:30,080 --> 00:42:31,340
وكما ذكرت للتو،

607
00:42:31,340 --> 00:42:36,935
لاحظت أن الترقيات والقادة لم تظهر العلم لذلك،

608
00:42:36,935 --> 00:42:40,930
أنا ذاهب للذهاب إلى التعليمات البرمجية.

609
00:42:40,930 --> 00:42:43,400
لذلك، لنفترض أنك نسيت شيئا من هذا القبيل،

610
00:42:43,400 --> 00:42:47,305
ثم يمكنك ببساطة الذهاب في وتحرير رمز جسون إذا كنت ترغب في ذلك.

611
00:42:47,305 --> 00:42:50,540
لذلك، أنا ذاهب للذهاب إلى رمز بلدي،

612
00:42:50,540 --> 00:42:52,040
والذهاب إلى التعليمات البرمجية،

613
00:42:52,040 --> 00:42:56,635
وأنا ذاهب للذهاب أولا إلى المشاعات ومن ثم سأذهب إلى dishes.json.

614
00:42:56,635 --> 00:42:59,750
ثم في dishes.json،

615
00:42:59,750 --> 00:43:05,320
أرى هذا العقار المميز هناك.

616
00:43:05,320 --> 00:43:07,480
سأقوم بنسخ هذه الخاصية المميزة،

617
00:43:07,480 --> 00:43:09,040
ثم سأذهب إلى leaders.json،

618
00:43:09,040 --> 00:43:15,151
ثم سأقوم بلصق خاصية الميزة هذه إلى leaders.json،

619
00:43:15,151 --> 00:43:17,750
وكذلك مع promotions.json.

620
00:43:17,750 --> 00:43:22,955
لقد نسيت تضمين هذا عندما قمت بإنشاء تلك النماذج. كان

621
00:43:22,955 --> 00:43:27,180
يجب أن أفعل ذلك عندما كنت أقوم بإنشاء النموذج نفسه،

622
00:43:27,180 --> 00:43:29,960
إذا نسيت شيئًا من

623
00:43:29,960 --> 00:43:33,370
هذا القبيل، فهذه طريقة أخرى لتحرير النموذج الخاص بك

624
00:43:33,370 --> 00:43:38,070
ومن ثم التأكد من إعداد النموذج الخاص بك بشكل صحيح.

625
00:43:38,070 --> 00:43:40,130
إذاً، هذا كل شيء

626
00:43:40,130 --> 00:43:48,575
لذا، الآن الترقيات والقادة سوف يكون لها أيضا العلم المميز مجموعة في هناك.

627
00:43:48,575 --> 00:43:52,675
مع هذا، نكمل هذا التمرين.

628
00:43:52,675 --> 00:43:56,525
في هذا التمرين، رأينا كيف يمكننا إعداد

629
00:43:56,525 --> 00:44:03,555
نموذج جديد من خلال توسيع فئة نموذج أساسي موجود بالفعل في LoopBack.

630
00:44:03,555 --> 00:44:07,250
كما رأينا كيف يمكننا إعداد عناصر تحكم الوصول باستخدام

631
00:44:07,250 --> 00:44:11,540
قوائم التحكم في الوصول التي يدعمها LoopBack.

632
00:44:11,540 --> 00:44:13,970
مع هذا، نكمل هذا التمرين.

633
00:44:13,970 --> 00:44:16,835
هذا هو الوقت المناسب بالنسبة لك للقيام الحصول على تغطية مع

634
00:44:16,835 --> 00:44:22,450
مصادر البيانات LoopBack الرسالة والتحكم في الوصول.