1
00:00:03,920 --> 00:00:07,970
حان الوقت للمهمة الثالثة في هذه الدورة.

2
00:00:07,970 --> 00:00:13,110
في هذه الوحدة، لقد تم استكشاف مصادقة المستخدم في الكثير من التفاصيل.

3
00:00:13,110 --> 00:00:14,705
الآن، في هذا الواجب،

4
00:00:14,705 --> 00:00:17,905
سنعمل أكثر على مصادقة المستخدم.

5
00:00:17,905 --> 00:00:22,965
سنقوم بإضافة فئة أخرى من الحسابات تسمى كمسؤول.

6
00:00:22,965 --> 00:00:26,880
حساب المسؤول هو حساب السوبر الذي لديه

7
00:00:26,880 --> 00:00:31,460
الكثير من الامتيازات لتنفيذ عمليات مختلفة.

8
00:00:31,460 --> 00:00:37,410
يمكن لحساب المستخدم العادي تنفيذ عمليات معينة فقط على خادمنا.

9
00:00:37,410 --> 00:00:43,445
وبالمثل،

10
00:00:43,445 --> 00:00:49,610
يمكن للطلب غير المسجل الوارد من عميل لم يتم تسجيل الدخول إجراء عمليات معينة فقط على الخادم الخاص بنا.

11
00:00:49,610 --> 00:00:52,400
الآن، نحن ذاهبون لتعديل الخادم لدينا

12
00:00:52,400 --> 00:00:55,865
بحيث الحصول على عمليات يمكن أن يؤديها أي شخص.

13
00:00:55,865 --> 00:01:00,350
لا تحتاج إلى تسجيل الدخول إلى النظام لإجراء عمليات الحصول على

14
00:01:00,350 --> 00:01:06,110
نقاط النهاية المختلفة لواجهة برمجة التطبيقات باستثناء تقديم التعليقات.

15
00:01:06,110 --> 00:01:11,625
بالنسبة للعمليات المتبقية على بقية نقاط نهاية API،

16
00:01:11,625 --> 00:01:15,365
يقوم POST بوضع العمليات وحذفها،

17
00:01:15,365 --> 00:01:20,190
سيتم تقييد تنفيذها فقط من قبل مستخدمي المشرف،

18
00:01:20,190 --> 00:01:23,780
ولا يمكن للمستخدم العادي تنفيذ هذه العمليات.

19
00:01:23,780 --> 00:01:30,215
من الواضح أنك لا تريد أن يقوم المستخدم العادي بتقديم أطباق جديدة، أو عروض ترويجية،

20
00:01:30,215 --> 00:01:34,975
أو معلومات القائد، أو تعديل المعلومات الموجودة،

21
00:01:34,975 --> 00:01:37,780
أو حتى حذف هذه المعلومات الموجودة.

22
00:01:37,780 --> 00:01:45,290
يجب أن يكون هذا امتيازًا لمسؤول النظام فقط لخادمنا.

23
00:01:45,290 --> 00:01:50,870
أيضا، سوف نضمن أن المستخدم العادي يمكن

24
00:01:50,870 --> 00:01:56,010
نشر تعليقات حول أطباق محددة، وهذا أمر مقبول.

25
00:01:56,010 --> 00:02:03,015
وبالمثل، يمكن للمستخدم العادي تحديث وحذف التعليقات التي قام بنشرها.

26
00:02:03,015 --> 00:02:10,230
المستخدمين الآخرين أو حتى المشرف لا يمكن تحديث أو حذف التعليقات المنشورة من قبل مستخدم آخر.

27
00:02:10,230 --> 00:02:14,565
إذن، هذا قيد آخر سنضعه في خادمنا.

28
00:02:14,565 --> 00:02:18,335
الآن، دعونا نمضي قدما وفحص كيف نحن ذاهبون نحو

29
00:02:18,335 --> 00:02:23,299
تنفيذ هذا وكيف بالضبط خادمنا يفعل هذه العمليات.

30
00:02:23,299 --> 00:02:26,720
أولا وقبل كل شيء، وسوف أوضح لك كيف يمكنك

31
00:02:26,720 --> 00:02:31,240
إنشاء حساب المشرف في النظام الخاص بك.

32
00:02:31,240 --> 00:02:33,770
سوف تدرك أنه يجب علينا أن نذهب وراء

33
00:02:33,770 --> 00:02:37,325
الكواليس لإنشاء حساب مشرف ببساطة

34
00:02:37,325 --> 00:02:41,930
لأننا لا نريد إنشاء حساب مشرف عن طريق تنفيذ

35
00:02:41,930 --> 00:02:47,030
عملية الاشتراك على حساب المستخدمين/الاشتراك.

36
00:02:47,030 --> 00:02:50,670
هذا سيترك خادمنا عرضة للهجمات.

37
00:02:50,670 --> 00:02:54,185
لذلك، لا يمكن إعداد حساب المشرف إلا

38
00:02:54,185 --> 00:02:59,085
وراء الكواليس عن طريق الوصول مباشرة إلى قاعدة البيانات.

39
00:02:59,085 --> 00:03:02,090
لذلك، دعونا ننظر في كيفية القيام

40
00:03:02,090 --> 00:03:08,340
بذلك في الرسم التوضيحي الذي سأريكم بعد ذلك مباشرة.

41
00:03:08,380 --> 00:03:11,700
الآن، لفحص قاعدة البيانات الخاصة بنا،

42
00:03:11,700 --> 00:03:15,865
اسمحوا لي أن أبدأ تموج

43
00:03:15,865 --> 00:03:21,740
مونجو في موجه الأوامر، ثم انتقل إلى مجلد الارتباك ثم اسمحوا لي

44
00:03:21,740 --> 00:03:27,830
أن أفحص المستخدمين الذين تم تسجيلهم في قاعدة البيانات الخاصة بي في هذه اللحظة.

45
00:03:27,830 --> 00:03:32,015
لذلك، يمكنك أن ترى أن لدي مستخدم واحد فقط مسجل.

46
00:03:32,015 --> 00:03:35,735
لذلك، اسمحوا لي أن إعداد حسابين إضافيين

47
00:03:35,735 --> 00:03:37,695
،

48
00:03:37,695 --> 00:03:40,280
واحد لمستخدم عادي، والآخر الذي سيكون المشرف.

49
00:03:40,280 --> 00:03:47,415
لذلك، سنقوم بالتسجيل في المشرف والمستخدم الثاني أيضًا من نقطة الاشتراك لدينا،

50
00:03:47,415 --> 00:03:51,935
وبعد ذلك سيعودون إلى تموج Mongo ثم إعداد حساب المشرف

51
00:03:51,935 --> 00:03:57,110
بشكل صريح عن طريق تعديل السجل في قاعدة البيانات الخاصة بنا.

52
00:03:57,110 --> 00:03:58,935
الذهاب إلى دبوس ساعي البريد،

53
00:03:58,935 --> 00:04:03,780
اسمحوا لي الاشتراك اثنين من المستخدمين الإضافيين.

54
00:04:03,780 --> 00:04:07,755
لذلك، كنا قد وقعت في وقت سابق مستخدم واحد مع هذا الاسم،

55
00:04:07,755 --> 00:04:15,660
لذلك أنا ذاهب لتسجيل مستخدم آخر في النظام الخاص بي،

56
00:04:15,660 --> 00:04:20,945
وهكذا، يتم تسجيل مستخدم ثان الآن بنجاح.

57
00:04:20,945 --> 00:04:24,660
الآن، اسمحوا لي أيضا تسجيل حساب المشرف.

58
00:04:24,660 --> 00:04:25,880
لذلك، بالنسبة لحساب المشرف،

59
00:04:25,880 --> 00:04:31,910
سأقوم بإعداد اسم المستخدم كمسؤول ثم قم بتسجيل مستخدم مشرف.

60
00:04:31,910 --> 00:04:38,545
لذلك، نرى أننا أضفنا الآن حسابين جديدين إلى نظامنا.

61
00:04:38,545 --> 00:04:40,455
الذهاب إلى تموج مونغو،

62
00:04:40,455 --> 00:04:43,870
اسمحوا لي مرة أخرى تكرار

63
00:04:43,870 --> 00:04:51,110
db.user.find () واسمحوا لي أن تفعل ذلك جميلة بحيث يبدو أكثر سهولة في القراءة.

64
00:04:51,110 --> 00:04:52,845
لذلك، عندما أفعل ذلك،

65
00:04:52,845 --> 00:04:58,655
يمكنك أن ترى أن لدينا حساب مشرف هنا مع اسم المستخدم كمسؤول.

66
00:04:58,655 --> 00:05:00,770
تجاهل الاسم الأول واسم العائلة،

67
00:05:00,770 --> 00:05:05,190
سأقوم بإعداد هذا الاسم الأول واسم العائلة ليكون هو نفسه لجميع الثلاثة.

68
00:05:05,190 --> 00:05:12,800
ثم، لدينا حساب المستخدم الآخر الذي قمت بإعداده مع اسم المستخدم هنا،

69
00:05:12,800 --> 00:05:17,190
وحساب المستخدم الثالث الذي كان لدينا بالفعل في قاعدة البيانات الخاصة بنا.

70
00:05:17,190 --> 00:05:19,750
لذلك، لدينا الآن ثلاثة حسابات المستخدمين؛

71
00:05:19,750 --> 00:05:22,215
حسابان للمستخدمين هنا،

72
00:05:22,215 --> 00:05:23,860
وحساب المشرف.

73
00:05:23,860 --> 00:05:28,395
الآن، بالطبع، سترى أنه في حسابات المستخدمين،

74
00:05:28,395 --> 00:05:32,690
لدينا هذه العلامة تسمى علامة المشرف التي تم تعيينها إلى false

75
00:05:32,690 --> 00:05:38,100
لأي حساب تم توقيعه على نقطة النهاية هذه /المستخدمين/الاشتراك.

76
00:05:38,100 --> 00:05:40,740
هذه هي الطريقة الافتراضية التي يجب عليك إعداد الحسابات.

77
00:05:40,740 --> 00:05:44,465
لا يمكنك السماح لمستخدم بتكوين حساب مسؤول

78
00:05:44,465 --> 00:05:48,945
عن طريق القيام بأي شيء مباشرة على نقطة نهاية واجهة برمجة التطبيقات المتبقية.

79
00:05:48,945 --> 00:05:53,600
بدلا من ذلك، سوف نذهب وراء الكواليس ومن ثم في تموج مونجو،

80
00:05:53,600 --> 00:06:00,510
وأنا ذاهب لتعديل هذا السجل للمستخدم المشرف عن طريق

81
00:06:00,510 --> 00:06:07,920
قول db.users.update وبعد ذلك

82
00:06:07,920 --> 00:06:15,205
سنقوم بتوفير اسم المستخدم كمسؤول هنا.

83
00:06:15,205 --> 00:06:25,470
لذلك، سنقوم بتحديث سجل الآية وبعد ذلك سنقول {$ set:

84
00:06:25,470 --> 00:06:31,520
أذكر كيف كنا نتلاعب MongoDB لذلك

85
00:06:31,520 --> 00:06:39,180
سنقول {$ set: {"admin»: «true»}}.

86
00:06:39,180 --> 00:06:42,980
لذا، ما نقوم به هنا هو أننا

87
00:06:42,980 --> 00:06:47,810
نبحث عن حساب المستخدم هذا مع مسؤول اسم المستخدم،

88
00:06:47,810 --> 00:06:52,190
ومن ثم نقوم بإعداد علامة المشرف إلى true

89
00:06:52,190 --> 00:06:58,125
هنا باستخدام خيار مجموعة $.

90
00:06:58,125 --> 00:07:02,520
لذلك، هذه هي الطريقة التي سنقوم بتحديث حساب ليكون حساب المشرف.

91
00:07:02,520 --> 00:07:08,010
لذلك، ترى أن هذا قد عدل النتائج.

92
00:07:08,010 --> 00:07:11,880
لذلك، دعونا مرة أخرى التحقق من الحسابات.

93
00:07:11,880 --> 00:07:13,410
الآن، عند التحقق من الحساب،

94
00:07:13,410 --> 00:07:16,140
سترى أنه لحساب المشرف،

95
00:07:16,140 --> 00:07:19,475
يتم تعيين علامة المشرف الآن إلى true،

96
00:07:19,475 --> 00:07:22,810
بحيث ينتهي بك الأمر إلى إنشاء حساب مسؤول.

97
00:07:22,810 --> 00:07:27,920
الآن، حساب المشرف كما نتوقع لديه امتيازات إضافية.

98
00:07:27,920 --> 00:07:33,400
لذلك، بمجرد إكمال هذه المهمة،

99
00:07:33,400 --> 00:07:38,525
ستلاحظ أن عملية الحصول على يمكن أن يؤديها أي مستخدم

100
00:07:38,525 --> 00:07:45,080
على/أطباق /aspecificdishendpoint/الترقيات

101
00:07:45,080 --> 00:07:50,570
و /الترويج/specificpromotionendpoint وبالمثل،

102
00:07:50,570 --> 00:07:52,985
للقادة في النقاط أيضا.

103
00:07:52,985 --> 00:07:55,590
ولكن لا

104
00:07:55,590 --> 00:08:02,195
يمكن تنفيذ عمليات POST ووضعه وحذفه على نقاط النهاية هذه إلا من قبل مستخدمي المشرف.

105
00:08:02,195 --> 00:08:08,110
الآن، بالإضافة إلى ذلك، نقطة نهاية التعليقات،

106
00:08:08,110 --> 00:08:14,110
فإننا سوف نسمح فقط للمستخدم المسجل الذي قام بتسجيل الدخول

107
00:08:14,110 --> 00:08:20,835
للوصول إلى التعليقات لطبق معين،

108
00:08:20,835 --> 00:08:25,990
وسوف نسمح للمستخدم تسجيل الدخول لنشر التعليقات.

109
00:08:25,990 --> 00:08:28,730
لقد قمنا بالفعل بإعداد هذا في التمرين لذلك،

110
00:08:28,730 --> 00:08:31,290
عندما يقوم المستخدم بنشر التعليق،

111
00:08:31,290 --> 00:08:34,150
فقد تأكدنا من أننا نتحقق

112
00:08:34,150 --> 00:08:37,150
من صحة المستخدم ثم عندما يتم نشر التعليق،

113
00:08:37,150 --> 00:08:44,060
قمنا بإعداد معرف المؤلف للتعليق باستخدام معرف المستخدم.

114
00:08:44,060 --> 00:08:46,140
لذلك، لقد أكملنا ذلك بالفعل.

115
00:08:46,140 --> 00:08:48,625
ولكن الآن، بالإضافة إلى ذلك،

116
00:08:48,625 --> 00:08:59,480
بالنسبة لعمليات البيع والحذف على التعليقات،

117
00:08:59,480 --> 00:09:04,180
سيسمح فقط للمستخدم الذي قدم التعليق المحدد بوضع وحذف العمليات على تعليقاته الخاصة.

118
00:09:04,180 --> 00:09:08,480
لا يمكن لأي مستخدم آخر تعديل تعليقات شخص آخر.

119
00:09:08,480 --> 00:09:13,355
وبالمثل، حتى المشرف لا يمكن تعديل تعليقات شخص آخر،

120
00:09:13,355 --> 00:09:14,960
أو حذف تعليق شخص آخر.

121
00:09:14,960 --> 00:09:18,850
لذا، هذا هو الجزء الثاني من هذه المهمة الذي ستقوم به.

122
00:09:18,850 --> 00:09:22,910
الجزء الثالث هو أن المشرف يمكن الاستعلام

123
00:09:22,910 --> 00:09:31,115
عن/المستخدمين نقطة النهاية وطلب قائمة المستخدمين المسجلين،

124
00:09:31,115 --> 00:09:35,090
لا يمكن لأي مستخدم عادي آخر القيام بهذا الاستعلام.

125
00:09:35,090 --> 00:09:38,550
لذا، هذا هو التقييد الآخر الذي سنضعه هناك.

126
00:09:38,550 --> 00:09:42,745
الآن، من أجل التحقق من أن المستخدم هو المسؤول،

127
00:09:42,745 --> 00:09:46,770
ونحن سوف تحقق أولا من أن المستخدم هو مستخدم مسجل.

128
00:09:46,770 --> 00:09:51,470
لذلك،

129
00:09:51,470 --> 00:09:56,450
يجب تطبيق وظيفة المستخدم التحقق التي قمنا بتنفيذها بالفعل في authenticate.js حتى عندما تحتاج إلى التحقق من المسؤول.

130
00:09:56,450 --> 00:09:59,855
أولاً، يمكنك التحقق من أنه مستخدم تم التحقق منه، بعد ذلك،

131
00:09:59,855 --> 00:10:05,795
ستقوم بإدخال وظيفة أخرى تسمى VerifyAdmin في

132
00:10:05,795 --> 00:10:12,285
ملف authenticate.js والتي ستتحقق للتأكد من أن المستخدم مسؤول.

133
00:10:12,285 --> 00:10:15,190
الآن، للتحقق مما إذا كان المستخدم هو المشرف،

134
00:10:15,190 --> 00:10:19,900
كل ما عليك القيام به هو التحقق من rec.user الموجود على

135
00:10:19,900 --> 00:10:24,855
كائن الطلب rec.user هناك،

136
00:10:24,855 --> 00:10:28,325
تحقق لمعرفة ما إذا كانت علامة المشرف صحيحة أم لا.

137
00:10:28,325 --> 00:10:30,375
إذا كانت علامة المشرف صحيحة،

138
00:10:30,375 --> 00:10:39,315
فستسمح بالعملية العادية للمضي قدما إلى حدوث [غير مسموع].

139
00:10:39,315 --> 00:10:41,570
إذا لم يكن المستخدم مسؤولاً،

140
00:10:41,570 --> 00:10:49,075
فسوف تقوم بإنشاء خطأ وإرسال رسالة خطأ مرة أخرى إلى جانب العميل.

141
00:10:49,075 --> 00:10:53,945
لذا، هذه هي الطريقة التي سنتعامل بها مع حساب مستخدمي المشرف.

142
00:10:53,945 --> 00:11:03,165
الآن، عندما يحاول المستخدم تعديل أو حذف تعليقاته الخاصة،

143
00:11:03,165 --> 00:11:06,320
يجب علينا التحقق للتأكد من أن مؤلف التعليق هو

144
00:11:06,320 --> 00:11:10,245
نفسه المستخدم الذي يحاول تعديل التعليق.

145
00:11:10,245 --> 00:11:13,085
الآن، يحتوي rec.user أيضًا على حقل المعرف،

146
00:11:13,085 --> 00:11:16,860
لذلك تحتاج إلى عبور التحقق من ذلك مع حقل المؤلف للتعليق.

147
00:11:16,860 --> 00:11:18,255
إذا كانت هذه المباراة اثنين،

148
00:11:18,255 --> 00:11:22,390
ثم سوف تسمح للمستخدم لتنفيذ وضع أو حذف العمليات.

149
00:11:22,390 --> 00:11:24,050
إذا لم تتطابق،

150
00:11:24,050 --> 00:11:31,190
فلن تسمح بعمليات البيع أو الحذف على هذا التعليق المحدد.

151
00:11:31,190 --> 00:11:33,590
لذلك هذا هو الجانب الآخر الذي ستقوم

152
00:11:33,590 --> 00:11:37,185
بتنفيذه كجزء من مهمتك الثالثة.

153
00:11:37,185 --> 00:11:40,420
دعونا ننظر في كيفية عمل كل هذه الأشياء

154
00:11:40,420 --> 00:11:44,500
باستخدام ساعي البريد لتنفيذ عملية مختلفة على خادمنا.

155
00:11:44,500 --> 00:11:46,545
العودة إلى ساعي البريد،

156
00:11:46,545 --> 00:11:49,725
اسمحوا لي أولا إجراء عملية GET على

157
00:11:49,725 --> 00:11:53,920
الأطباق لمجرد التحقق لمعرفة ما هو في قاعدة البيانات الخاصة بي.

158
00:11:53,920 --> 00:11:56,140
لذلك، إذا قمت بإجراء عملية جيت على الأطباق،

159
00:11:56,140 --> 00:12:00,270
لاحظ أنني لا أضع أي مصادقة في الرأس.

160
00:12:00,270 --> 00:12:02,500
عملية GET مسموح بها من قبل أي شخص.

161
00:12:02,500 --> 00:12:04,420
لذلك، عندما أقوم بإجراء عملية GET،

162
00:12:04,420 --> 00:12:13,985
أستطيع أن أرى أن لدي بالفعل طبق واحد مع تعليق بالفعل في هذا الطبق.

163
00:12:13,985 --> 00:12:18,900
تم نشر هذا التعليق من قبل هذا المستخدم بالفعل.

164
00:12:18,900 --> 00:12:23,895
لذلك، لدينا بالفعل طبق واحد في النظام هناك.

165
00:12:23,895 --> 00:12:26,520
لذلك، هذا على ما يرام تماما،

166
00:12:26,520 --> 00:12:28,405
وأنا ذاهب لحذف الطبق.

167
00:12:28,405 --> 00:12:29,875
الآن، لحذف الطبق،

168
00:12:29,875 --> 00:12:33,855
من الواضح أن العملية لا يمكن أن يؤديها مستخدم عادي.

169
00:12:33,855 --> 00:12:36,500
لذلك، اسمحوا لي تسجيل الدخول كما،

170
00:12:36,500 --> 00:12:40,310
حتى تتمكن من رؤية أنني تسجيل الدخول كمستخدم عادي.

171
00:12:40,310 --> 00:12:44,940
لذلك، اسمحوا لي تسجيل الدخول كمستخدم عادي.

172
00:12:44,940 --> 00:12:47,140
لذلك، عندما أقوم بتسجيل الدخول، سأحصل على الرمز المميز.

173
00:12:47,140 --> 00:12:49,725
لذا، سأقوم بنسخ هذا الرمز المميز وحفظه.

174
00:12:49,725 --> 00:12:53,845
الآن، أن لدي الرمز المميز الخاص بي،

175
00:12:53,845 --> 00:12:58,770
اسمحوا لي بإجراء عملية DELETE على الأطباق.

176
00:12:58,770 --> 00:13:01,985
لذلك، عندما أذهب إلى عملية DELETE.

177
00:13:01,985 --> 00:13:07,370
لذلك، اسمحوا لي أن حدد هذا GET ثم القيام بعملية DELETE مع الأطباق.

178
00:13:07,370 --> 00:13:13,440
في الرأس، دعني أقوم بتضمين التفويض هنا وستلاحظ

179
00:13:13,440 --> 00:13:22,144
أنه عندما نقوم بلصق الطلب ثم نرسل تفويض DELETE،

180
00:13:22,144 --> 00:13:27,325
ستلاحظ أنه يأتي على الفور مع هذه الرسالة هنا،

181
00:13:27,325 --> 00:13:28,990
كما ترون في المعاينة،

182
00:13:28,990 --> 00:13:33,510
تقول «أنت غير مأذون له تنفيذ هذه العملية! «

183
00:13:33,510 --> 00:13:37,410
ثم رمز الخطأ هو 403 ممنوع.

184
00:13:37,410 --> 00:13:41,540
لذا، هذه رسالة تم إنشاؤها بواسطة

185
00:13:41,540 --> 00:13:46,470
وظيفة VerifyAdmin التي ستقوم بتنفيذها كجزء من هذا التمرين.

186
00:13:46,470 --> 00:13:49,720
لذا، إذا لم يكن المستخدم مشرفًا،

187
00:13:49,720 --> 00:13:53,085
فهذه هي الرسالة التي

188
00:13:53,085 --> 00:13:57,880
ستولدها VerifyAdmin ولن تسمح للطلب بتجاوز هذه النقطة.

189
00:13:57,880 --> 00:14:04,150
لذلك، يمكنك أن ترى أنني قد أغلقت عملية DELETE.

190
00:14:04,150 --> 00:14:05,895
الآن، كيف تفعل هذا؟

191
00:14:05,895 --> 00:14:11,925
في التعليمات البرمجية الخاصة بك، كنت قد رأيت أنه من أجل تطبيق فيريفيوسر،

192
00:14:11,925 --> 00:14:16,270
قمنا بتعيين المصادقة. فيريفيوسر في

193
00:14:16,270 --> 00:14:18,270
عمليات بوست، بوت، و ديليت.

194
00:14:18,270 --> 00:14:22,105
الآن، يمكنك سلسلة الوسيطة واحدة تلو الأخرى.

195
00:14:22,105 --> 00:14:25,200
لذلك، يمكننا أن نقول فاصلة authenticate.VerifyUser

196
00:14:25,200 --> 00:14:28,905
ثم بعد ذلك يمكنك أن تقول authenticate.VerifyAdmin،

197
00:14:28,905 --> 00:14:32,190
لتطبيق فيريفيادمين مباشرة بعد فيريوسر.

198
00:14:32,190 --> 00:14:35,840
لذا، إذا كنت تريد أن تقتصر العملية على المشرف فقط،

199
00:14:35,840 --> 00:14:39,520
فأنت أولاً تقوم بجزء VerifyUser ثم بعد ذلك مباشرة،

200
00:14:39,520 --> 00:14:42,085
يمكنك تطبيق الوسيطة VerifyAdmin.

201
00:14:42,085 --> 00:14:45,274
مباشرة بعد ذلك لذلك، إذا كانت هذه الشيكات اثنين،

202
00:14:45,274 --> 00:14:49,615
تمر بنجاح من خلال، ثم سوف تذهب إلى تنفيذ العملية.

203
00:14:49,615 --> 00:14:52,240
إذا فشل التحقق فيريفيادمين،

204
00:14:52,240 --> 00:14:54,870
ستعود رسالة الخطأ هذه كما ترى

205
00:14:54,870 --> 00:14:57,995
هنا ثم قم بإجهاض العملية هذا الجزء.

206
00:14:57,995 --> 00:15:01,300
لذلك، ستعود الخطأ التالي من VerifyAdmin الخاص بك،

207
00:15:01,300 --> 00:15:03,260
إذا لم يكن المستخدم مسؤولاً.

208
00:15:03,260 --> 00:15:08,100
لذلك، لقد أظهرت لك كيف

209
00:15:08,100 --> 00:15:12,865
ستستخدم حساب مستخدمي المشرف لتقييد العمليات لعمليات PUT و

210
00:15:12,865 --> 00:15:15,285
POST و DELETE.

211
00:15:15,285 --> 00:15:21,935
نفس الشيء، لن يسمح أيضًا بعمليات POST و PUT على أي من هذه الأجزاء n.

212
00:15:21,935 --> 00:15:26,360
الآن، ثم اسمحوا لي أن أوضح الجانب الآخر هنا.

213
00:15:26,360 --> 00:15:28,710
لذلك، رأيت أنه هناك،

214
00:15:28,710 --> 00:15:30,450
عندما نقوم بإجراء عملية GET،

215
00:15:30,450 --> 00:15:37,570
رأيت أن هناك بالفعل تعليق تم نشره بواسطة اسم المستخدم Jogesh،

216
00:15:37,570 --> 00:15:40,230
المستخدم الأول الذي هو في نظامي.

217
00:15:40,230 --> 00:15:43,385
الآن، أنا ذاهب لتسجيل الدخول كمستخدم آخر.

218
00:15:43,385 --> 00:15:53,080
لذلك، سوف أقوم بتسجيل الدخول في حسابي الثاني وهو Muppala ثم عند تسجيل الدخول،

219
00:15:53,080 --> 00:15:54,175
أحصل مرة أخرى على الرمز المميز.

220
00:15:54,175 --> 00:15:56,585
لذلك، اسمحوا لي أن أخذ هذا الرمز هنا.

221
00:15:56,585 --> 00:15:58,645
دعني أنسخ هذا الرمز المميز

222
00:15:58,645 --> 00:16:04,685
الآن، ما سأقوم به هو أنني سأفعل GET على أطباق المضيف المحلي.

223
00:16:04,685 --> 00:16:12,520
لذلك، اسمحوا لي أن أفعل GET على أطباق localhost لتظهر لك التعليق المحدد داخل هنا.

224
00:16:12,520 --> 00:16:16,030
لذلك، هذا التعليق معين مع هذا المعرف.

225
00:16:16,030 --> 00:16:17,640
لذا، ما سأفعله هو،

226
00:16:17,640 --> 00:16:20,400
سأقوم بنسخ بطاقة هوية الطبق تلك.

227
00:16:20,400 --> 00:16:26,810
سأقوم أيضًا بنسخ معرف التعليق من هنا وسأقوم

228
00:16:26,810 --> 00:16:38,700
بإجراء عملية DELETE على هذا الطبق المحدد

229
00:16:38,700 --> 00:16:42,615
وأذكر أن لدينا

230
00:16:42,615 --> 00:16:50,980
شرطة مائلة للتعليقات ثم معرف التعليق الخاص.

231
00:16:50,980 --> 00:16:55,350
الآن، تذكر أن هذا التعليق تم نشره بواسطة اسم المستخدم هذا،

232
00:16:55,350 --> 00:17:01,120
لكنني قمت الآن بتسجيل الدخول إلى نفسي كمستخدم آخر مع اسم مستخدم مختلف.

233
00:17:01,120 --> 00:17:07,075
لذلك، عندما أقوم الآن بإجراء عملية DELETE باستخدام الحساب الآخر،

234
00:17:07,075 --> 00:17:11,950
ستلاحظ على الفور أنه هنا يقول،

235
00:17:11,950 --> 00:17:15,550
«أنت غير مسموح لك بحذف هذا التعليق! «

236
00:17:15,550 --> 00:17:18,970
ثم يقول 403، نفس الشيء.

237
00:17:18,970 --> 00:17:24,205
إذا حاولت إجراء عملية PUT على هذا التعليق المحدد الذي تم تسجيل الدخول كمستخدم آخر،

238
00:17:24,205 --> 00:17:30,010
فستقول، «أنت غير مأذون له بتحديث هذا التعليق!»

239
00:17:30,010 --> 00:17:35,340
لذلك، لا يُسمح بكل من PUT و DELETE و UPDATE لتعليق شخص آخر.

240
00:17:35,340 --> 00:17:41,855
حتى الآن، اسمحوا لي أن تسجيل الدخول كمسؤول في هذه المرحلة ثم اسمحوا لي

241
00:17:41,855 --> 00:17:50,510
أن أحاول حذف هذا التعليق معين وسترى أنه سيتم إنشاء نفس الرسالة.

242
00:17:50,510 --> 00:17:55,890
لذلك، لا يمكن للمشرف أيضًا حذف تعليقات شخص آخر أو تحديثها.

243
00:17:55,890 --> 00:17:57,600
لذلك، لتسجيل الدخول كمسؤول،

244
00:17:57,600 --> 00:18:02,785
اسمحوا لي أن أذهب إلى بوست هنا ثم اسمحوا لي تسجيل الدخول كمسؤول.

245
00:18:02,785 --> 00:18:08,585
الآن، تذكر أن هذه الرموز ستكون صالحة لمدة 33،600 ثانية.

246
00:18:08,585 --> 00:18:12,620
لذلك، يمكنك حفظ هذه الرموز الثلاثة التي تقوم بإنشائها للمستخدمين الثلاثة.

247
00:18:12,620 --> 00:18:16,270
لذلك، لا تحتاج إلى الاستمرار في تسجيل الدخول كمستخدم معين.

248
00:18:16,270 --> 00:18:20,180
طالما أنك تستخدم الرمز المميز الصحيح في الرأس،

249
00:18:20,180 --> 00:18:25,670
فستؤدي عملياتك بشكل جيد تحديد المستخدمين الثلاثة المختلفين.

250
00:18:25,670 --> 00:18:28,655
لذلك، اسمحوا لي تسجيل الدخول كمشرف هنا.

251
00:18:28,655 --> 00:18:30,670
لذلك، عندما أقوم بتسجيل الدخول كمشرف،

252
00:18:30,670 --> 00:18:31,680
أحصل على الرمز المميز هنا.

253
00:18:31,680 --> 00:18:34,930
لذلك، أنا ذاهب لنسخ وحفظ هذا الرمز المميز.

254
00:18:35,010 --> 00:18:40,800
فقط تذكر أي رمز ينتمي إلى من عندما تقوم بعمل نسخة من هذا.

255
00:18:40,800 --> 00:18:45,430
الآن، والعودة إلى هذا، حذف عملية التعليق.

256
00:18:45,430 --> 00:18:54,575
سأذهب إلى الرأس ثم سأقوم بتغيير هذا إلى الرمز المميز

257
00:18:54,575 --> 00:19:00,980
للمشرف ثم حاول إجراء نفس عملية DELETE ثم ترى

258
00:19:00,980 --> 00:19:08,420
أنه حتى المشرف غير مأذون بحذف التعليق الذي تم نشره من قبل مستخدم آخر.

259
00:19:08,420 --> 00:19:10,480
و هذا مقبول تماما.

260
00:19:10,480 --> 00:19:13,095
ولكن دعونا نحاول حذف نفس التعليق،

261
00:19:13,095 --> 00:19:15,255
من قبل هذا المستخدم الذي أنشأ

262
00:19:15,255 --> 00:19:18,425
هذا التعليق وسترى أنه يمكن القيام بذلك بنجاح.

263
00:19:18,425 --> 00:19:20,715
لذلك، دعونا تنفيذ هذه العملية.

264
00:19:20,715 --> 00:19:24,720
لذلك للقيام بذلك، سأعود وأحضر الرمز المميز الذي

265
00:19:24,720 --> 00:19:30,345
حصلت عليه للمستخدم الأول ثم قم بتغيير حقل التخويل.

266
00:19:30,345 --> 00:19:33,260
الآن، لعملية DELETE هذه،

267
00:19:33,260 --> 00:19:35,860
سأقوم بتغيير هذا إلى حامل،

268
00:19:35,860 --> 00:19:42,400
ثم هذا هو الرمز المميز للمستخدم الأول مع اسم المستخدم Jogesh.

269
00:19:42,400 --> 00:19:46,100
لذلك، عندما أحاول حذف هذا التعليق،

270
00:19:46,100 --> 00:19:50,850
ستلاحظ أن التعليق تم حذفه الآن بنجاح.

271
00:19:50,850 --> 00:19:53,710
لذلك، كما ترون من الخطوات،

272
00:19:53,710 --> 00:19:57,830
يمكن حذف التعليق فقط من قبل المستخدم الذي أنشأ هذا التعليق.

273
00:19:57,830 --> 00:19:59,120
الآن، الخطوة التالية،

274
00:19:59,120 --> 00:20:02,345
عندما نقوم بعملية DELETE على الأطباق،

275
00:20:02,345 --> 00:20:07,120
رأينا في وقت سابق أنه إذا فعلنا عملية DELETE كمستخدم عادي،

276
00:20:07,120 --> 00:20:09,400
يمكنك الحصول على رسالة تقول،

277
00:20:09,400 --> 00:20:12,010
«أنت غير مأذون لتنفيذ هذه العملية!»

278
00:20:12,010 --> 00:20:16,670
لذلك، سأقوم بتغيير هذا الرمز المميز إلى الرمز المميز للمشرف ثم

279
00:20:16,670 --> 00:20:21,425
تظهر لك أن المشرف يمكنه إجراء عملية DELETE على الأطباق والوعاء.

280
00:20:21,425 --> 00:20:23,480
لذا، عند الدخول في هذا الطلب،

281
00:20:23,480 --> 00:20:30,550
دعني أغير الرمز المميز ليكون الرمز المميز لمستخدم المشرف.

282
00:20:30,550 --> 00:20:34,765
لذلك، عندما أقوم بإجراء عملية DELETE كمستخدم مشرف،

283
00:20:34,765 --> 00:20:37,375
ستلاحظ أن عملية DELETE

284
00:20:37,375 --> 00:20:41,905
ناجحة ثم ترد مرة أخرى مع الرسالة هنا.

285
00:20:41,905 --> 00:20:45,715
الآن، عندما أفعل GET على نقطة نهاية الأطباق،

286
00:20:45,715 --> 00:20:52,515
ستلاحظ أن عمليات GET تظهر أن أطباقي قد أفرغت.

287
00:20:52,515 --> 00:20:59,285
الآن، العملية الأخرى التي ستنفذها أيضًا في هذا الواجب،

288
00:20:59,285 --> 00:21:05,670
هي أنه يمكننا إجراء عملية GET على نقطة نهاية المستخدمين المائلة.

289
00:21:05,670 --> 00:21:09,285
لذلك، عند إجراء عملية GET على نقطة نهاية المستخدمين شرطة مائلة،

290
00:21:09,285 --> 00:21:12,690
ستلاحظ أنه إذا لم تكن مستخدمًا مفوضًا،

291
00:21:12,690 --> 00:21:16,450
فستقول أنك غير مأذون له بتنفيذ هذه العملية.

292
00:21:16,450 --> 00:21:20,850
لذا، فإن المضيف المحلي: 3000/المستخدمين/نقطة النهاية،

293
00:21:20,850 --> 00:21:27,355
فأنت الآن ستسمح بتنفيذ هذا فقط من قبل المشرف.

294
00:21:27,355 --> 00:21:29,265
لذلك، إذا كان المستخدم العادي،

295
00:21:29,265 --> 00:21:32,420
إذا قمت بتسجيل الدخول كمستخدم عادي مع رأس،

296
00:21:32,420 --> 00:21:36,510
فلن يسمح لك بتنفيذ هذه العملية.

297
00:21:36,510 --> 00:21:42,390
الآن، اسمحوا لي تغيير هذا الرمز المميز إلى الرمز المميز

298
00:21:42,390 --> 00:21:45,345
قبالة المشرف وبعد ذلك سترى أنه

299
00:21:45,345 --> 00:21:48,460
سيتم السماح للمشرف لتنفيذ هذه العملية.

300
00:21:48,460 --> 00:21:50,135
لذا، انتقل إلى GET،

301
00:21:50,135 --> 00:21:55,600
دعني أغير هذا الرمز المميز إلى الرمز المميز

302
00:21:55,600 --> 00:22:02,980
لمستخدم المشرف ثم عندما أقوم بإجراء عملية GET على ذلك، فإنه يعود.

303
00:22:02,980 --> 00:22:07,945
كما ترون، المستخدمين الثلاثة التي تم تسجيلها في النظام الخاص بي،

304
00:22:07,945 --> 00:22:11,015
فإنه يظهر رقم المستخدم واحد،

305
00:22:11,015 --> 00:22:13,950
رقم المستخدم اثنين، ورقم المستخدم ثلاثة.

306
00:22:13,950 --> 00:22:17,530
بالطبع، لاحظ أنه تتم إزالة التجزئة والملح،

307
00:22:17,530 --> 00:22:21,965
عندما يتم إرجاع الرسالة بواسطة جانب الخادم إلى جانب العميل.

308
00:22:21,965 --> 00:22:25,490
لذلك، لن يتم الكشف عن معلومات التجزئة والملح في الخارج.

309
00:22:25,490 --> 00:22:28,755
لذلك، سوف يعتني Mongos تلقائيًا

310
00:22:28,755 --> 00:22:32,580
بتصفية تلك المعلومات قبل أن يرسل معلومات المستخدم مرة أخرى.

311
00:22:32,580 --> 00:22:35,890
لذلك، لأنك لا ينبغي أن تكشف عن

312
00:22:35,890 --> 00:22:39,160
معلومات التجزئة والملح للعالم الخارجي.

313
00:22:39,160 --> 00:22:44,510
لذلك، هذه هي معلومات حسابات المستخدمين الثلاثة التي يتم إرجاعها.

314
00:22:44,510 --> 00:22:47,835
لذلك، يتم إرجاع هذا فقط إذا قمت بإجراء عملية GET

315
00:22:47,835 --> 00:22:51,900
على نقطة نهاية المستخدمين شرطة مائلة كمستخدم مشرف.

316
00:22:51,900 --> 00:22:56,295
إذا قمت بتنفيذ نفس الطلب مثل أي مستخدم آخر،

317
00:22:56,295 --> 00:22:58,055
فلن يكون ذلك مسموحًا به.

318
00:22:58,055 --> 00:23:01,065
لذلك، مرة أخرى سوف تحقق أولا،

319
00:23:01,065 --> 00:23:05,040
فيريفيوسر ثم تحقق من فيريفيادمين وفقط إذا كان المشرف،

320
00:23:05,040 --> 00:23:08,940
ثم هذه العملية يمكن أن يؤديها على هذه النقطة النهاية.

321
00:23:08,940 --> 00:23:15,535
لذا، هذه هي كل المهام المختلفة التي ستقوم بها كجزء من هذه المهمة.

322
00:23:15,535 --> 00:23:22,990
يتم توثيق تفاصيل كيفية القيام بذلك في تعليمات التعيين.

323
00:23:22,990 --> 00:23:27,875
لذلك، اقرأ التعليمات قبل المتابعة لإكمال المهمة الثالثة.

324
00:23:27,875 --> 00:23:32,380
استمتعي بإتمام المهمة الثالثة