1
00:00:03,710 --> 00:00:10,135
هذا هو الجزء الثاني من تمارين الدورات السريعة.

2
00:00:10,135 --> 00:00:12,320
لقد أكملنا الجزء الأول في وقت سابق،

3
00:00:12,320 --> 00:00:15,310
حيث أضفنا الدعم لجلسات

4
00:00:15,310 --> 00:00:20,340
Express، واستخدام جلسات Express كوسيلة لتتبع المستخدمين على جانب الخادم،

5
00:00:20,340 --> 00:00:24,160
والتعرف على الطلبات الواردة من المستخدمين.

6
00:00:24,160 --> 00:00:30,930
في هذا التمرين، لا نركز كثيرًا على الجلسات السريعة نفسها،

7
00:00:30,930 --> 00:00:36,605
ولكننا سننظر في طريقة لتوسيع خادم REST API السريع لدعم

8
00:00:36,605 --> 00:00:42,435
نموذج جديد لتسجيل المستخدمين ومصادقتهم.

9
00:00:42,435 --> 00:00:48,635
لذلك، سوف نقدم نموذج مستخدم جديد ومخطط في تطبيقنا.

10
00:00:48,635 --> 00:00:52,295
لدينا بالفعل مسار مستخدمي الخط المائل الذي

11
00:00:52,295 --> 00:00:57,290
قام المولد السريع بالفعل بتركيب جهاز توجيه المستخدم.

12
00:00:57,290 --> 00:01:00,035
لذلك، نحن ذاهبون للاستفادة من ذلك ومن ثم تحديث ذلك

13
00:01:00,035 --> 00:01:03,205
لدعم تسجيل المستخدمين الجدد،

14
00:01:03,205 --> 00:01:05,390
مصادقة مستخدم موجود،

15
00:01:05,390 --> 00:01:11,695
وأيضا تسجيل خروج مستخدم من موقع الخادم لدينا.

16
00:01:11,695 --> 00:01:17,915
لذا، سننظر إلى جلسات Express كوسيلة لتتبع المستخدمين بمجرد تسجيل دخول المستخدم،

17
00:01:17,915 --> 00:01:19,820
ثم عندما يقوم المستخدم بتسجيل الخروج،

18
00:01:19,820 --> 00:01:22,680
سيتم إزالة الجلسة من النظام.

19
00:01:22,680 --> 00:01:27,480
إذن، كيف يمكننا القيام بهذا التمديد في هذا التمرين؟

20
00:01:27,480 --> 00:01:29,700
دعنا نذهب ونكتشف ذلك

21
00:01:29,800 --> 00:01:35,485
استمرارًا في خادم REST API السريع،

22
00:01:35,485 --> 00:01:41,835
دعنا نذهب الآن إلى النماذج ونضيف ملفًا جديدًا باسم user.js.

23
00:01:41,835 --> 00:01:46,440
هذا هو الملف حيث سنقوم بإنشاء مخطط المستخدم والنموذج.

24
00:01:46,440 --> 00:01:51,405
سنقوم بإنشاء مخطط مستخدم بسيط يتتبع اسم المستخدم وكلمة المرور،

25
00:01:51,405 --> 00:01:55,520
وأيضًا علامة تم تعيينها للإشارة إلى

26
00:01:55,520 --> 00:01:59,540
ما إذا كان المستخدم مسؤولاً أو مستخدمًا عاديًا.

27
00:01:59,540 --> 00:02:03,660
لذا، هذه طريقة واحدة للتمييز بين أنواع المستخدمين المختلفة.

28
00:02:03,660 --> 00:02:07,210
لذلك، في هذا الملف،

29
00:02:07,210 --> 00:02:16,510
دعونا أولا تتطلب Mongoose لأننا إنشاء مخطط Mongoose،

30
00:02:16,510 --> 00:02:26,710
وبعد ذلك سنقوم بإنشاء مخطط يسمى مخطط Mongoose،

31
00:02:26,710 --> 00:02:29,720
وبعد ذلك سنقول مستخدم var.

32
00:02:29,720 --> 00:02:32,870
لذلك هذا هو مخطط المستخدم الذي سنقوم بإنشائه،

33
00:02:32,870 --> 00:02:38,150
وسنقول مخطط مستخدم جديد.

34
00:02:38,150 --> 00:02:42,740
سيتم تعريف مخطط المستخدم كما ذكرت للتو،

35
00:02:42,740 --> 00:02:47,705
مع ثلاثة حقول هنا تسمى اسم المستخدم

36
00:02:47,705 --> 00:02:55,755
الذي من الواضح أنه من سلسلة النوع،

37
00:02:55,755 --> 00:02:59,290
وهذا حقل مطلوب،

38
00:02:59,290 --> 00:03:03,975
وهذا حقل فريد.

39
00:03:03,975 --> 00:03:07,580
أنت لا تريد اثنين من المستخدمين مع نفس اسم المستخدم في النظام الخاص بك،

40
00:03:07,580 --> 00:03:12,810
لذلك نحن إنشاء اسم المستخدم ثم الحقل الثاني هو حقل كلمة المرور.

41
00:03:12,810 --> 00:03:15,259
الآن، بالطبع، يمكنك توسيع

42
00:03:15,259 --> 00:03:19,820
مخطط المستخدم هذا للسماح للمستخدم بتتبع ملفه الشخصي بالكامل،

43
00:03:19,820 --> 00:03:23,985
لكننا سنفعل ذلك في أحد التمارين اللاحقة، في الوقت الحالي،

44
00:03:23,985 --> 00:03:30,604
يتم التعرف على المستخدم داخل النظام ببساطة عن طريق اسم المستخدم وكلمة المرور.

45
00:03:30,604 --> 00:03:36,290
لذا، فإن كلمة المرور هي من سلسلة النوع ثم مطلوبة.

46
00:03:37,300 --> 00:03:44,320
يسمى الحقل الثالث الذي سأستخدمه المشرف.

47
00:03:44,320 --> 00:03:48,025
وبالتالي فإن المشرف هو من نوع Boolean،

48
00:03:48,025 --> 00:03:58,270
وسنقول خطأ الافتراضي.

49
00:03:58,270 --> 00:04:02,905
لذلك، افتراضيا عند إنشاء مستخدم، يتم إنشاء

50
00:04:02,905 --> 00:04:04,830
مستخدم جديد،

51
00:04:04,830 --> 00:04:06,855
سيتم تعيين علامة المشرف إلى false.

52
00:04:06,855 --> 00:04:09,925
يمكنك تعيينه بشكل صريح إلى true من داخل

53
00:04:09,925 --> 00:04:14,605
التعليمات البرمجية الخاصة بك لوضع علامة على مستخدم كمستخدم إداري.

54
00:04:14,605 --> 00:04:18,460
ربما يمكنك توفير امتيازات إضافية لمستخدم إداري،

55
00:04:18,460 --> 00:04:21,230
أو ربما السماح لمستخدم المسؤول بتنفيذ

56
00:04:21,230 --> 00:04:24,810
عمليات معينة لا يقوم المستخدمون العاديون بذلك.

57
00:04:24,810 --> 00:04:27,760
وسوف ننظر في ذلك في واحدة من التدريبات اللاحقة

58
00:04:27,760 --> 00:04:31,500
، في الوقت الحالي، وهذا هو مخطط المستخدم الذي أنشأنا،

59
00:04:31,500 --> 00:04:38,150
دعونا إنشاء وحدة من هذا وتصدير من

60
00:04:38,150 --> 00:04:47,075
هذه الوحدة نموذج النمس للمستخدم اسم.

61
00:04:47,075 --> 00:04:51,115
لذا، هذا هو نموذج Mongoose والمخطط هو

62
00:04:51,115 --> 00:04:55,840
مخطط المستخدم الذي حددناه قليلاً في وقت سابق.

63
00:04:55,840 --> 00:05:00,615
لذا، هذه هي الطريقة التي نحدد بها مخطط المستخدم الخاص بنا.

64
00:05:00,615 --> 00:05:03,770
لذا، الآن بعد أن قمنا بتعريف مخطط المستخدم لدينا،

65
00:05:03,770 --> 00:05:08,660
دعنا نذهب إلى جهاز التوجيه الذي تم إعداده بالفعل

66
00:05:08,660 --> 00:05:15,610
بواسطة مولد صريح عند إنشاء هذا التطبيق السريع.

67
00:05:15,610 --> 00:05:17,775
لذلك، إذا ذهبت إلى مجلد المسارات،

68
00:05:17,775 --> 00:05:20,890
سترى هذا الملف يسمى users.js.

69
00:05:20,890 --> 00:05:26,780
لذلك، سيتم تمديد هذا الملف users.js لإنشاء جهاز التوجيه.

70
00:05:26,780 --> 00:05:36,720
لذلك، هناك ما سأقوم به هو استيراد محلل الجسم،

71
00:05:41,510 --> 00:05:46,395
ومن ثم سيعلنون عن جهاز التوجيه السريع،

72
00:05:46,395 --> 00:05:50,145
وبعد ذلك سنقول أيضا استيراد

73
00:05:50,145 --> 00:05:57,100
مخطط المستخدم

74
00:05:57,100 --> 00:06:03,420
ونموذج من نماذج المستخدم،

75
00:06:03,950 --> 00:06:09,220
ثم لجهاز التوجيه السريع سنقول،

76
00:06:09,220 --> 00:06:13,380
جهاز التوجيه استخدام محلل الجسم.

77
00:06:16,190 --> 00:06:20,690
لذلك، الآن بعد أن أعلنا محلل الجسم هناك،

78
00:06:20,690 --> 00:06:23,650
ونحن في طريقنا إلى ترك هذا الجزء

79
00:06:23,650 --> 00:06:28,040
على هذا النحو، في وقت لاحق سنقوم بتعديل هذا للسماح

80
00:06:28,040 --> 00:06:30,470
للمسؤول لتكون قادرة على استرداد

81
00:06:30,470 --> 00:06:33,750
جميع المستخدمين المسجلين في النظام ولكن في الوقت الراهن،

82
00:06:33,750 --> 00:06:37,705
ونحن في طريقنا إلى ترك هذا الطريق على هذا النحو.

83
00:06:37,705 --> 00:06:40,500
سنضيف في عدد قليل من الطرق هنا،

84
00:06:40,500 --> 00:06:42,965
لذلك سنقول، «راوتر بوست».

85
00:06:42,965 --> 00:06:49,970
لذلك سوف ندعم عملية النشر على مسار يسمى الاشتراك وكما تتوقع،

86
00:06:49,970 --> 00:06:55,790
سيسمح مسار الاشتراك هذا للمستخدم بالتسجيل على النظام،

87
00:06:55,790 --> 00:07:04,920
لذلك سيدعم تسجيل المستخدم.

88
00:07:04,920 --> 00:07:08,355
لذا، نحن سَنَقُولُ، «rec، res، التالي.»

89
00:07:08,355 --> 00:07:16,090
وبالتالي فإن هذا سيكون تسجيل مشاركة جهاز التوجيه،

90
00:07:16,590 --> 00:07:23,410
لن يسمح بالطرق المتبقية في جزء نهاية الاشتراك.

91
00:07:23,410 --> 00:07:25,865
لذا، للوصول إلى هذا،

92
00:07:25,865 --> 00:07:31,420
نظرًا لأن جهاز التوجيه هذا هو الذي تم تركيبه على مستخدمي

93
00:07:31,420 --> 00:07:35,645
الخط المائل، فإننا نحدد نقطة النهاية

94
00:07:35,645 --> 00:07:41,765
هذه كشرطة مائلة للمستخدمين الاشتراك، وهذه هي نقطة النهاية التي سيتم استخدامها لتسجيل المستخدمين الجدد داخل النظام.

95
00:07:41,765 --> 00:07:45,080
لذا، فإن أول شيء سنقوم به هو استخدام

96
00:07:45,080 --> 00:07:53,300
طريقة المستخدم والتوقع هو أنه لكي يقوم المستخدم بالتسجيل،

97
00:07:53,300 --> 00:07:58,145
سيتم توفير اسم المستخدم وكلمة المرور كسلسلة JSON

98
00:07:58,145 --> 00:08:03,185
داخل نص طلب المشاركة الوارد.

99
00:08:03,185 --> 00:08:05,160
لذلك، من الجسم،

100
00:08:05,160 --> 00:08:09,200
لأن الجسم قد تم تحليله بالفعل من قبل محلل الجسم،

101
00:08:09,200 --> 00:08:10,370
لذلك من الجسم،

102
00:08:10,370 --> 00:08:13,920
وسوف تحقق أولا للتأكد من أن

103
00:08:13,920 --> 00:08:22,130
المستخدم مع اسم المستخدم هذا غير موجود داخل النظام.

104
00:08:22,130 --> 00:08:24,380
إذا كان المستخدم مع اسم المستخدم هذا موجودًا،

105
00:08:24,380 --> 00:08:26,900
فأنت تحاول تسجيل مستخدم مكرر

106
00:08:26,900 --> 00:08:29,715
ولا ينبغي السماح به في النظام.

107
00:08:29,715 --> 00:08:37,340
لذلك، سوف نقول، «المستخدمين العثور على واحد»، وبعد ذلك سنحاول العثور على ما إذا كان

108
00:08:37,340 --> 00:08:41,090
هناك مستخدم واحد مع اسم المستخدم الذي تم

109
00:08:41,090 --> 00:08:45,405
اختياره من قبل العميل الذي يحاول تسجيل مستخدم جديد.

110
00:08:45,405 --> 00:08:47,020
إذا كان المستخدم موجودًا بالفعل،

111
00:08:47,020 --> 00:08:51,850
فمن الواضح أنك لن تسمح للمستخدم الجديد بالتسجيل باستخدام نفس اسم المستخدم.

112
00:08:51,850 --> 00:08:55,665
لذلك، سوف نقول، «ثم المستخدم.»

113
00:08:55,665 --> 00:09:03,295
لذلك، سيؤدي ذلك إلى إرجاع المستخدم هنا وداخل حقل المستخدم هذا،

114
00:09:03,295 --> 00:09:09,080
ثم سنقوم بالتحقق من حقيقة ما إذا كان المستخدم موجودًا بالفعل،

115
00:09:09,080 --> 00:09:12,350
ثم اسمحوا لي بالقبض على الخطأ هنا.

116
00:09:12,350 --> 00:09:19,140
لذلك سوف نقول، «خطأ في الصيد»، ثم، «الخطأ التالي».

117
00:09:19,140 --> 00:09:26,160
لذلك، سنقوم فقط بتمرير ذلك إلى معالج الخطأ هناك.

118
00:09:26,160 --> 00:09:33,345
لذلك، إذا كان هذا البحث عن المستخدم بإرجاع حقل المستخدم،

119
00:09:33,345 --> 00:09:40,460
إذا كان المستخدم لا يساوي فارغة.

120
00:09:40,460 --> 00:09:45,170
لذلك، إذا كان المستخدم الذي يتم إرجاعه من قبل هذا البحث

121
00:09:45,170 --> 00:09:50,510
ليس فارغًا، فهذا يعني أن المستخدم مع اسم المستخدم المعطى موجود بالفعل،

122
00:09:50,510 --> 00:09:53,420
لذلك يجب ألا تسمح باشتراك مكرر.

123
00:09:53,420 --> 00:09:58,765
لذلك سنقول، «فار يخطئ خطأ جديد».

124
00:09:58,765 --> 00:10:09,075
وسنقول، «تغيير المستخدم. اسم المستخدم.»

125
00:10:09,075 --> 00:10:15,410
موجود بالفعل لذلك في الأساس،

126
00:10:15,410 --> 00:10:20,565
أنت تمنع مستخدم مكرر من الاشتراك ثم سنقول

127
00:10:20,565 --> 00:10:29,280
err.status 403 مقابل المحرمة ثم الخروج،

128
00:10:29,280 --> 00:10:33,735
استدعاء معالج الخطأ، الخطأ التالي.

129
00:10:33,735 --> 00:10:36,880
آخر، هذا يعني أن المستخدم غير موجود

130
00:10:36,880 --> 00:10:39,670
لذا يجب أن تسمح للمستخدم بتسجيل الخروج.

131
00:10:39,670 --> 00:10:41,950
لذلك، في الجزء الآخر،

132
00:10:41,950 --> 00:10:46,150
سوف نقول، عودة user.create ().

133
00:10:47,200 --> 00:10:56,165
سنقوم بإنشاء مستخدم جديد مع تعيين اسم المستخدم إلى req.body.username،

134
00:10:56,165 --> 00:11:02,555
ثم اسمحوا لي أن أضع هذا في السطر التالي بحيث يكون أكثر وضوحًا لك،

135
00:11:02,555 --> 00:11:09,620
وسنقول كلمة المرور: req.body.password.

136
00:11:09,620 --> 00:11:14,550
الآن، نحن نعلم بالفعل أن علامة المشرف بشكل افتراضي سيتم تعيينها إلى false،

137
00:11:14,550 --> 00:11:17,700
لذلك نحن ذاهبون إلى ترك الأمر على

138
00:11:17,730 --> 00:11:28,175
هذا النحو، وهذا سيسمح للمستخدم الجديد أن يتم التوقيع وعندما يتم تسجيل المستخدم الجديد،

139
00:11:28,175 --> 00:11:37,880
وهذا سيعود وعد وداخل «ثم» سوف نتعامل مع هذا الوعد هنا.

140
00:11:37,880 --> 00:11:41,460
لذلك، هذا سيعيد الوعد من

141
00:11:41,460 --> 00:11:45,625
هذا «ثم» وبعد ذلك سنتعامل معه في «ثم» المقبل هنا.

142
00:11:45,625 --> 00:12:02,120
سنقول بعد ذلك، Res.statusCode هو 200،

143
00:12:02,120 --> 00:12:10,640
Res.Setheader وسنقول تطبيق/json من نوع المحتوى

144
00:12:19,830 --> 00:12:38,000
وسنقول، res.json (الحالة: تسجيل ناجح)

145
00:12:42,960 --> 00:12:45,760
، وإذا كنت تريد،

146
00:12:45,760 --> 00:12:49,659
يمكننا تحميل المستخدم في

147
00:12:49,659 --> 00:12:58,270
رسالة الرد هذه هنا كخاصية في json.

148
00:13:02,790 --> 00:13:06,890
سوف يقول التسجيل بنجاح.

149
00:13:07,830 --> 00:13:14,950
ثم إذا كان هناك خطأ في

150
00:13:14,950 --> 00:13:22,790
هذه العملية سوف يقول «الخطأ التالي».

151
00:13:22,790 --> 00:13:25,200
لذلك سوف التعامل مع الخطأ.

152
00:13:25,440 --> 00:13:29,220
إذا لم يتم حل الوعد بنجاح،

153
00:13:29,220 --> 00:13:32,020
فسيتم التعامل معه من خلال ذلك. إذن هذا كل شيء

154
00:13:32,020 --> 00:13:36,150
حتى هنا، لدينا طريقة للمستخدم للاشتراك.

155
00:13:36,150 --> 00:13:38,280
لذلك، لكي يقوم المستخدم بالتسجيل،

156
00:13:38,280 --> 00:13:46,570
سيقوم المستخدم بعمل مشاركة على/users/signup وفي نص الرسالة،

157
00:13:46,570 --> 00:13:51,810
سيتضمن العميل سلسلة json

158
00:13:51,810 --> 00:13:57,760
مع خصائص اسم المستخدم وكلمة المرور في سلسلة json هذه.

159
00:13:57,760 --> 00:14:01,200
هذه هي الطريقة التي قمت بالتسجيل لمستخدم جديد.

160
00:14:01,200 --> 00:14:06,135
الآن، دعونا نرى كيف سنقوم بتسجيل الدخول للمستخدم.

161
00:14:06,135 --> 00:14:14,605
الآن، سوف نستمر في استخدام جلسات Express التي قمنا بها في وقت سابق لتتبع المستخدم.

162
00:14:14,605 --> 00:14:24,270
لذلك، لتسجيل المستخدم سوف يقول «router.post» على نقطة النهاية/تسجيل الدخول.

163
00:14:24,820 --> 00:14:29,370
حتى على نقطة النهاية/تسجيل الدخول،

164
00:14:32,280 --> 00:14:35,800
وسوف نفعل router.post.

165
00:14:35,800 --> 00:14:42,460
ونحن من الواضح بدلا من قول وظيفة،

166
00:14:42,460 --> 00:14:48,575
يمكنك استخدام وظيفة السهم هنا لrouter.post،

167
00:14:48,575 --> 00:14:50,780
وأنا ذاهب للقيام بنفس الشيء هنا.

168
00:14:50,780 --> 00:14:53,930
لقد حصلت مولعا وظائف الأسهم.

169
00:14:53,930 --> 00:14:57,125
لذلك، سنقوم بعمل وظيفة السهم هنا.

170
00:14:57,125 --> 00:15:00,080
لذلك لتسجيل الدخول، كيف يستمر تسجيل الدخول؟

171
00:15:00,080 --> 00:15:01,880
لذلك لتسجيل الدخول،

172
00:15:01,880 --> 00:15:10,850
ما سنفعله هو أننا سوف نذهب إلى ملف app.js ثم داخل هذا المصادقة،

173
00:15:11,760 --> 00:15:17,050
كنا نفعل ذلك الاشتراك للمستخدم هناك.

174
00:15:17,050 --> 00:15:20,315
لذا، ما سأفعله هو أنني سأقوم بنسخ

175
00:15:20,315 --> 00:15:25,730
هذا الأمر كله لأنني لن أفعل كل هذا على أية حال.

176
00:15:25,730 --> 00:15:32,970
لذلك، بدلا من ذلك اسمحوا لي أن نسخ على طول الطريق من هذه النقطة فصاعدا حتى req.session.user.

177
00:15:32,970 --> 00:15:36,925
لذلك، إذا كان جزء من req.session.user أنا ذاهب إلى نسخ،

178
00:15:36,925 --> 00:15:44,120
ومن ثم القادمة إلى users.js وتسجيل الدخول.

179
00:15:44,120 --> 00:15:47,305
هذا هو بالضبط كيف سأقوم بالمصادقة.

180
00:15:47,305 --> 00:15:51,025
لذلك سنقول إذا لم يكن req.session.user.

181
00:15:51,025 --> 00:15:55,965
وهذا يعني أن المستخدم لم يصادق نفسه بعد.

182
00:15:55,965 --> 00:15:59,420
ثم تتوقع المصادقة الأساسية

183
00:15:59,420 --> 00:16:02,780
كآلية للمستخدم لاستخدام للمصادقة.

184
00:16:02,780 --> 00:16:07,890
لذلك سنقول فار AuthHeader إذا! AuthHeader ثم سنقوم برفع الخطأ،

185
00:16:07,890 --> 00:16:17,760
وإلا فإننا سوف استرداد اسم المستخدم وكلمة المرور من الرأس.

186
00:16:17,760 --> 00:16:25,235
الآن، هنا كنا نفعل إذا كان اسم المستخدم يساوي المشرف وكلمة المرور تساوي كلمة المرور.

187
00:16:25,235 --> 00:16:30,535
ولكن الآن، ما سنقوم به هو أننا ذاهبون للبحث في

188
00:16:30,535 --> 00:16:36,695
قاعدة البيانات لمعرفة ما إذا كان هذا المستخدم معين موجود.

189
00:16:36,695 --> 00:16:39,595
لذلك، بدلا من القيام بذلك هنا،

190
00:16:39,595 --> 00:16:42,995
بدلا من القيام بذلك إذا اسم المستخدم وكلمة المرور،

191
00:16:42,995 --> 00:16:48,380
وسوف نقول، user.Findone

192
00:16:49,650 --> 00:16:56,020
وسنقول اسم المستخدم هو اسم المستخدم.

193
00:16:56,020 --> 00:17:00,730
لذلك هذه الخاصية تساوي اسم المستخدم هذا الذي قمنا باسترداده للتو

194
00:17:00,730 --> 00:17:06,820
وبعد ذلك سنقول ثم المستخدم.

195
00:17:09,770 --> 00:17:18,600
حتى داخل هذا «ثم».

196
00:17:18,600 --> 00:17:23,110
لذلك أنا ذاهب لنقل هذا الرمز داخل هذا «ثم» لأن

197
00:17:23,110 --> 00:17:28,395
الآن ما أنا ذاهب للتحقق من ذلك هو الآن بعد أن كنت قد استردت المستخدم،

198
00:17:28,395 --> 00:17:35,625
وأنا بحاجة للتحقق للتأكد من أن هذا المستخدم هو بالضبط ما أبحث.

199
00:17:35,625 --> 00:17:37,405
لذا في هذه المرحلة،

200
00:17:37,405 --> 00:17:42,485
سنقوم أولاً بالتحقق للتأكد من أن المستخدم ليس خاليًا.

201
00:17:42,485 --> 00:17:49,915
لذلك سنقول إذا كان المستخدم فارغًا.

202
00:17:49,915 --> 00:17:51,390
لذلك، إذا كان المستخدم فارغًا،

203
00:17:51,390 --> 00:17:55,930
فهذا يعني أننا لم نتمكن من العثور على مستخدم له اسم المستخدم المحدد هذا.

204
00:17:55,930 --> 00:17:59,860
لذلك، سيكون لديك لإرجاع خطأ هنا.

205
00:17:59,860 --> 00:18:04,540
لذلك اسمحوا لي فقط نسخ هذا الجزء ثم لصقه

206
00:18:04,540 --> 00:18:09,840
هنا وبعد ذلك سنعود قائلا فار خطأ جديد

207
00:18:09,840 --> 00:18:14,575
وسنقول اسم

208
00:18:14,575 --> 00:18:23,120
المستخدم مساحة المستخدم

209
00:18:23,580 --> 00:18:28,750
غير موجود.

210
00:18:28,750 --> 00:18:30,600
حتى في هذه الحالة،

211
00:18:30,600 --> 00:18:35,230
هذا المستخدم غير موجود لذلك أنا ذاهب فقط لإزالة هذا الجزء ومن

212
00:18:35,230 --> 00:18:41,840
ثم حالة الخطأ المقابلة ستكون 403 هنا.

213
00:18:42,450 --> 00:18:44,960
لذلك هذا هو الجزء الأول.

214
00:18:44,960 --> 00:18:55,000
إذا كان المستخدم فارغًا، فمن الواضح أننا سنخبر أن المستخدم غير موجود.

215
00:18:55,000 --> 00:19:03,780
الجزء الثاني نحن ذاهبون للتحقق هو آخر إذا كلمة مرور المستخدم.

216
00:19:03,780 --> 00:19:06,800
مما يعني أن المستخدم موجود في هذه المرحلة.

217
00:19:06,800 --> 00:19:12,420
لذا، فإن الاختيار الثاني الذي سنفعله هو أن كلمة مرور المستخدم لا

218
00:19:12,420 --> 00:19:22,330
تساوي كلمة المرور بعد ذلك.

219
00:19:22,330 --> 00:19:25,090
نحن بحاجة مرة أخرى إلى الإشارة إلى الخطأ هناك.

220
00:19:25,090 --> 00:19:28,820
لذلك فإن الخطأ يقول،

221
00:19:29,790 --> 00:19:34,570
في هذه الحالة، سنقول

222
00:19:34,570 --> 00:19:41,390
«كلمة المرور الخاصة بك غير صحيحة».

223
00:19:41,390 --> 00:19:44,085
لذلك هذا هو الجزء الثاني هنا.

224
00:19:44,085 --> 00:19:49,650
لذلك كلمة المرور الخاصة بك غير صحيحة ثم الجزء الأخير.

225
00:19:49,650 --> 00:19:52,515
سنقول «آخر».

226
00:19:52,515 --> 00:19:59,755
لذلك اسمحوا لي أن المسافة البادئة هذا الرمز.

227
00:19:59,755 --> 00:20:05,775
لذلك إذا كان

228
00:20:05,775 --> 00:20:15,815
user.user.username هو اسم المستخدم الذي يجب أن يكون صحيحًا في هذه الحالة

229
00:20:15,815 --> 00:20:17,990
ثم الجزء الثاني،

230
00:20:17,990 --> 00:20:27,620
user.password يساوي كلمة المرور التي من الواضح أيضًا أنها يجب أن تكون صحيحة في هذه المرحلة.

231
00:20:27,620 --> 00:20:29,720
ولكن على أي حال،

232
00:20:29,720 --> 00:20:38,885
أنا ذاهب للتحقق من هذه المسألة هنا وهذا آخر لن يحدث على الإطلاق في هذه الحالة.

233
00:20:38,885 --> 00:20:41,695
لذلك، بحلول الوقت الذي تصل فيه إلى هذه النقطة،

234
00:20:41,695 --> 00:20:45,410
يجب أن يكون اسم المستخدم

235
00:20:45,410 --> 00:20:48,980
هو نفسه اسم المستخدم وكلمة المرور يجب أن تكون هي نفسها كلمة المرور،

236
00:20:48,980 --> 00:20:55,240
ولكن في أي حال أضع في الاختيار المزدوج عند هذه النقطة فقط للتأكد بشكل مضاعف.

237
00:20:55,240 --> 00:20:56,590
ثم في هذه الحالة،

238
00:20:56,590 --> 00:21:02,765
ثم سنقول تمت مصادقة req.session.user.

239
00:21:02,765 --> 00:21:05,440
لذلك، سنقوم بتعيين هذا إلى مصادقة

240
00:21:05,440 --> 00:21:16,480
وأيضا هذا واحد، وسوف نقول

241
00:21:16,480 --> 00:21:18,660
res.StatusCode هو 200.

242
00:21:18,660 --> 00:21:21,870
لذلك تمكنا بنجاح من مصادقة المستخدم.

243
00:21:21,870 --> 00:21:29,030
لذا، سنقول Res.statusCode هو 200 ثم سنقول Res.Setheader

244
00:21:30,540 --> 00:21:43,690
نوع المحتوى عادي و

245
00:21:43,690 --> 00:21:51,500
res.end سنقوم ببساطة بإرسال رسالة تقول «أنت مصادق».

246
00:21:53,700 --> 00:22:00,825
هذا كل شيء لذلك، وهذا يغطي الجزء ثم من المستخدم فيندون.

247
00:22:00,825 --> 00:22:05,360
لذا أولاً، نتحقق من أنه إذا كان المستخدم فارغًا،

248
00:22:05,360 --> 00:22:07,410
فهذا يعني أننا لم نتمكن من العثور على المستخدم،

249
00:22:07,410 --> 00:22:12,025
لذلك من الواضح أننا نعيد خطأ يقول أن اسم المستخدم غير موجود.

250
00:22:12,025 --> 00:22:15,195
إذا كانت كلمة مرور المستخدم لا تتطابق مع كلمة المرور،

251
00:22:15,195 --> 00:22:16,450
لذلك في هذه المرحلة،

252
00:22:16,450 --> 00:22:19,150
المستخدم موجود ولكن كلمة المرور لم تتطابق، لذلك سنقول،

253
00:22:19,150 --> 00:22:22,640
«كلمة المرور الخاصة بك غير صحيحة»، وبعد ذلك، أخيرا،

254
00:22:22,640 --> 00:22:29,050
نصل إلى هذه النقطة ثم اسم المستخدم وكلمة المرور يجب أن يتم تحديد بشكل صحيح.

255
00:22:29,330 --> 00:22:35,780
على الرغم من أنني لست بحاجة إلى هذا الاختيار ولكن أنا فقط وضعت هناك في مكان وبعد ذلك في هذه المرحلة،

256
00:22:35,780 --> 00:22:38,680
وسوف تعيين req.session.user لمصادقة

257
00:22:38,680 --> 00:22:41,830
عليه ثم تعيين رمز الحالة إلى 200 مما يعني أنك

258
00:22:41,830 --> 00:22:48,880
تمكنت بنجاح من مصادقة المستخدم ومن ثم يمكنك الانتهاء عند هذه النقطة.

259
00:22:48,880 --> 00:22:51,490
لأن هذا هو ثم،

260
00:22:51,490 --> 00:22:54,685
وسوف أضع في الصيد في هذه المرحلة،

261
00:22:54,685 --> 00:23:03,845
لذلك سنقول خطأ الصيد وإذا حدث الخطأ،

262
00:23:03,845 --> 00:23:09,130
ثم أنا ببساطة تمرير الخطأ

263
00:23:09,130 --> 00:23:14,560
إلى التالي

264
00:23:14,560 --> 00:23:20,090
بحيث معالج الخطأ سوف تكون قادرة على التعامل مع الخطأ بشكل مناسب.

265
00:23:20,090 --> 00:23:24,415
بحيث ينتهي قبالة هذا المستخدم فيندون.

266
00:23:24,415 --> 00:23:31,020
الآن، هذا هو الحال عندما لم يتم تعيين req.session.user.

267
00:23:31,020 --> 00:23:32,905
إذا تم تعيين ذلك بالفعل،

268
00:23:32,905 --> 00:23:38,095
فهذا يعني أن المستخدم قد قام بتسجيل الدخول بالفعل.

269
00:23:38,095 --> 00:23:40,630
حتى في هذه الحالة،

270
00:23:40,630 --> 00:23:50,650
الجزء الآخر هنا يتعامل مع الوضع قائلا أننا سنقوم بتعيين

271
00:23:50,650 --> 00:23:52,660
StatusCode إلى 200

272
00:23:52,660 --> 00:24:12,205
ونوع المحتوى إلى نص/عادي وبعد ذلك سنقول،

273
00:24:12,205 --> 00:24:17,680
«أنت مصادق بالفعل».

274
00:24:17,680 --> 00:24:21,910
لذا، إذا وصلت إلى هذا الجزء الآخر،

275
00:24:22,690 --> 00:24:29,060
فستأتي إلى هنا لأن req.session.user ليس فارغًا بالفعل،

276
00:24:29,060 --> 00:24:32,150
مما يعني أن المستخدم قد تمت مصادقته بالفعل،

277
00:24:32,150 --> 00:24:34,995
مما يعني أنه عند الوصول إلى هذه النقطة،

278
00:24:34,995 --> 00:24:38,200
فقد قام المستخدم بتسجيل الدخول بالفعل في وقت سابق،

279
00:24:38,200 --> 00:24:41,100
لذلك لا تحتاج إلى التحقق.

280
00:24:41,100 --> 00:24:42,220
لذلك سوف تقول ببساطة،

281
00:24:42,220 --> 00:24:46,270
«أنت مصادق بالفعل»، ثم تنتهي في هذه المرحلة.

282
00:24:46,270 --> 00:24:54,975
حسناً حتى الآن، فإن الطريقة الأخيرة التي سنقوم بتنفيذها هي لتسجيل خروج المستخدم.

283
00:24:54,975 --> 00:24:59,180
لذلك، سنقوم بعمل جهاز توجيه. get على/تسجيل الخروج.

284
00:24:59,180 --> 00:25:02,170
يجب أن تتساءل لماذا نفعل الحصول

285
00:25:02,170 --> 00:25:07,000
على الخروج بدلا من وظيفة التي فعلناها على تسجيل الدخول?

286
00:25:07,000 --> 00:25:11,090
عند تسجيل الدخول، تحتاج إلى تقديم اسم المستخدم وكلمة المرور.

287
00:25:11,090 --> 00:25:14,900
لتسجيل الخروج، يمكنك ببساطة تسجيل الخروج من النظام،

288
00:25:14,900 --> 00:25:17,590
لذلك لا تحتاج إلى توفير أي معلومات إضافية لأن

289
00:25:17,590 --> 00:25:20,910
الخادم يتبعك بالفعل استنادًا إلى

290
00:25:20,910 --> 00:25:30,665
معرف الجلسة الخاص بك وداخل ملف تعريف ارتباط الجلسة هذا هنا.

291
00:25:30,665 --> 00:25:32,620
لذلك، هذا هو السبب في أننا لا

292
00:25:32,620 --> 00:25:38,890
نحتاج صراحة إلى إرسال أي معلومات إضافية في نص الرسالة.

293
00:25:38,890 --> 00:25:46,120
لذلك سنقول إذا req.session مما يعني أن الجلسة يجب أن تكون موجودة

294
00:25:46,120 --> 00:25:50,070
، وإلا، فأنت تحاول تسجيل خروج مستخدم لم يسجل الدخول.

295
00:25:50,070 --> 00:25:52,280
لذا هذا ليس منطقياً

296
00:25:52,280 --> 00:25:57,490
الآن، توفر الجلسة نفسها هذه الطريقة

297
00:25:57,490 --> 00:26:03,415
تسمى التدمير وعند استدعاء طريقة التدمير،

298
00:26:03,415 --> 00:26:07,520
يتم تدمير الجلسة وإزالة المعلومات

299
00:26:07,520 --> 00:26:12,945
من جانب الخادم المتعلقة بهذه الجلسة.

300
00:26:12,945 --> 00:26:16,970
لذلك، مما يعني أنه إذا حاول العميل إرسال

301
00:26:16,970 --> 00:26:19,190
معلومات الجلسة مرة أخرى التي يتم تخزينها في شكل

302
00:26:19,190 --> 00:26:21,430
ملف تعريف ارتباط موقّع على جانب العميل،

303
00:26:21,430 --> 00:26:22,640
فسيكون ذلك غير صالح.

304
00:26:22,640 --> 00:26:27,870
لذلك نحن بحاجة إلى طريقة لحذف ملف تعريف الارتباط الذي يتم تخزينه على جانب العميل.

305
00:26:27,870 --> 00:26:31,110
الآن، ستزيل هذه العملية

306
00:26:31,110 --> 00:26:36,805
معلومات جلسة العمل من جانب الخادم بحيث لم تعد جلسة العمل صالحة.

307
00:26:36,805 --> 00:26:38,060
لذا، في هذه المرحلة،

308
00:26:38,060 --> 00:26:45,115
سنقول req.session.destroy وبعد ذلك سنقول، Res.ClearCookie.

309
00:26:45,115 --> 00:26:49,640
لذا فإن ClearCookie هي طريقة لطلب العميل

310
00:26:49,640 --> 00:26:54,875
إزالة ملف تعريف الارتباط واسم ملف تعريف الارتباط هو معرف الجلسة.

311
00:26:54,875 --> 00:26:56,630
لذلك، في التمرين السابق،

312
00:26:56,630 --> 00:27:00,910
رأينا أن ملف تعريف الارتباط تم تخزينه باسم معرف الجلسة على جانب العميل.

313
00:27:00,910 --> 00:27:05,430
لذلك نحن نطلب من العميل حذف ملف تعريف الارتباط هذا من

314
00:27:05,430 --> 00:27:10,935
جانب العميل في رسالة الرد ثم سنقول،

315
00:27:10,935 --> 00:27:16,835
res.redirect وسنقوم بإعادة توجيهه إلى الصفحة الرئيسية هنا.

316
00:27:16,835 --> 00:27:21,540
لذلك، هذه طريقة لإعادة توجيه المستخدم لإدخال صفحته القياسية،

317
00:27:21,540 --> 00:27:24,790
لذلك على سبيل المثال، الصفحة الرئيسية للتطبيق الخاص بك.

318
00:27:24,790 --> 00:27:31,090
لذا، هذه هي الطريقة التي تتعامل بها مع تسجيل الخروج من النظام.

319
00:27:31,090 --> 00:27:33,200
إذا لم يكن req.session موجودًا،

320
00:27:33,200 --> 00:27:35,380
فهذا يعني أنك لم تقم بتسجيل الدخول،

321
00:27:35,380 --> 00:27:37,310
لذلك سيتعين علينا إنشاء خطأ.

322
00:27:37,310 --> 00:27:38,945
لذلك سنقول var err،

323
00:27:38,945 --> 00:27:46,370
خطأ جديد، «لم تقم بتسجيل الدخول»،

324
00:27:47,100 --> 00:27:52,615
وسنقوم بتعيين حالة الخطأ إلى 403،

325
00:27:52,615 --> 00:27:54,760
هذه عملية محظورة

326
00:27:54,760 --> 00:28:01,060
ثم تولد الخطأ إلى معالج الخطأ، هذا كل شيء.

327
00:28:01,060 --> 00:28:08,830
حتى الآن، ترى أننا قمنا بتوسيع جهاز التوجيه الخاص بالمستخدم لدعم ثلاث نقاط نهاية جديدة،

328
00:28:08,830 --> 00:28:13,330
نقطة نهاية الاشتراك التي تسمح للمستخدم بالتسجيل،

329
00:28:13,330 --> 00:28:17,785
ونقطة نهاية تسجيل الدخول التي تسمح للمستخدم تسجيل الدخول،

330
00:28:17,785 --> 00:28:24,730
ثم نقطة نهاية الخروج التي تسمح للمستخدم تسجيل الدخول لتسجيل الخروج من النظام.

331
00:28:24,730 --> 00:28:26,970
في عملية تسجيل الخروج،

332
00:28:26,970 --> 00:28:29,340
كنت تدمير جلسة العمل على جانب الخادم،

333
00:28:29,340 --> 00:28:31,890
وكنت أيضا مسح ملف تعريف الارتباط على جانب العميل،

334
00:28:31,890 --> 00:28:40,350
بحيث لا يمكن استخدام العميل في جلسة منتهية الصلاحية لمحاولة الاتصال بهذا الخادم.

335
00:28:40,350 --> 00:28:43,480
تصحيح بسيط واحد في users.js،

336
00:28:43,480 --> 00:28:49,225
يجب أن يكون هذا var يتطلب المستخدم.. /النموذج/المستخدم،

337
00:28:49,225 --> 00:28:58,095
أذكر أن ملف users.js في مجلد المسارات ثم

338
00:28:58,095 --> 00:29:01,130
ملف user.js

339
00:29:01,130 --> 00:29:07,440
في مجلد النماذج الذي هو أعلى مستوى ثم في مجلد النماذج.

340
00:29:07,440 --> 00:29:11,620
لذا، هذا يَجِبُ أَنْ يَكُونَ.. /النماذج/المستخدم،

341
00:29:11,620 --> 00:29:15,655
لذلك جعل هذا التصحيح الطفيف، هذا كل شيء.

342
00:29:15,655 --> 00:29:19,040
لقد قمنا بتعديل ملف users.js،

343
00:29:19,040 --> 00:29:23,690
والآن آخر شيء نحتاج إلى القيام به هو الذهاب وإصلاح ملف app.js.

344
00:29:23,690 --> 00:29:25,965
في ملف app.js التطبيق،

345
00:29:25,965 --> 00:29:29,520
إذا قمت بتصفح ملف app.js،

346
00:29:29,520 --> 00:29:31,160
سترى أن لدينا

347
00:29:31,160 --> 00:29:37,240
هذا الفهرس المائل هنا وشرطة مائلة للمستخدمين هنا بعد المصادقة.

348
00:29:37,240 --> 00:29:43,360
الآن، لن يعمل هذا بالنسبة لنا لأنه إذا كنت بحاجة إلى التسجيل،

349
00:29:43,360 --> 00:29:49,140
فسيقوم المستخدم بالتسجيل وتسجيل الدخول قبل تأكيد التفويض،

350
00:29:49,140 --> 00:29:54,910
على أي حال إذا كان التسجيل وتسجيل الدخول لعملية التسجيل،

351
00:29:54,910 --> 00:30:04,295
لذلك سأقوم بنقل هذه إلى ما يصل قبل خطوة المصادقة هنا.

352
00:30:04,295 --> 00:30:09,280
لذا، نحن ذاهبون لنقل هذا إلى هذا الموقع.

353
00:30:09,280 --> 00:30:15,430
وبالتالي، يمكن للمستخدم الوارد الوصول إلى ملف الفهرس

354
00:30:15,430 --> 00:30:21,589
في الخط المائل وأيضا الوصول إلى نقطة نهاية المستخدمين دون مصادقتها،

355
00:30:21,589 --> 00:30:23,205
ولكن أي نقطة نهاية أخرى،

356
00:30:23,205 --> 00:30:25,400
يجب مصادقة المستخدم،

357
00:30:25,400 --> 00:30:28,665
لذلك هذه هي الطريقة التي قمنا بإعداد هذا.

358
00:30:28,665 --> 00:30:32,375
داخل مصادقة الدالة، سنقول،

359
00:30:32,375 --> 00:30:40,695
«إذا لم يكن req.session.user»، ثم لاحظ أن هذا المكان،

360
00:30:40,695 --> 00:30:47,980
ونحن لن نسمح للمستخدم أن يأتي هنا دون المستخدم بعد تسجيل الدخول.

361
00:30:47,980 --> 00:30:50,450
لذلك، إذا لم يكن req.session.user،

362
00:30:50,450 --> 00:30:55,170
فإننا ببساطة نقول أنك غير مصادق.

363
00:31:03,600 --> 00:31:09,330
يجب إجراء هذه المصادقة باستخدام طريقة تسجيل الدخول هنا.

364
00:31:09,330 --> 00:31:13,510
لذلك، أنا ذاهب لإزالة هذا الجزء كله هنا.

365
00:31:17,340 --> 00:31:22,285
لذا، سنقول، إن لم يكن req.session.user،

366
00:31:22,285 --> 00:31:28,670
سنقول أنك لم تتم مصادقتك، ولذا سيكون علينا إرسال صورة ثلاثة هنا،

367
00:31:28,670 --> 00:31:31,560
مما يعني أنه يجب ألا ينزل إلى هذه النقطة على

368
00:31:31,560 --> 00:31:34,785
الإطلاق دون تسجيل دخول المستخدم.

369
00:31:34,785 --> 00:31:37,575
لذا، سنقول أنك غير مصدق.

370
00:31:37,575 --> 00:31:41,990
تذكر أنك تحتاج إلى مصادقة نفسك عن طريق إجراء POST

371
00:31:41,990 --> 00:31:47,120
على شرطة مائلة المستخدمين نقطة نهاية تسجيل الدخول.

372
00:31:47,120 --> 00:31:50,930
لذلك سنقول أنك لم تتم مصادقتك، وإلا،

373
00:31:50,930 --> 00:31:56,175
إذا كان req.session.user يساوي،

374
00:31:56,175 --> 00:32:01,720
تذكر أنه في وظيفة تسجيل الدخول في

375
00:32:01,720 --> 00:32:07,780
users.js قمنا بتعيين مستخدم الجلسة التالية إلى السلسلة التي تمت مصادقتها.

376
00:32:07,780 --> 00:32:10,055
لذا، هذا ما سنقوم بالتحقق منه.

377
00:32:10,055 --> 00:32:14,355
سنقول، إذا تمت مصادقة req.session.user،

378
00:32:14,355 --> 00:32:21,955
فسنقول بعد ذلك، وإلا لم تتم مصادقتك مرة أخرى.

379
00:32:21,955 --> 00:32:31,990
ثم سنرسل رسالة محرمة هذا هو

380
00:32:31,990 --> 00:32:33,995
لذلك، مع هذا التحديث،

381
00:32:33,995 --> 00:32:36,375
ملف app.js الخاص بي جاهز أيضا.

382
00:32:36,375 --> 00:32:38,590
الآن، بعد إجراء هذه التحديثات،

383
00:32:38,590 --> 00:32:42,470
دعنا نذهب والتحقق من كيفية عمل تطبيقنا الآن.

384
00:32:42,470 --> 00:32:44,350
الذهاب إلى المحطة الطرفية،

385
00:32:44,350 --> 00:32:49,655
إذا كان الخادم الخاص بك قيد التشغيل، ثم قم بإعادة تشغيل الخادم الخاص بك.

386
00:32:49,655 --> 00:32:51,600
الخادم الخاص بي لا يعمل في الوقت الحالي،

387
00:32:51,600 --> 00:32:53,405
لذلك سأقول بداية npm،

388
00:32:53,405 --> 00:32:56,440
ويجب أن يكون خادمي قيد التشغيل.

389
00:32:56,440 --> 00:33:00,540
دعونا نرى الآن كيف سنصل إلى الخادم.

390
00:33:00,540 --> 00:33:04,150
الذهاب إلى ساعي البريد، اسمحوا لي أن أفعل GET على

391
00:33:04,150 --> 00:33:07,290
localhost: 3000/أطباق وبعد ذلك سترى على الفور

392
00:33:07,290 --> 00:33:10,375
أنه يشكو قائلا لم يتم مصادقتها.

393
00:33:10,375 --> 00:33:13,095
من الواضح أنني لست مصدقة هنا

394
00:33:13,095 --> 00:33:19,560
اسمحوا لي أن أحاول الوصول فقط إلى المضيف المحلي: 3000 وسترى

395
00:33:19,560 --> 00:33:22,625
أن، هذا الجذر متاح لنا.

396
00:33:22,625 --> 00:33:29,850
الآن، بالطبع، نريد أولاً تسجيل مستخدم ثم تسجيل الدخول

397
00:33:29,850 --> 00:33:37,745
كمستخدم ثم الوصول بعد ذلك إلى بقية نقاط نهاية REST API.

398
00:33:37,745 --> 00:33:40,480
لذلك، أولا، اسمحوا لي تسجيل مستخدم.

399
00:33:40,480 --> 00:33:41,925
لتسجيل المستخدم،

400
00:33:41,925 --> 00:33:51,410
أحتاج إلى القيام بوست إلى المضيف المحلي: 3000/المستخدم/الاشتراك.

401
00:33:53,700 --> 00:33:57,710
بالنسبة إلى رسالة POST هذه،

402
00:33:57,930 --> 00:34:01,635
في نص الرسالة،

403
00:34:01,635 --> 00:34:07,860
أحتاج إلى تضمين

404
00:34:07,860 --> 00:34:15,080
سلسلة JSON مع اسم المستخدم في نص الرسالة.

405
00:34:15,080 --> 00:34:19,390
لذلك، اسمحوا لي تسجيل الدخول

406
00:34:19,390 --> 00:34:27,770
نفسي وبعد ذلك سوف مجرد استخدام كلمة المرور ككلمة مرور.

407
00:34:28,810 --> 00:34:31,835
هذا تسجيل صالح.

408
00:34:31,835 --> 00:34:35,505
لذلك، عندما أقوم بالتسجيل كمستخدم

409
00:34:35,505 --> 00:34:42,150
بهذه المعلومات في شكل سلسلة JSON المضمنة في نص الرسالة،

410
00:34:42,150 --> 00:34:47,590
دعني أرى أن الرأس يحتوي الآن على تطبيق نوع المحتوى،

411
00:34:47,590 --> 00:34:50,440
JSON لأنني قمت بإعداد JSON في نص

412
00:34:50,440 --> 00:34:54,660
الرسالة ثم أرسل POST إلى الاشتراك.

413
00:34:54,660 --> 00:34:57,175
ثم عندما أرسل بوست إلى الاشتراك،

414
00:34:57,175 --> 00:35:02,460
سترى على الفور ما يتم إرجاعه من قبل الخادم هنا.

415
00:35:02,460 --> 00:35:05,630
لذلك، ترى أن الخادم قد عاد قائلا،

416
00:35:05,630 --> 00:35:10,205
«تسجيل ناجح»

417
00:35:10,205 --> 00:35:13,485
ونفسه، فإنه يعطيني تفاصيل المستخدم هنا.

418
00:35:13,485 --> 00:35:19,340
لذا، هذا هو سجل موجود في MongoDB الخاص بي

419
00:35:19,340 --> 00:35:25,090
ولاحظ أن نوع النموذج هو نوع نموذج المستخدم الذي قمنا بإعداده.

420
00:35:25,090 --> 00:35:28,300
لذلك، لدينا اسم المستخدم وكلمة المرور

421
00:35:28,300 --> 00:35:33,535
ويتم تعيين علامة المشرف كما ترون إلى false افتراضيا.

422
00:35:33,535 --> 00:35:37,285
بمجرد تسجيل المستخدم،

423
00:35:37,285 --> 00:35:40,370
أصبح هذا المستخدم مستخدمًا صالحًا.

424
00:35:40,370 --> 00:35:45,640
لذلك، اسمحوا لي أن أحاول مرة أخرى بوست نفس المستخدم ونرى ما يحدث.

425
00:35:45,640 --> 00:35:48,935
لذلك، عندما أقوم بنشر نفس المستخدم بوضوح،

426
00:35:48,935 --> 00:35:50,385
هناك من جانب الخادم،

427
00:35:50,385 --> 00:35:52,840
فإنه يرد قائلا إن هذا المستخدم موجود بالفعل.

428
00:35:52,840 --> 00:35:58,480
لذلك، يمكنك أن ترى أننا قمنا بإعداد إجراء الاشتراك لدينا لعدم

429
00:35:58,480 --> 00:36:04,580
السماح للمستخدم بتكرار التسجيل مع نفس معرف المستخدم.

430
00:36:04,580 --> 00:36:07,135
حسناً لذلك، هذا هو الجزء الثاني.

431
00:36:07,135 --> 00:36:13,570
الآن، دعونا نفعل تسجيل الدخول للمستخدم.

432
00:36:13,570 --> 00:36:15,770
للقيام بتسجيل الدخول للمستخدم،

433
00:36:15,770 --> 00:36:20,400
اسمحوا لي إزالة نوع المحتوى وبعد ذلك سوف أيضا

434
00:36:20,400 --> 00:36:25,440
إزالة الجسم بسبب تسجيل الدخول، وهذا غير مطلوب.

435
00:36:25,440 --> 00:36:28,200
لذلك، لا أقوم بملء أي شيء

436
00:36:28,200 --> 00:36:31,790
في الرأس ثم حاول تسجيل الدخول وعندما حاولت تسجيل الدخول،

437
00:36:31,790 --> 00:36:34,805
فإنه يرد مرة أخرى قائلا أنك غير مصادق.

438
00:36:34,805 --> 00:36:36,175
أنت غير مصرح به

439
00:36:36,175 --> 00:36:39,595
الآن، أنا بحاجة لتسجيل نفسي في.

440
00:36:39,595 --> 00:36:42,940
لذلك، هذا هو المكان الذي يمكنني استخدام المصادقة الأساسية.

441
00:36:42,940 --> 00:36:46,240
لذا، في المصادقة الأساسية،

442
00:36:46,240 --> 00:36:51,170
سأقوم فقط بكتابة اسم المستخدم وكلمة

443
00:36:51,170 --> 00:36:56,575
المرور الخاصة بي التي قمت بتسجيلها للتو في الخطوة السابقة ثم قم بتحديث طلبي،

444
00:36:56,575 --> 00:37:00,060
ثم قم بإجراء POST على تسجيل الدخول.

445
00:37:00,060 --> 00:37:02,400
لذلك، عندما أفعل بوست على تسجيل الدخول،

446
00:37:02,400 --> 00:37:06,935
ترى أن الخادم يرد قائلا، «أنت مصادق».

447
00:37:06,935 --> 00:37:08,740
لذلك، في هذه المرحلة،

448
00:37:08,740 --> 00:37:11,400
يمكنني تنفيذ

449
00:37:11,400 --> 00:37:16,115
طلبات GET و PUT و POST و DELETE على جميع نقاط النهاية الأخرى.

450
00:37:16,115 --> 00:37:26,370
لذلك، في هذه المرحلة، إذا قمت بعمل GET على نقطة نهاية الأطباق،

451
00:37:28,760 --> 00:37:32,675
سترى أن هذا يعيد

452
00:37:32,675 --> 00:37:39,160
الحقل الفارغ لأن قاعدة البيانات الخاصة بي فارغة حاليًا في الوقت الحالي.

453
00:37:39,160 --> 00:37:44,370
اسمحوا لي أن مسح التفويض وأيضا من رأس إزالة

454
00:37:44,370 --> 00:37:49,575
التفويض ثم القيام GET وانها مربع الأدوات على ما يرام.

455
00:37:49,575 --> 00:37:52,480
لذلك، يمكنك أن ترى أنني الآن قادرة على

456
00:37:52,480 --> 00:37:56,065
الوصول إلى نقاط النهاية لأنني قمت بتسجيل نفسي في.

457
00:37:56,065 --> 00:38:00,040
حتى الآن، اسمحوا لي أن القيام بتسجيل الخروج من المستخدم.

458
00:38:00,040 --> 00:38:05,910
لذلك، سنقول، المضيف المحلي: 3000 وتسجيل الخروج.

459
00:38:05,910 --> 00:38:08,875
لاحظ أيضًا أنه في ملفات تعريف

460
00:38:08,875 --> 00:38:12,290
الارتباط، تم إعداد ملف تعريف ارتباط في معرف الجلسة هناك.

461
00:38:12,290 --> 00:38:17,080
لذلك، ملف تعريف الارتباط هذا موجود على موقع العميل الخاص بي.

462
00:38:17,080 --> 00:38:22,715
حتى الآن، اسمحوا لي تسجيل نفسي من خلال قول جيت لوكالهوست: 3000/المستخدمين/تسجيل الخروج.

463
00:38:22,715 --> 00:38:26,580
لذلك، عندما أقوم بتسجيل الخروج من المستخدم،

464
00:38:26,580 --> 00:38:29,765
سترى على الفور أنني أعيد

465
00:38:29,765 --> 00:38:37,830
توجيهي إلى هذا المضيف المحلي: 3000 نقطة نهاية وأيضا لاحظ أن ملف تعريف الارتباط قد ذهب.

466
00:38:37,830 --> 00:38:40,140
لذلك، عندما أنظر إلى ملفات تعريف الارتباط،

467
00:38:40,140 --> 00:38:42,040
ترى أن المضيف المحلي،

468
00:38:42,040 --> 00:38:46,470
فقد ملف تعريف الارتباط لأنه من جانب الخادم الخاص بي عندما أقوم بتسجيل الخروج

469
00:38:46,470 --> 00:38:51,495
فإنه يرسل ملف تعريف ارتباط واضح إلى جانب العميل وبالتالي فقد ملف تعريف الارتباط.

470
00:38:51,495 --> 00:38:54,555
الآن، إذا حاولت إجراء GET

471
00:38:54,555 --> 00:39:02,480
على المضيف المحلي: 3000/dails نقطة النهاية،

472
00:39:02,480 --> 00:39:05,899
فلن يعمل هذا لأنني غير مصادق عليه.

473
00:39:05,899 --> 00:39:11,610
لذلك، يوضح لك هذا كيف يمكنك توسيع خادم Express الخاص بك

474
00:39:11,610 --> 00:39:17,190
للسماح للمستخدمين بتسجيل أنفسهم ومن ثم السماح للمستخدم بتسجيل الدخول إلى النظام،

475
00:39:17,190 --> 00:39:19,860
ومن ثم أيضا الخروج من النظام.

476
00:39:19,860 --> 00:39:25,520
على جانب الخادم، تقوم بتتبع مستخدم قام بتسجيل الدخول باستخدام الجلسة واستخدام

477
00:39:25,520 --> 00:39:28,260
ملف تعريف الارتباط على جانب العميل وعندما يقوم المستخدم بتسجيل

478
00:39:28,260 --> 00:39:31,375
الخروج يتم إتلاف ملف تعريف الارتباط على جانب العميل.

479
00:39:31,375 --> 00:39:34,540
مع هذا، نكمل هذا التمرين.

480
00:39:34,540 --> 00:39:37,390
هذا هو الوقت المناسب بالنسبة لك للقيام ارتكاب جيت،

481
00:39:37,390 --> 00:39:42,420
مع الرسالة، اكسبرس جلسات الجزء الثاني.