1
00:00:03,950 --> 00:00:09,180
الآن بعد أن فهمنا جواز السفر وكيف يضيف جواز السفر

2
00:00:09,180 --> 00:00:14,294
في وسيط مصادقة بسيطة لتطبيق NodeJS لدينا،

3
00:00:14,294 --> 00:00:18,435
ويوفر مرونة سهلة لتكوين

4
00:00:18,435 --> 00:00:22,935
طريقة ويوفر استراتيجيات مختلفة لمصادقة المستخدم،

5
00:00:22,935 --> 00:00:27,850
دعونا نذهب في رحلة مع جواز سفرنا.

6
00:00:27,890 --> 00:00:31,020
للبدء في هذا التمرين،

7
00:00:31,020 --> 00:00:33,945
كخطوة أولى، دعونا تثبيت

8
00:00:33,945 --> 00:00:40,135
وحدات عقدة جواز السفر، وجواز السفر المحلي وجواز السفر المحلي-النمس في خادم الارتباك لدينا.

9
00:00:40,135 --> 00:00:44,030
حتى في نوع موجه npm

10
00:00:44,030 --> 00:00:49,820
instal_passport،

11
00:00:49,820 --> 00:00:59,430
جواز السفر المحلي، جواز السفر المحلي النمس mnus ناقص حفظ وتثبيت هذه الوحدات الثلاث.

12
00:00:59,430 --> 00:01:05,980
كما ترون في هذه اللحظة نحن نبدأ مع جواز السفر 0.4.0،

13
00:01:05,980 --> 00:01:15,004
جوازات السفر المحلية 1.0.0 وصفر المحلي-النمس 5.0.1 الإصدارات في هذه الدورة.

14
00:01:15,004 --> 00:01:20,110
الآن بعد أن قمنا بتثبيت جواز السفر، وجواز السفر المحلي، وجواز السفر المحلي-النمس،

15
00:01:20,110 --> 00:01:25,640
دعونا نذهب إلى خادم الارتباك والذهاب إلى ملف user.js.

16
00:01:25,640 --> 00:01:31,325
سنقوم بتحديث مخطط المستخدم ونموذج لاستخدام جواز السفر المحلي-النمس.

17
00:01:31,325 --> 00:01:33,735
للقيام بذلك، هنا سوف نقول

18
00:01:33,735 --> 00:01:41,060
فار PassportLocalMongoose

19
00:01:41,060 --> 00:01:45,390
تتطلب جواز السفر المحلي-النمس.

20
00:01:46,190 --> 00:01:50,330
لذلك سوف نقوم بتثبيت

21
00:01:50,330 --> 00:01:56,780
البرنامج المساعد النمس في تطبيقنا ويمكننا إزالة اسم المستخدم وكلمة

22
00:01:56,780 --> 00:02:00,440
المرور لأن هذه سيتم إضافتها تلقائيا من قبل

23
00:02:00,440 --> 00:02:04,535
المساعد passport-local-mongoose هنا

24
00:02:04,535 --> 00:02:12,980
واستخدام ذلك كمكون إضافي في مخطط النمس ونموذج.

25
00:02:12,980 --> 00:02:20,160
سنقول المستخدم المكونات في وجواز السفر المحلي النمس.

26
00:02:20,160 --> 00:02:23,360
لذا، سيؤدي ذلك تلقائيًا كما قلت إلى إضافة دعم

27
00:02:23,360 --> 00:02:28,040
لاسم المستخدم والتخزين المجزأ لكلمة المرور باستخدام

28
00:02:28,040 --> 00:02:33,305
التجزئة والملح وإضافة

29
00:02:33,305 --> 00:02:37,235
طرق إضافية على مخطط المستخدم

30
00:02:37,235 --> 00:02:40,880
والنموذج المفيد لمصادقة جواز السفر.

31
00:02:40,880 --> 00:02:48,390
لذلك بمجرد الانتهاء من تحديث ملف user.js ثم في مجلد

32
00:02:48,390 --> 00:02:55,160
مشروعنا، سنقوم بإنشاء ملف جديد وتسميته على أنه authenticate.js.

33
00:02:55,160 --> 00:02:57,800
في ملف authentic.js،

34
00:02:57,800 --> 00:03:03,420
اسمحوا لي استيراد جواز السفر.

35
00:03:03,940 --> 00:03:10,700
لذلك سوف نقول تتطلب جواز سفر ونحن في طريقنا

36
00:03:10,700 --> 00:03:16,700
لاستخدام هذا الملف لتخزين استراتيجيات المصادقة التي سنقوم بتكوينها.

37
00:03:16,700 --> 00:03:26,195
لذلك سوف نقول فار. تتطلب LocalStrategy

38
00:03:26,195 --> 00:03:36,140
جواز السفر المحلي، لذلك تقوم الوحدة المحلية بجواز السفر بتصدير استراتيجية يمكننا استخدامها لتطبيقنا.

39
00:03:36,140 --> 00:03:39,800
لذلك سنقول Passport-local.strategy

40
00:03:39,800 --> 00:03:56,700
وبعد ذلك سنقوم باستيراد المستخدم من نماذج المستخدم.

41
00:03:58,550 --> 00:04:06,270
دعونا الآن تكوين جواز السفر مع الاستراتيجية المحلية الجديدة

42
00:04:06,270 --> 00:04:13,970
ومن ثم سنقوم بتصدير هذا من هذا الملف لأن هذا سيكون وحدة العقدة.

43
00:04:13,970 --> 00:04:23,940
لذلك سنقول exports.local وسنقول جواز سفر

44
00:04:23,940 --> 00:04:28,580
ويمكنك أن ترى أن جواز السفر يدعم الأساليب المختلفة

45
00:04:28,580 --> 00:04:39,125
هنا لذلك سنقول استخدام جواز السفر ويقول

46
00:04:39,125 --> 00:04:47,715
LocalStrategy جديد ومن ثم هذا هو المكان الذي تأتي فيه الوظائف التي يدعمها جواز السفر المحلي-النمس لمساعدتنا.

47
00:04:47,715 --> 00:04:52,225
لذا ستحتاج الاستراتيجية المحلية إلى تزويدها بوظيفة التحقق.

48
00:04:52,225 --> 00:04:55,210
داخل هذه الوظيفة سنقوم بالتحقق من المستخدم.

49
00:04:55,210 --> 00:04:59,090
سيتم استدعاء وظيفة التحقق هذه مع اسم المستخدم وكلمة المرور التي

50
00:04:59,090 --> 00:05:03,380
سيتم استخراج جواز السفر من طلبنا الوارد.

51
00:05:03,380 --> 00:05:09,620
الآن في الطلب الوارد لـ LocalStrategy،

52
00:05:09,620 --> 00:05:16,800
يجب توفير اسم المستخدم وكلمة المرور في نص الرسالة في شكل سلسلة Json.

53
00:05:17,680 --> 00:05:21,560
مرة أخرى لأننا نفعل محلل

54
00:05:21,560 --> 00:05:24,500
الجسم بحيث سيتم إضافتها إلى نص الرسالة ومن ثم من هناك جواز سفر

55
00:05:24,500 --> 00:05:29,000
سنقوم باسترداد ذلك ومن ثم استخدام ذلك وتوفير اسم المستخدم وكلمة المرور

56
00:05:29,000 --> 00:05:34,775
كمعلمات لوظيفة التحقق التي سنقوم بتوفيرها إلى لوكالستراتيدج.

57
00:05:34,775 --> 00:05:37,565
نظرًا لأننا نستخدم المكون الإضافي لنمس جواز السفر،

58
00:05:37,565 --> 00:05:44,915
فإن المكون الإضافي للنمس نفسه يضيف هذه الوظيفة تسمى user.authenticate.

59
00:05:44,915 --> 00:05:51,495
لذلك يضيف هذا الأسلوب إلى مخطط المستخدم والنموذج.

60
00:05:51,495 --> 00:05:55,775
سنقوم بتزويد ذلك كوظيفة من

61
00:05:55,775 --> 00:06:00,350
شأنها أن توفر المصادقة لـ LocalStrategy.

62
00:06:00,350 --> 00:06:02,540
الآن إذا كنت لا تستخدم

63
00:06:02,540 --> 00:06:06,875
passport-local-mongoose عند إعداد مكون إضافي للنمس قمنا به،

64
00:06:06,875 --> 00:06:08,060
إذا كنت لا تستخدم ذلك،

65
00:06:08,060 --> 00:06:12,540
فأنت بحاجة إلى كتابة وظيفة مصادقة المستخدم الخاصة بك هنا.

66
00:06:12,540 --> 00:06:15,720
في المحاضرة في وقت سابق،

67
00:06:15,720 --> 00:06:18,860
كنت قد أظهرت لك وظيفة مصادقة المستخدم بسيطة

68
00:06:18,860 --> 00:06:22,580
التي يمكن استخدامها هنا ولكن واحد الذي يتم

69
00:06:22,580 --> 00:06:25,610
توفيره من قبل وحدة جواز السفر المحلية النمس هو أكثر

70
00:06:25,610 --> 00:06:30,200
شمولا وهكذا ما سوف نستفيد منه في التطبيق لدينا.

71
00:06:30,200 --> 00:06:36,365
أيضا بما أننا لا نزال نستخدم جلسات لتتبع المستخدمين في تطبيقنا،

72
00:06:36,365 --> 00:06:43,775
نحتاج إلى تسلسل وإلغاء تسلسل المستخدم.

73
00:06:43,775 --> 00:06:47,345
لذلك هذا يأخذ أساسا معلومات المستخدم.

74
00:06:47,345 --> 00:06:54,815
الآن تذكر أن مصادقة جواز السفر سوف تحميل req.user أو خاصية المستخدم إلى

75
00:06:54,815 --> 00:06:58,715
رسالة الطلب وحتى

76
00:06:58,715 --> 00:07:04,610
يتم تسلسل معلومات المستخدم وإلغاء تسلسلها تتحقق باستخدام

77
00:07:04,610 --> 00:07:17,295
هذا القول تسلسل المستخدم وجواز السفر إلغاء تسلسل المستخدم.

78
00:07:17,295 --> 00:07:22,235
كما سنقول المستخدم ديسيرياليز المستخدم.

79
00:07:22,235 --> 00:07:27,920
يتم توفير هاتين الوظيفتين اللتين يقومان بتسلسل المستخدم وإلغاء التسلسل

80
00:07:27,920 --> 00:07:35,030
للمستخدم على مخطط المستخدم ونموذجه من خلال استخدام المكون الإضافي للجواز المحلي للنمس هنا.

81
00:07:35,030 --> 00:07:38,240
لذلك هذا سوف تأخذ الرعاية من كل ما هو مطلوب

82
00:07:38,240 --> 00:07:42,860
لدعمنا للجلسات في جواز السفر.

83
00:07:42,860 --> 00:07:48,375
لذلك بمجرد الانتهاء من هذا التحديث إلى ملف authenticate.js،

84
00:07:48,375 --> 00:07:54,200
سوف يتطلب هذا الملف أينما كان هناك حاجة لنا لاستخدامها في المصادقة لدينا.

85
00:07:54,200 --> 00:07:57,695
التالي الذهاب إلى ملف users.js،

86
00:07:57,695 --> 00:07:59,795
في ملف users.js،

87
00:07:59,795 --> 00:08:04,170
سنقوم أولا استيراد جواز السفر.

88
00:08:04,170 --> 00:08:09,525
لذلك سنقول فار جواز سفر تتطلب جواز سفر.

89
00:08:09,525 --> 00:08:16,100
بعد ذلك، لأننا نستخدم المكون الإضافي للنمس المحلي لجواز السفر،

90
00:08:16,100 --> 00:08:20,525
فإن المكون الإضافي

91
00:08:20,525 --> 00:08:25,380
للنمس نفسه يوفر بعض المقاييس المفيدة لنا لاستخدامها في عملية التسجيل وفي عملية تسجيل الدخول.

92
00:08:25,380 --> 00:08:29,030
حتى الذهاب إلى آخر جهاز التوجيه هنا،

93
00:08:29,030 --> 00:08:34,120
يوفر لنا البرنامج المساعد النمس طريقة تسمى التسجيل،

94
00:08:34,120 --> 00:08:37,275
على مخطط المستخدم والنموذج.

95
00:08:37,275 --> 00:08:44,460
لذلك سنقول تسجيل المستخدم وسيتم تحويل هذا إلى قول مستخدم جديد.

96
00:08:44,460 --> 00:08:51,035
هذا المستخدم الجديد هو المعلمة الأولى التي يأخذ السجل

97
00:08:51,035 --> 00:08:58,245
والمعلمة الثانية هي كلمة مرور الجسم req.

98
00:08:58,245 --> 00:09:05,440
وبالتالي فإن كلمة المرور التي تأتي كمعلمة ثانية في نص الرسالة.

99
00:09:05,440 --> 00:09:08,460
لذا تذكر أنه يتم تمرير اسم المستخدم وكلمة المرور

100
00:09:08,460 --> 00:09:12,020
عند التسجيل في نص الرسالة.

101
00:09:12,020 --> 00:09:14,255
الآن، في هذه الحالة،

102
00:09:14,255 --> 00:09:19,855
سيؤدي ذلك إلى وظيفة إعادة الاتصال التي توفر الخطأ

103
00:09:19,855 --> 00:09:25,825
والمستخدم كقيمتي رد الاتصال هنا ولسوء الحظ

104
00:09:25,825 --> 00:09:28,790
، هذا لا يعمل في هذه الحالة.

105
00:09:28,790 --> 00:09:33,045
لذلك سيكون لدي لقطع هذا من هنا ثم

106
00:09:33,045 --> 00:09:39,415
بدلا من ذلك التعامل مع ذلك داخل هذا الأسلوب رد الاتصال هنا.

107
00:09:39,415 --> 00:09:43,820
لذلك، اسمحوا لي فقط المسافة البادئة هذا،

108
00:09:43,820 --> 00:09:48,060
بحيث يكون من الأسهل رؤية الرمز هنا.

109
00:09:48,060 --> 00:09:51,830
لذلك سأقول، تسجيل المستخدم والمعلمة الأولى هي

110
00:09:51,830 --> 00:09:53,630
مستخدم جديد تم إنشاؤه باستخدام

111
00:09:53,630 --> 00:09:57,590
عرض اسم المستخدم هنا والمعلمة الثانية هي كلمة المرور،

112
00:09:57,590 --> 00:10:02,550
ومن ثم الناتجة هي وظيفة رد الاتصال هذه التي سوف تتصل،

113
00:10:02,550 --> 00:10:06,100
وسوف نقول مستخدم خطأ هنا.

114
00:10:06,100 --> 00:10:11,260
في هذه الحالة، يجب علينا تحرير الشفرة قليلاً هنا.

115
00:10:11,260 --> 00:10:14,620
لذا في الجزء الأول،

116
00:10:14,620 --> 00:10:21,850
سنقول إذا كان الخطأ،

117
00:10:21,850 --> 00:10:28,150
فسيتعين عليهم إرسال الرد بشكل صريح.

118
00:10:28,150 --> 00:10:34,945
لذلك، أنا فقط ذاهب لنسخ هذين الاثنين هنا.

119
00:10:34,945 --> 00:10:37,670
لذلك سنقول، إذا خطأ،

120
00:10:37,740 --> 00:10:40,860
ثم رمز الحالة ريس،

121
00:10:40,860 --> 00:10:46,970
سنقوم بتعيين هذا إلى 500 وتعيين نوع محتوى رأس وبعد ذلك،

122
00:10:46,970 --> 00:10:52,520
سنقوم بتعيين ريس جسون ثم خطأ، خطأ.

123
00:10:52,520 --> 00:10:56,790
لذلك سنقوم ببناء كائن json مع الخطأ

124
00:10:56,790 --> 00:11:01,590
كقيمة لخاصية الخطأ هناك ثم إرسال هذا مرة أخرى.

125
00:11:01,590 --> 00:11:06,145
إذن هذه هي الطريقة التي ستتعامل بها مع الخطأ في هذه الحالة.

126
00:11:06,145 --> 00:11:11,110
خلاف ذلك، ما نفعله هنا هو أننا سوف

127
00:11:11,110 --> 00:11:18,970
نقول جواز السفر مصادقة المحلية.

128
00:11:18,970 --> 00:11:23,810
لذلك إذا كنا سنستخدم جواز السفر لمصادقة المستخدم مرة أخرى.

129
00:11:23,810 --> 00:11:25,930
لذا سنقول أن جواز السفر مصدق محلي

130
00:11:25,930 --> 00:11:28,820
للتأكد من أن تسجيل المستخدم كان ناجحا.

131
00:11:28,820 --> 00:11:33,145
سنحاول مصادقة نفس المستخدم الذي قمنا بتسجيله للتو

132
00:11:33,145 --> 00:11:38,335
وهنا سنقول req res وهذا

133
00:11:38,335 --> 00:11:48,355
سيعود كقيمة ثالثة تعمل داخلها،

134
00:11:48,355 --> 00:11:52,300
سنقوم بإرسال الرد إلى عميلنا.

135
00:11:52,300 --> 00:12:01,140
لذا نحن سَنَقُولُ. اسمحوا لي أن إزالة هذا ومن ثم إضافته هنا.

136
00:12:01,140 --> 00:12:03,190
يمكننا الآن إزالة هذا بعد ذلك،

137
00:12:03,190 --> 00:12:11,070
لأن هذا ليس ضروريًا بالنسبة لنا وهذا هو إغلاق سجل المستخدم.

138
00:12:11,070 --> 00:12:12,990
في الجزء الآخر،

139
00:12:12,990 --> 00:12:16,810
ونحن سوف نفعل جواز سفر مصادقة المحلية.

140
00:12:16,970 --> 00:12:19,510
انظر إلى بناء الجملة هنا.

141
00:12:19,510 --> 00:12:23,425
لذلك هذا هو جواز السفر مصادقة المحلية ثم بعد ذلك،

142
00:12:23,425 --> 00:12:29,325
علينا أن ندعو هذه الوظيفة هنا أن المعلمات req،

143
00:12:29,325 --> 00:12:35,245
res وأن الثالث هو وظيفة رد الاتصال هنا.

144
00:12:35,245 --> 00:12:42,275
لذلك هذه هي الطريقة التي يتم بها تنفيذ ذلك لأن جواز السفر يتوقع منك أن تفعل ذلك بهذه الطريقة.

145
00:12:42,275 --> 00:12:46,495
في هنا، سنقوم بتعيين رمز الحالة req res هو 200،

146
00:12:46,495 --> 00:12:49,930
وتعيين تطبيق محتوى رأس json ثم سنقوم

147
00:12:49,930 --> 00:12:59,410
res تسجيل حالة json بنجاح ولن نقوم بتمرير قيمة المستخدم هنا.

148
00:12:59,410 --> 00:13:03,240
بدلا من ذلك، ما سأفعله هو أنني

149
00:13:03,240 --> 00:13:10,695
سأضع علم يسمى النجاح هنا إلى صحيح هنا.

150
00:13:10,695 --> 00:13:15,620
الآن بهذه الطريقة، على جانب العميل عند تلقي هذا json،

151
00:13:15,620 --> 00:13:20,550
يمكن للعميل ببساطة استخراج خاصية النجاح ثم التحقق لمعرفة ما إذا كان صحيحًا

152
00:13:20,550 --> 00:13:25,695
أم لا للتحقق بسرعة مما إذا كان التسجيل ناجحًا أم لا.

153
00:13:25,695 --> 00:13:32,000
إذن هذه هي الطريقة التي سنتعامل بها مع عملية تسجيل المستخدم هنا.

154
00:13:32,000 --> 00:13:35,470
لذا لاحظ كيف تم تبسيط الشفرة بشكل كبير.

155
00:13:35,470 --> 00:13:38,924
إذا لم يسجل المستخدم بشكل صحيح،

156
00:13:38,924 --> 00:13:45,665
ثم هذا سوف يرسل مرة أخرى خطأ بشكل مناسب وأيضا سوف تفشل المصادقة.

157
00:13:45,665 --> 00:13:51,115
لذلك في كلتا الحالتين، سوف التقاط الموقف عند فشل مصادقة المستخدم.

158
00:13:51,115 --> 00:13:56,270
الآن، يتم تبسيط عملية تسجيل الدخول نفسها بشكل كبير.

159
00:13:56,270 --> 00:14:01,650
لذلك، نحن لسنا بحاجة إلى القيام بكل هذا في مسار تسجيل الدخول هنا.

160
00:14:01,650 --> 00:14:07,220
لذلك سأقوم بإزالة كل هذا الرمز ويصبح مسار تسجيل الدخول هذا مبسطًا هنا.

161
00:14:07,220 --> 00:14:14,365
الآن لطريق تسجيل الدخول- لآخر جهاز التوجيه عندما نفعل ذلك

162
00:14:14,365 --> 00:14:19,150
هنا، وهنا أيضا نتوقع إدراج اسم المستخدم وكلمة المرور

163
00:14:19,150 --> 00:14:24,240
في نص رسالة البريد التي تأتي لها.

164
00:14:24,240 --> 00:14:32,030
على عكس الحالة السابقة حيث كنا نقوم بتضمين هذا في رأس التفويض،

165
00:14:32,030 --> 00:14:37,865
نتوقع هنا أن يتم تضمينها في نص رسالة البريد الواردة.

166
00:14:37,865 --> 00:14:47,730
لذلك للمصادقة، سنقول ببساطة مصادقة جواز السفر وسنقول المحلية هنا.

167
00:14:47,730 --> 00:14:52,320
لذا ستكون هذه هي المكالمة الثانية هنا.

168
00:14:52,320 --> 00:14:55,360
لذا هذه هي الوسيطة الثانية هنا التي سنقوم بقطعها.

169
00:14:55,360 --> 00:15:01,690
لذلك عندما يأتي آخر جهاز التوجيه على نقطة نهاية تسجيل الدخول،

170
00:15:01,690 --> 00:15:06,095
سنقوم أولا استدعاء جواز السفر مصادقة المحلية.

171
00:15:06,095 --> 00:15:09,660
إذا كان هذا ناجحًا، فسيأتي هذا

172
00:15:09,660 --> 00:15:13,485
وسيتم تنفيذ الوظيفة التالية التالية.

173
00:15:13,485 --> 00:15:15,760
إذا كان هناك أي خطأ في المصادقة،

174
00:15:15,760 --> 00:15:18,850
فإن مصادقة جواز السفر هذه المحلية تلقائياً

175
00:15:18,850 --> 00:15:24,210
إرسال رد إلى العميل حول فشل المصادقة.

176
00:15:24,210 --> 00:15:26,190
لذلك يتم الاعتناء بها بالفعل.

177
00:15:26,190 --> 00:15:33,345
لذا لاحظ كيف يتم تبسيط الشفرة في عملية تسجيل الدخول بشكل كبير.

178
00:15:33,345 --> 00:15:36,565
لذلك، إذا كان هذا يمر بنجاح،

179
00:15:36,565 --> 00:15:42,775
وأنا بحاجة فقط للتحقق من req و res وهنا ما سأفعله

180
00:15:42,775 --> 00:15:49,665
هو أنني ببساطة إرسال رسالة إلى جانب العميل مع هذه المعلومات هنا.

181
00:15:49,665 --> 00:15:53,775
سنقول رمز الحالة الدقة 200,

182
00:15:53,775 --> 00:16:02,145
الدقة تعيين نوع محتوى رأس التطبيق json وريس json نجاح الحالة الحقيقية.

183
00:16:02,145 --> 00:16:13,010
سنقول، لقد قمت بتسجيل الدخول بنجاح.

184
00:16:13,010 --> 00:16:18,100
هذا كل شيء هذا هو التغيير الذي سنقوم به إلى ملف users.js.

185
00:16:18,100 --> 00:16:21,275
لذلك لاحظ كيف، بسبب جواز سفر المستخدم،

186
00:16:21,275 --> 00:16:24,655
كل من عملية التسجيل وعملية تسجيل الدخول،

187
00:16:24,655 --> 00:16:28,205
وقد تبسيط رمز بشكل كبير في هذه الحالة.

188
00:16:28,205 --> 00:16:34,465
الآن سوف ننتقل إلى تحديث ملف app.js الذهاب إلى app.js الآن.

189
00:16:34,465 --> 00:16:37,555
في app.js الحق هنا

190
00:16:37,555 --> 00:16:50,540
سوف ندخل جواز السفر.

191
00:16:51,270 --> 00:16:55,310
بعد ذلك، سنقوم باستيراد

192
00:16:59,820 --> 00:17:07,120
وحدة المصادقة التي قمنا بتطبيقها للتو.

193
00:17:07,120 --> 00:17:15,390
سنقول var مصادقة وفي ملف app.js أسفل هنا بعد الجلسة،

194
00:17:15,390 --> 00:17:25,320
نضيف app.use (passport.initialize)،

195
00:17:25,320 --> 00:17:32,100
و app.use (.session).

196
00:17:32,950 --> 00:17:37,810
إذا تم تسجيل دخول المستخدم،

197
00:17:37,810 --> 00:17:42,945
ثم ما يحدث هو أنه عند بدء الجلسة مرة أخرى،

198
00:17:42,945 --> 00:17:47,095
تذكر أنه عند تسجيل الدخول هنا،

199
00:17:47,095 --> 00:17:48,735
سيتم تسجيل الدخول هنا،

200
00:17:48,735 --> 00:17:51,705
والدعوة إلى جواز السفر مصادقة المحلية،

201
00:17:51,705 --> 00:17:53,730
عندما يتم ذلك في مرحلة تسجيل الدخول،

202
00:17:53,730 --> 00:17:56,460
جواز السفر مصادقة المحلية سوف

203
00:17:56,460 --> 00:18:00,625
تلقائياً إضافة خاصية المستخدم إلى رسالة الطلب.

204
00:18:00,625 --> 00:18:03,415
لذلك، فإنه

205
00:18:03,415 --> 00:18:07,265
سيتم إضافة req.user وبعد ذلك، جلسة جواز السفر التي قمنا بها هنا تلقائيا

206
00:18:07,265 --> 00:18:12,575
تسلسل معلومات المستخدم ومن ثم تخزينها في الجلسة.

207
00:18:12,575 --> 00:18:15,925
لذا، وبعد ذلك، كلما

208
00:18:15,925 --> 00:18:19,135
جاء طلب وارد من جانب العميل

209
00:18:19,135 --> 00:18:22,630
مع ملف تعريف ارتباط الجلسة بالفعل،

210
00:18:22,630 --> 00:18:29,250
فسيتم تحميل req.user تلقائيًا على الطلب الوارد.

211
00:18:29,250 --> 00:18:32,735
لذا، هذه هي الطريقة التي يتم بها تنظيم جلسة جواز السفر نفسها.

212
00:18:32,735 --> 00:18:34,445
لذلك، بمجرد الانتهاء من ذلك،

213
00:18:34,445 --> 00:18:40,075
حتى رمز المصادقة لدينا سوف تصبح أكثر بساطة هنا.

214
00:18:40,075 --> 00:18:42,400
لذلك، في رمز المصادقة،

215
00:18:42,400 --> 00:18:49,450
وسوف نقول ببساطة، إذا req.user.

216
00:18:49,450 --> 00:18:55,690
لذلك، سيتم تحميل req.user في من خلال الوسيطة جلسة جواز السفر تلقائيا،

217
00:18:55,690 --> 00:18:58,845
ولذا فإننا سوف نقول req.user.

218
00:18:58,845 --> 00:19:03,940
إذا لم يكن req.user سنقول var err، خطأ جديد،

219
00:19:03,940 --> 00:19:09,495
لم يتم مصادقتك، وجميع هذه الرسائل هنا.

220
00:19:09,495 --> 00:19:15,410
خلاف ذلك، انظر الجزء الآخر أيضا يتم تبسيطه الآن.

221
00:19:17,280 --> 00:19:20,010
نحن سَنَقُولُ آخر التالي.

222
00:19:20,010 --> 00:19:27,335
لذا، يصبح رمز المصادقة الخاص بك أكثر بساطة لأنه إذا لم يكن req.user موجودًا،

223
00:19:27,335 --> 00:19:31,695
فهذا يعني أن المصادقة لم تتم بشكل صحيح،

224
00:19:31,695 --> 00:19:33,345
ولهذا السبب تشير إلى الخطأ.

225
00:19:33,345 --> 00:19:35,470
خلاف ذلك، يتم مصادقتك.

226
00:19:35,470 --> 00:19:37,110
إذا كان req.user موجودًا،

227
00:19:37,110 --> 00:19:39,900
فهذا يعني أن جواز السفر قد قام بالمصادقة

228
00:19:39,900 --> 00:19:42,970
ويتم تحميل مستخدم req.user على رسالة الطلب،

229
00:19:42,970 --> 00:19:46,410
وهكذا يمكنك الذهاب إلى أبعد من ذلك.

230
00:19:46,410 --> 00:19:49,815
لذلك، هذا هو التغيير الذي نحتاج إلى القيام به إلى app.js.

231
00:19:49,815 --> 00:19:57,775
دعونا حفظ جميع التغييرات ومن ثم ننظر إلى التطبيق في ساعي البريد.

232
00:19:57,775 --> 00:20:01,385
بمجرد حفظ كافة التغييرات، قم بإعادة تشغيل الخادم الخاص بك.

233
00:20:01,385 --> 00:20:02,600
إذا كان الملقم قيد التشغيل،

234
00:20:02,600 --> 00:20:04,700
إيقاف ثم قم بإعادة تشغيل الملقم.

235
00:20:04,700 --> 00:20:07,680
اسمحوا لي أن أبدأ الخادم الخاص بي.

236
00:20:08,160 --> 00:20:10,450
بمجرد تشغيل الخادم وتشغيله،

237
00:20:10,450 --> 00:20:13,900
دعنا نذهب إلى ساعي البريد ونقوم ببعض الطلبات.

238
00:20:13,900 --> 00:20:17,650
الذهاب إلى ساعي البريد، اسمحوا لي الآن محاولة لتسجيل مستخدم جديد

239
00:20:17,650 --> 00:20:22,120
عن طريق القيام وظيفة على المستخدمين تسجيل نقطة النهاية.

240
00:20:22,120 --> 00:20:28,485
عندما يتم نشر التسجيل،

241
00:20:28,485 --> 00:20:31,850
ترى أنه في نص رسالة الرد تقول،

242
00:20:31,850 --> 00:20:35,805
النجاح الحقيقي، وتسجيل الحالة بنجاح.

243
00:20:35,805 --> 00:20:40,430
لذلك، تم تسجيل المستخدم بنجاح على جانب العميل.

244
00:20:40,430 --> 00:20:44,870
لذلك، الآن، اسمحوا لي أن تفعل تسجيل الدخول للمستخدم.

245
00:20:44,870 --> 00:20:50,000
لذلك، سنقول، «تسجيل الدخول»، ولا تزال توفر

246
00:20:50,000 --> 00:20:55,765
اسم المستخدم وكلمة المرور في نص الرسالة هنا.

247
00:20:55,765 --> 00:20:58,345
لذلك، عندما أنقر على «إرسال»،

248
00:20:58,345 --> 00:21:02,550
ستلاحظ على الفور أنه في الجزء السفلي

249
00:21:02,550 --> 00:21:05,050
، يقول، النجاح، صحيح، والحالة،

250
00:21:05,050 --> 00:21:09,440
يتم تسجيل الدخول ثم في الرأس نفسه،

251
00:21:09,440 --> 00:21:13,515
سترى ملف تعريف الارتباط مجموعة قادمة لأننا نقوم بإعداد الجلسة،

252
00:21:13,515 --> 00:21:17,390
ومن ثم ترى ملف تعريف الارتباط في مكان هناك.

253
00:21:17,390 --> 00:21:19,465
عند النقر على ملفات تعريف الارتباط،

254
00:21:19,465 --> 00:21:23,875
سترى معرف الجلسة في مكانه هناك.

255
00:21:23,875 --> 00:21:26,980
لذلك، الآن نحن تسجيل الدخول بنجاح.

256
00:21:26,980 --> 00:21:35,630
دعونا نرسل طلبًا إلى نقطة النهاية Get localhost: 3000 أطباق.

257
00:21:35,630 --> 00:21:42,210
ترى أن طلبك ذهب بنجاح ومن ثم تم إرسال رد.

258
00:21:42,210 --> 00:21:43,350
بالطبع، في هذه اللحظة،

259
00:21:43,350 --> 00:21:48,330
قاعدة البيانات الخاصة بي فارغة ولهذا السبب ترسل مصفوفة فارغة

260
00:21:48,330 --> 00:21:54,530
من موقع الخادم عندما أسأل عن المضيف المحلي: 3000/أطباق.

261
00:21:55,050 --> 00:21:58,165
هذا جيد تماما

262
00:21:58,165 --> 00:22:00,610
اسمحوا لي الآن تسجيل الخروج من المستخدم.

263
00:22:00,610 --> 00:22:02,995
لذلك، عندما أقوم بتسجيل الخروج من المستخدم، الآن،

264
00:22:02,995 --> 00:22:10,450
ستلاحظ أن المستخدم قد تم تسجيل الخروج وعند النقر على ملفات تعريف الارتباط،

265
00:22:10,450 --> 00:22:14,660
ستلاحظ أن، أن ملف تعريف الارتباط الخاص بـ localhost قد ذهب بالفعل.

266
00:22:14,660 --> 00:22:19,245
لذا، الآن، إذا حاولت أن تفعل الحصول على المضيف المحلي: أطباق،

267
00:22:19,245 --> 00:22:24,910
ترى أن الرد يقول،

268
00:22:24,910 --> 00:22:26,640
لم يتم مصادقتك.

269
00:22:26,640 --> 00:22:32,760
دعونا تسجيل الدخول مرة أخرى عن طريق القيام وظيفة على تسجيل دخول المستخدمين،

270
00:22:32,760 --> 00:22:36,290
وبعد ذلك، ترى أنه يمكننا تسجيل الدخول بنجاح في هذه المرحلة.

271
00:22:36,290 --> 00:22:37,830
كما تلاحظ أنه

272
00:22:37,830 --> 00:22:40,075
تم إعداد ملف تعريف الارتباط الجديد هنا.

273
00:22:40,075 --> 00:22:44,480
ثم، إذا فعلنا الحصول على المضيف المحلي: أطباق هنا،

274
00:22:44,480 --> 00:22:46,465
الآن، وهذا سيكون ناجحا.

275
00:22:46,465 --> 00:22:51,624
نظرًا لأننا نستخدم النمس المحلي لجواز السفر كمكون إضافي للنمس،

276
00:22:51,624 --> 00:22:55,790
دعنا نذهب أيضًا ونتحقق من خادم MongoDB الخاص بنا لمعرفة كيف

277
00:22:55,790 --> 00:23:00,410
يتم تخزين معلومات المستخدم فعليًا في MongoDB.

278
00:23:00,410 --> 00:23:04,880
لذلك، في المحطة الطرفية الخاصة بك،

279
00:23:04,880 --> 00:23:06,970
يمكنك فتح تموج Mongo،

280
00:23:06,970 --> 00:23:11,775
لذلك دعنا نقول Mongo في المحطة ومن ثم الاتصال بخادم MongoDB الخاص بنا،

281
00:23:11,775 --> 00:23:16,500
ثم نقول استخدام الارتباك.

282
00:23:16,500 --> 00:23:26,285
ثم سنقول db.users.find () .prety () ثم طباعة معلومات المستخدم.

283
00:23:26,285 --> 00:23:31,180
لذلك، عند طباعة معلومات المستخدم كما ترى هنا،

284
00:23:31,180 --> 00:23:35,235
هناك مستخدم واحد قمنا بتسجيله في وقت سابق.

285
00:23:35,235 --> 00:23:40,840
لذا، سترى أن سجل المستخدم يحتوي على معرف الكائن ثم

286
00:23:40,840 --> 00:23:42,665
اسم المستخدم أسفل هنا،

287
00:23:42,665 --> 00:23:46,060
وعلامة المشرف التي هي خاطئة ثم،

288
00:23:46,060 --> 00:23:53,720
لاحظ أيضًا أنه بدلاً من تخزين كلمة المرور نفسها ما

289
00:23:53,720 --> 00:23:57,515
يفعله المكون الإضافي Mongos Passport المحلي للنمس هو أنه يخزن

290
00:23:57,515 --> 00:24:01,865
قيمة الملح هنا وقيمة التجزئة هنا.

291
00:24:01,865 --> 00:24:08,655
الآن، ما يفعله المكون الإضافي لـ Mongo هو أنه سيستخدم الملح كوسيلة

292
00:24:08,655 --> 00:24:15,990
لتشفير كلمة المرور وتثبيت كلمة المرور المجزأة في حقل التجزئة هذا هنا.

293
00:24:15,990 --> 00:24:17,980
لذلك، عند محاولة تسجيل الدخول،

294
00:24:17,980 --> 00:24:23,130
سيتم تطبيق نفس التحويل إلى كلمة المرور الواردة،

295
00:24:23,130 --> 00:24:27,330
ثم حاول مطابقتها مع قيمة التجزئة هذه المخزنة هنا.

296
00:24:27,330 --> 00:24:29,580
لذلك، يمكنك أن ترى أنه في قاعدة البيانات نفسها،

297
00:24:29,580 --> 00:24:32,855
لا يتم تخزين كلمة المرور مباشرة داخل

298
00:24:32,855 --> 00:24:38,280
القيمة المجزأة لكلمة المرور التي يتم تجزئتها باستخدام مفتاح الملح هذا هنا، الذي

299
00:24:38,280 --> 00:24:39,435
نراه هنا،

300
00:24:39,435 --> 00:24:42,780
يتم تخزينها في السجل هناك.

301
00:24:42,780 --> 00:24:47,440
لذا، هذه هي الطريقة التي تمكننا بها المكون الإضافي Mongoose المحلي

302
00:24:47,440 --> 00:24:53,905
من تخزين معلومات المستخدم داخل قاعدة البيانات الخاصة بنا.

303
00:24:53,905 --> 00:24:58,680
مع هذا الفهم السريع لكيفية

304
00:24:58,680 --> 00:25:02,590
مساعدة جواز السفر، وجواز السفر المحلي، وجواز السفر المحلي-النمس لتبسيط

305
00:25:02,590 --> 00:25:09,390
الاستراتيجية المحلية لاسم المستخدم وكلمة المرور في تطبيقنا.

306
00:25:09,390 --> 00:25:11,660
و نحن نكمل هذا التمرين.

307
00:25:11,660 --> 00:25:18,390
هذا هو الوقت المناسب بالنسبة لك للقيام جيت الالتزام مع جواز سفر الرسالة.