1
00:00:00,000 --> 00:00:04,557
[MUSIC]

2
00:00:04,557 --> 00:00:10,906
الآن بعد أن فهمنا حول OAuth 2 وكيف يدعم Facebook OAuth 2،

3
00:00:10,906 --> 00:00:16,870
دعنا ننتقل إلى هذا التمرين حيث سنقوم بتكوين

4
00:00:16,870 --> 00:00:23,460
تطبيق الخادم السريع الخاص بنا للاستفادة من Facebook كمزود OAuth 2 لخادمنا.

5
00:00:23,460 --> 00:00:26,820
وفي الوقت نفسه لتطبيق العميل لدينا.

6
00:00:26,820 --> 00:00:30,500
في هذا التمرين سنعتمد على جواز السفر الذي

7
00:00:30,500 --> 00:00:34,730
قمنا بتهيئته بالفعل في طلبنا السريع.

8
00:00:34,730 --> 00:00:39,890
سنقوم بتكوين استراتيجية جديدة للمصادقة مع Facebook

9
00:00:39,890 --> 00:00:43,600
باستخدام وحدة عقدة الرمز المميز لجواز السفر Facebook.

10
00:00:45,680 --> 00:00:51,629
للبدء في هذا التمرين،

11
00:00:51,629 --> 00:01:01,590
انتقل إلى https//developers.facebook.com/apps.

12
00:01:01,590 --> 00:01:07,640
الآن، هذا هو المكان الذي ستقوم بتسجيل تطبيق العميل، والذي هو في الأساس

13
00:01:07,640 --> 00:01:13,280
الخادم الخاص بك، الخادم الإضافي، بمثابة تطبيق العميل لFacebook.

14
00:01:13,280 --> 00:01:16,380
وبعد ذلك سنقوم بتسجيل تطبيق العميل هناك.

15
00:01:16,380 --> 00:01:21,250
ثم الحصول على عقد من معرف التطبيق وسر التطبيق من الفيسبوك.

16
00:01:21,250 --> 00:01:24,950
الآن من الواضح أنه غني عن القول أنك تحتاج إلى حساب Facebook

17
00:01:24,950 --> 00:01:27,160
لكي تتمكن من تكوين هذا.

18
00:01:27,160 --> 00:01:32,520
إذا لم يكن لديك حساب على Facebook ولا ترغب في القيام بهذا التمرين،

19
00:01:32,520 --> 00:01:36,220
فلا ضرر في عدم القيام بهذا التمرين.

20
00:01:36,220 --> 00:01:39,110
ولكن بالطبع للقيام بهذا التمرين OAuth 2،

21
00:01:39,110 --> 00:01:45,210
تحتاج إلى حساب Facebook لتكوين موفر OAuth الخاص بك على Facebook.

22
00:01:45,210 --> 00:01:47,390
حتى الذهاب إلى هذا الموقع،

23
00:01:47,390 --> 00:01:52,510
developers.facebook.com/apps، ستلاحظ أنك سوف تحتاج

24
00:01:52,510 --> 00:01:57,970
إلى تسجيل الدخول من أجل الاستمرار إذا لم يتم تسجيل الدخول من المتصفح الخاص بك.

25
00:01:57,970 --> 00:02:01,790
الآن يمكنك أن ترى أنني قمت بالفعل بتكوين بعض التطبيقات هنا

26
00:02:01,790 --> 00:02:03,170
واختبارها.

27
00:02:03,170 --> 00:02:07,990
الآن، لإنشاء تطبيق جديد انقر على إضافة تطبيق جديد.

28
00:02:07,990 --> 00:02:13,140
وبعد ذلك يمكنك توفير اسم تطبيقك.

29
00:02:13,140 --> 00:02:20,990
حتى أستطيع أن أقول Confusion3، وبعد ذلك يمكننا توفير البريد الإلكتروني للاتصال.

30
00:02:20,990 --> 00:02:26,336
ثم اتبع الإجراء لإنشاء تطبيقك الجديد هنا.

31
00:02:36,108 --> 00:02:40,925
وبمجرد إنشاء التطبيق، ستلاحظ على الفور أن

32
00:02:40,925 --> 00:02:45,290
هناك معرف التطبيق الذي تم إنشاؤه لتطبيقك.

33
00:02:45,290 --> 00:02:47,180
ثم لهذا التطبيق معين.

34
00:02:47,180 --> 00:02:50,680
لذلك إذا كنت تسير على لوحة القيادة، سترى

35
00:02:51,840 --> 00:02:56,640
قطعتين من المعلومات التي تحتاجها حقا من أجل المضي قدما.

36
00:02:56,640 --> 00:03:01,850
أحدهما هو معرف التطبيق، لذا تأكد من إنشاء نسخة من معرف التطبيق.

37
00:03:01,850 --> 00:03:03,810
والثاني هو سر التطبيق.

38
00:03:03,810 --> 00:03:10,320
لذلك، يمكنك كتابة على زر العرض هنا وبعد ذلك ستحصل على سر التطبيق.

39
00:03:10,320 --> 00:03:14,350
سر هنا حتى تتمكن من رؤية هذين ليست سوى سلاسل ASCII.

40
00:03:14,350 --> 00:03:18,980
لذا قم بعمل نسخة من هذا لأنك تحتاج إلى تكوين خادم الخبراء الخاص بك

41
00:03:18,980 --> 00:03:23,200
وكذلك تطبيق العميل الخاص بك مع هاتين القطعتين من المعلومات.

42
00:03:23,200 --> 00:03:25,870
وبمجرد أن تحصل على عقد من ذلك ثم

43
00:03:25,870 --> 00:03:29,105
يمكننا المضي قدما في بقية التمرين.

44
00:03:29,105 --> 00:03:33,500
ستحتاج إلى الانتقال إلى لوحة المعلومات الخاصة بك من التطبيق الخاص بك.

45
00:03:33,500 --> 00:03:38,890
وفي الإعدادات، كما ترون، في الإعدادات الأساسية هنا

46
00:03:38,890 --> 00:03:43,310
يمكنك فقط إضافة منصة موقع على شبكة الإنترنت هنا.

47
00:03:43,310 --> 00:03:52,650
ثم قم بتوفير عنوان URL كـ https///localhost3443.

48
00:03:52,650 --> 00:03:58,168
وحفظ التغييرات هنا إلى التطبيق الخاص بك هنا.

49
00:03:58,168 --> 00:04:03,910
بعد إضافة في الموقع هنا انتقل إلى الإعدادات المتقدمة.

50
00:04:03,910 --> 00:04:09,000
ثم انقر فوق نعم لنقول

51
00:04:09,000 --> 00:04:14,400
التطبيق الأصلي أو سطح المكتب هنا ونقول نعم لذلك ثم قم بحفظ التغييرات.

52
00:04:15,590 --> 00:04:20,461
وفي الإعداد الأساسي في مجالات التطبيق، اكتب في

53
00:04:20,461 --> 00:04:28,339
https://localhost:3443 وحفظ التغييرات.

54
00:04:29,640 --> 00:04:33,520
بعد ذلك، انتقل إلى تعليمات التمرين لهذا التمرين.

55
00:04:33,520 --> 00:04:36,580
وسترى أن هناك ملف index.html

56
00:04:36,580 --> 00:04:39,540
التي قدمتها في موارد التمرين.

57
00:04:39,540 --> 00:04:47,270
تحميل هذا الملف index.html، ومن ثم نقله إلى المجلد العمومي الخاص بك.

58
00:04:47,270 --> 00:04:49,941
لذلك دعونا تحميل هذا الملف index.html.

59
00:04:57,932 --> 00:05:05,548
بعد ذلك، انتقل إلى مجلد ConfusionServer في المجلد العمومي،

60
00:05:05,548 --> 00:05:11,125
ترى أن لدي بالفعل ملف index.html.

61
00:05:11,125 --> 00:05:16,039
أنا ذاهب لاستبدال هذا مع ملف index.html تحميلها

62
00:05:16,039 --> 00:05:17,774
التي حصلت عليها للتو.

63
00:05:17,774 --> 00:05:20,502
لقد قمت بحفظ هذا على سطح المكتب الخاص بي.

64
00:05:20,502 --> 00:05:23,173
لذلك أنا فقط ذاهب لسحب هذا index.html

65
00:05:23,173 --> 00:05:27,771
ثم استبدال ملف index.html في المجلد العام من بلدي كونفوسيونسيرفر.

66
00:05:27,771 --> 00:05:31,227
بعد ذلك، والذهاب إلى المحرر، دعونا فتح ملف index.html.

67
00:05:31,227 --> 00:05:34,584
وإذا قمت بفتحه سترى أنني قمت بالفعل بتكوين بعض

68
00:05:34,584 --> 00:05:35,112
شفرة جافا سكريبت هنا.

69
00:05:35,112 --> 00:05:39,850
رمز جافا سكريبت هذا حصلت على عقد من الفيسبوك حيث أنها

70
00:05:39,850 --> 00:05:44,790
تحدد كيف يمكنك تكوين تطبيق ديف باستخدام هذا.

71
00:05:44,790 --> 00:05:51,030
لذلك، لقد نسخت هذا من تعليمات الفيسبوك. على

72
00:05:51,030 --> 00:05:55,470
وجه الخصوص ستلاحظ أنه في هذا الملف index.html،

73
00:05:55,470 --> 00:05:58,735
هناك هذا الحقل أبيد هنا.

74
00:05:58,735 --> 00:06:04,400
ستقوم باستبدال حقل AppID هذا

75
00:06:04,400 --> 00:06:09,060
بمعرف العميل الذي حصلت عليه عن طريق تسجيل تطبيقك على Facebook.

76
00:06:09,060 --> 00:06:13,130
لذا، هنا، أقوم باستبدال معرف هذا العميل

77
00:06:13,130 --> 00:06:18,430
بمعرف تطبيقي الذي قمت بتسجيله في Facebook هنا.

78
00:06:18,430 --> 00:06:22,957
وتحتاج إلى القيام بنفس الخطوة مع التطبيق

79
00:06:22,957 --> 00:06:27,750
الذي تقوم بالتسجيل في Facebook، مع معرف التطبيق الذي تحصل عليه من Facebook.

80
00:06:27,750 --> 00:06:30,812
ثم قم بحفظ التغييرات إلى index.html.

81
00:06:30,812 --> 00:06:36,980
هذه الصفحة index.html التي لدي هنا سوف

82
00:06:36,980 --> 00:06:42,290
تخلق زر تسجيل الدخول على صفحة index.html، والتي عند النقر عليها سوف

83
00:06:42,290 --> 00:06:47,580
تساعدنا على تسجيل الدخول إلى الفيسبوك ومن ثم الحصول على رمز وصول من الفيسبوك.

84
00:06:48,660 --> 00:06:51,260
بعد ذلك، انتقل إلى مجلد ConfusionServer،

85
00:06:51,260 --> 00:06:55,280
سنقوم بتثبيت وحدة عقدة الرمز المميز لجواز السفر Facebook.

86
00:06:55,280 --> 00:06:58,494
حتى في نوع موجه npm تثبيت

87
00:07:00,200 --> 00:07:05,003
Passport-Facebook-token

88
00:07:05,003 --> 00:07:09,730
وتثبيت وحدة العقدة هذه.

89
00:07:09,730 --> 00:07:17,000
وكما ترون أنا باستخدام الإصدار 3.3.0 في هذه الدورة.

90
00:07:17,000 --> 00:07:20,446
العودة إلى المحرر، افتح config.js.

91
00:07:20,446 --> 00:07:25,162
وفي config.js سأقوم بإضافة

92
00:07:25,162 --> 00:07:34,440
خاصية تسمى «facebook» إلى ملف config.js الخاص بي.

93
00:07:34,440 --> 00:07:39,221
وداخل هنا، وسوف

94
00:07:39,221 --> 00:07:44,481
تكوين بلدي كلينتيد

95
00:07:44,481 --> 00:07:48,560
و كلينتسيكريت.

96
00:07:48,560 --> 00:07:54,150
الآن، سوف كلينتيد يكون بالضبط ما تحصل عليه من الفيسبوك.

97
00:07:54,150 --> 00:08:00,304
هنا، وسر العميل كما رأيت عندما قمت بتسجيل طلبك.

98
00:08:02,198 --> 00:08:05,221
يمكنك الحصول على سلسلة ثانية هناك حتى نسخ هذه السلسلة

99
00:08:05,221 --> 00:08:07,764
ثم لصقها في كلينتسيكريت هنا.

100
00:08:07,764 --> 00:08:13,790
تأكد الآن من لصق هذا كسلسلة هنا.

101
00:08:13,790 --> 00:08:19,090
وبالمثل، لصق في كلينتسيكريت في ملف config.js الخاص بي.

102
00:08:19,090 --> 00:08:26,360
لذا، فإن تكوين هذا هنا سيساعدني على استخدام هذين حيث أحتاج في شفرتي.

103
00:08:26,360 --> 00:08:29,790
بعد ذلك، كما أدركنا، كلما قام المستخدم

104
00:08:32,390 --> 00:08:37,770
بتسجيل الدخول ثم يحصل على رمز الوصول ويمرره إلى خادمنا السريع.

105
00:08:37,770 --> 00:08:41,160
سيستخدم الخادم السريع هذا الرمز المميز للوصول ويذهب

106
00:08:41,160 --> 00:08:47,840
ويجلب معلومات الملف من خادم Facebook 0.

107
00:08:47,840 --> 00:08:52,380
وبعد ذلك، بمجرد أن يصل إلى معلومات الملف الشخصي، سيقوم خادمنا السريع

108
00:08:52,380 --> 00:08:57,980
بإنشاء حساب مستخدم جديد في تطبيقنا.

109
00:08:57,980 --> 00:09:01,750
واستخدم معرّف Facebook كمؤشر في حساب الاستخدام هذا.

110
00:09:01,750 --> 00:09:03,630
لذلك لاستيعاب هذا،

111
00:09:03,630 --> 00:09:08,467
سوف نذهب إلى ملف user.js حيث لدينا تعريف نموذجنا.

112
00:09:08,467 --> 00:09:12,854
لذلك بالإضافة إلى الاسم الأول والاسم الأخير،

113
00:09:12,854 --> 00:09:17,241
وسوف أضيف أيضا في حقل هنا يسمى FacebookID،

114
00:09:17,241 --> 00:09:20,510
وهو من نوع سلسلة هنا.

115
00:09:20,510 --> 00:09:24,548
سيقوم FacebookID بتخزين FacebookID

116
00:09:24,548 --> 00:09:28,700
للمستخدم الذي تم تمريره في رمز الوصول.

117
00:09:29,760 --> 00:09:34,002
في الخطوة التالية سوف تظهر لك كيفية تكوين هذا.

118
00:09:34,002 --> 00:09:40,260
ثم نقوم بتكوين استراتيجية الفيسبوك لدينا باستخدام جواز السفر الفيسبوك رمزية..

119
00:09:40,260 --> 00:09:43,640
عندما يمر المستخدم في رمز الوصول،

120
00:09:43,640 --> 00:09:47,230
فإنك سوف تكون جلب الملف الشخصي ومن ثم إعداد حساب

121
00:09:47,230 --> 00:09:52,160
لهذا المستخدم في خادمنا المحلي هنا، في خادمنا السريع هنا.

122
00:09:52,160 --> 00:09:56,410
سنقوم بتهيئة الاسم الأول والاسم الأخير و FacebookID.

123
00:09:56,410 --> 00:10:01,760
ولكن بالطبع لن يحتوي هذا الحساب الخاص على كلمة مرور أو

124
00:10:01,760 --> 00:10:04,140
بالأحرى التجزئة المثبتة المرتبطة بهذا.

125
00:10:04,140 --> 00:10:09,150
لأنه، إذا قام المستخدم بتسجيل الدخول باستخدام هذا الحساب، فسيتعين عليه استخدام

126
00:10:09,150 --> 00:10:14,400
جزء تسجيل الدخول على Facebook الخاص به لتسجيل الدخول إلى تطبيقنا.

127
00:10:14,400 --> 00:10:18,330
بعد ذلك سوف نذهب لمصادقة ملف dark.js.

128
00:10:18,330 --> 00:10:23,138
لذلك هذا حيث قمنا بإعداد جميع

129
00:10:23,138 --> 00:10:25,507
استراتيجياتنا المختلفة لمصادقة جواز السفر.

130
00:10:25,507 --> 00:10:30,880
حتى هنا بالإضافة إلى استراتيجية jwt

131
00:10:30,880 --> 00:10:37,175
والاستراتيجية المحلية التي قمت بتكوينها هنا،

132
00:10:37,175 --> 00:10:43,176
اسمحوا لي إنشاء FacebookTokenStrategy هنا.

133
00:10:43,176 --> 00:10:49,965
ثم قم بتعيين كلمة المرور المطلوبة - facebook-token.

134
00:10:52,494 --> 00:10:56,561
وهذا سيعطينا استراتيجية جديدة يمكننا

135
00:10:56,561 --> 00:11:00,530
تكوينها في وحدة جواز السفر لدينا هنا.

136
00:11:00,530 --> 00:11:04,573
لذلك، النزول في التعليمات البرمجية هنا، هناك حق،

137
00:11:04,573 --> 00:11:17,055
في نهاية هذا الملف، وسوف أقوم بإنشاء،

138
00:11:17,055 --> 00:11:21,697
FacebookPassport.use ().

139
00:11:21,697 --> 00:11:28,380
وهكذا هذا هو المكان الذي أود أن تحديد فاسيبوتوكينستراتيجيتي جديدة هنا.

140
00:11:29,610 --> 00:11:33,730
وبعد ذلك سوف نحدد تفاصيل هذا

141
00:11:33,730 --> 00:11:38,886
FacebookTokenStrategy، والحق في هذه المرحلة هنا.

142
00:11:38,886 --> 00:11:45,280
لذلك، في هذا فاسيبوتوكينستاي، كيف يمكننا التعامل مع هذه المشكلة؟

143
00:11:45,280 --> 00:11:51,910
اسمحوا لي فقط التفاف حول كلمة التفاف بحيث يمكنك رؤية التعليمات البرمجية الكاملة.

144
00:11:51,910 --> 00:11:59,300
لذلك بالنسبة لـ FacebookTokenStrategy، سنبدأ بالقول أولاً.

145
00:11:59,300 --> 00:12:04,794
الجزء الأول من فاسيبوتوكتوكينستاي يأخذ كلينتيد.

146
00:12:08,542 --> 00:12:17,406
التي لدينا التكوين في Config.Facebook.Clientid هنا

147
00:12:17,406 --> 00:12:22,302
، والعميل، سر،

148
00:12:22,302 --> 00:12:30,340
والتي أيضا قمنا بتكوين في، لدينا ملف التكوين هنا.

149
00:12:30,340 --> 00:12:38,235
لذلك نحن في طريقنا إلى توفير هذا كمعلمة الأولى لهذه الاستراتيجية هنا.

150
00:12:38,235 --> 00:12:43,985
ثم المعلمة الثانية، هي حيث تتحدى

151
00:12:43,985 --> 00:12:48,145
وظيفة رد الاتصال التي تأتي في هذه المرحلة.

152
00:12:48,145 --> 00:12:53,015
وبالتالي فإن وظيفة رد الاتصال هنا يحصل على ثلاث قيم.

153
00:12:53,015 --> 00:12:57,100
لذلك يحصل AccessStoken،

154
00:12:59,672 --> 00:13:04,584
RefreshToken، الملف الشخصي،

155
00:13:04,584 --> 00:13:07,760
واستدعاء الاتصال كما هو الحال هنا.

156
00:13:07,760 --> 00:13:12,047
لذلك هذه هي المعلمات الأربعة التي تأتي في وظيفة رد الاتصال التي سنقوم

157
00:13:12,047 --> 00:13:13,447
بتكوينها في هذه المرحلة.

158
00:13:13,447 --> 00:13:18,660
لذلك اسمحوا لي أن المسافة البادئة هذا الرمز في بحيث يكون أكثر وضوحا قليلا لرؤية.

159
00:13:18,660 --> 00:13:25,592
وداخل وظيفة رد الاتصال هذه التي أقوم بتكوينها هنا،

160
00:13:25,592 --> 00:13:30,150
سأقول أولاً User.Findone.

161
00:13:30,150 --> 00:13:35,430
لذلك سنحاول معرفة ما إذا كان هذا مستخدم Facebook معين

162
00:13:35,430 --> 00:13:40,470
قد قام بتسجيل الدخول في وقت سابق حتى

163
00:13:40,470 --> 00:13:46,381
يتم تكوين الحساب بالفعل، مع FacebookID.

164
00:13:46,381 --> 00:13:49,051
الآن من أين نحصل على فيسبوكيد؟

165
00:13:49,051 --> 00:13:55,160
لاحظ أننا نحصل على هذا الملف الشخصي للمستخدم،

166
00:13:55,160 --> 00:13:59,630
القادمة إلى هنا، حتى تتمكن من رؤية أن هذا الملف الشخصي يأتي كمعلمة.

167
00:13:59,630 --> 00:14:04,208
سيحمل هذا الملف الشخصي الكثير من المعلومات القادمة من Facebook التي

168
00:14:04,208 --> 00:14:06,319
يمكننا استخدامها في تطبيقنا.

169
00:14:06,319 --> 00:14:13,326
يتم توفير AccessStoken، بالطبع، إلى الخادم من قبل المستخدم.

170
00:14:13,326 --> 00:14:20,870
لذلك، بمجرد أن نحاول العثور على مستخدم واحد على الأقل مع معرف ملف تعريف Facebook،

171
00:14:20,870 --> 00:14:26,200
لذلك إذا كان هذا المستخدم موجودًا، فقد وجدنا بالفعل أن المستخدم قد قام

172
00:14:26,200 --> 00:14:30,550
بتسجيل الدخول إلى حسابنا مسبقًا باستخدام نهج Facebook.

173
00:14:30,550 --> 00:14:37,078
لذلك، في هذه الحالة يمكننا المضي قدما وإلا سنقوم بإنشاء مستخدم جديد.

174
00:14:37,078 --> 00:14:42,416
لذا، فإن وظيفة رد الاتصال هنا سيكون هناك معلمتين،

175
00:14:42,416 --> 00:14:44,557
الخطأ والمستخدم هنا.

176
00:14:49,621 --> 00:14:55,298
وهذه وظيفة رد الاتصال كما سنرى،

177
00:14:55,298 --> 00:15:01,800
حسنا داخل هنا سوف نتحقق لمعرفة ما إذا كان (err).

178
00:15:01,800 --> 00:15:07,072
حتى إذا كان هذا يسبب خطأ، ثم بالطبع

179
00:15:07,072 --> 00:15:13,408
ما نحن بحاجة إلى القيام به هو العودة القيام به (خطأ، خطأ).

180
00:15:15,694 --> 00:15:20,663
لذلك هذا كما ترون هو وظيفة رد الاتصال التي تأتي

181
00:15:20,663 --> 00:15:23,577
كمعلمة لهذه الوظيفة هنا، لذلك

182
00:15:23,577 --> 00:15:26,770
سنقوم استدعاء القيام به مع الخطأ و false.

183
00:15:26,770 --> 00:15:31,830
إذا لم يكن خطأ ثم

184
00:15:31,830 --> 00:15:36,384
سنقول إذا (! خطأ

185
00:15:36,384 --> 00:15:41,950
&& المستخدم! == null).

186
00:15:43,170 --> 00:15:47,880
حتى إذا كان المستخدم ليس فارغًا، فهذا يعني أننا وجدنا مستخدمًا في النظام

187
00:15:47,880 --> 00:15:52,610
الذي لم يكن في وقت سابق مع هذا FacebookID معين، لذلك بالنسبة للمستخدم،

188
00:15:52,610 --> 00:15:59,750
كل ما نحتاج إلى القيام به هو العودة (null،) نظرًا

189
00:15:59,750 --> 00:16:05,100
لعدم وجود خطأ هنا، ثم سنقوم بإرجاع قيمة المستخدم لهذا هنا.

190
00:16:05,100 --> 00:16:08,560
مما يعني أنه إذا قام المستخدم بتسجيل الدخول مسبقًا باستخدام

191
00:16:08,560 --> 00:16:13,350
نهج Facebook، فسيكون المستخدم قد تم إنشاؤه بالفعل.

192
00:16:13,350 --> 00:16:17,730
وهكذا، سيتم العثور على هذا المستخدم ومن ثم نحن فقط تمرير مرة أخرى هذا المستخدم.

193
00:16:17,730 --> 00:16:25,010
إذا لم يكن كذلك، انظر إن لم يكن الجزء هو الجزء الأكثر إثارة للاهتمام من هذا التمرين.

194
00:16:25,010 --> 00:16:30,290
إذا لم يكن المستخدم موجودًا، فنحن بحاجة إلى إنشاء مستخدم جديد.

195
00:16:30,290 --> 00:16:33,959
الآن لإنشاء المستخدم الجديد، وسوف نقول المستخدم،

196
00:16:38,653 --> 00:16:42,181
= مستخدم جديد، وعندما نقوم بإنشاء مستخدم جديد،

197
00:16:42,181 --> 00:16:45,832
أذكر أننا بحاجة إلى تمرير في اسم المستخدم.

198
00:16:45,832 --> 00:16:50,970
سيتم الحصول على اسم المستخدم من الملف الشخصي، وسيكون لملف تعريف Facebook الذي

199
00:16:50,970 --> 00:16:57,200
تم إرجاعه حقل يسمى اسم DisplayName.

200
00:16:57,200 --> 00:17:02,050
وهذا هو الحقل الذي سأستخدمه لإنشاء مستخدم جديد هنا.

201
00:17:02,050 --> 00:17:07,176
لذلك سنقوم بإنشاء مستخدم جديد مع تعيين اسم المستخدم

202
00:17:07,176 --> 00:17:13,455
يساوي DisplayName، وبعد إنشاء المستخدم،

203
00:17:13,455 --> 00:17:21,874
ثم

204
00:17:21,874 --> 00:17:24,654
سنقول User.FacebookID، = profile.id.

205
00:17:24,654 --> 00:17:28,902
لذا ارجع إلى كائن الملف الشخصي هذا هنا،

206
00:17:28,902 --> 00:17:33,979
ثم ضع معرف Facebook الخاص بالمستخدم إلى معرف الملف الشخصي.

207
00:17:33,979 --> 00:17:38,204
بحيث في وقت لاحق، إذا كان نفس المستخدم يسجل الدخول،

208
00:17:38,204 --> 00:17:43,265
وهذا البحث سوف تكون قادرة على العثور على هذا المستخدم في قاعدة البيانات لدينا.

209
00:17:43,265 --> 00:17:46,450
ثم

210
00:17:46,450 --> 00:17:50,863
سنقول user.firstname

211
00:17:50,863 --> 00:17:57,242
= profile.name.GivenName

212
00:17:58,857 --> 00:18:02,447
لذا يحتوي الملف الشخصي على كائن الاسم هذا،

213
00:18:02,447 --> 00:18:07,970
والذي يحتوي على اسم معين واسم عائلة مرتبط بهذا.

214
00:18:07,970 --> 00:18:10,994
يتم إرجاع هذا من ملف تعريف المستخدم على Facebook.

215
00:18:10,994 --> 00:18:16,165
وأيضا user.lastname سنقوم

216
00:18:16,165 --> 00:18:21,026
بتعيينه إلى ملف التعريف. name.FamilyName.

217
00:18:22,762 --> 00:18:28,232
وبعد ذلك، بمجرد أن نقوم بإعداد كل هذه سوف نقول user.save.

218
00:18:28,232 --> 00:18:31,310
لذلك نحن حفظ التغييرات للمستخدم

219
00:18:31,310 --> 00:18:35,270
ومن ثم هذا سيعود خطأ والمستخدم.

220
00:18:35,270 --> 00:18:39,090
لذلك، فإنه سيعود خطأ إذا تعذر إنشاء المستخدم،

221
00:18:39,090 --> 00:18:42,960
وإلا فإنه سيعود المستخدم الذي تم إنشاؤه هنا.

222
00:18:42,960 --> 00:18:47,240
لذلك في هذه الحالة سوف نقول، إذا (err)،

223
00:18:47,240 --> 00:18:51,745
ثم سوف يعود القيام به (err،

224
00:18:51,745 --> 00:18:58,627
false) لأننا لم نتمكن من إنشاء المستخدم.

225
00:18:58,627 --> 00:19:03,824
آخر، تم إنشاء المستخدم بنجاح،

226
00:19:03,824 --> 00:19:08,615
لذلك سنعود إلى القيام به (null، المستخدم).

227
00:19:08,615 --> 00:19:11,265
لذلك بغض النظر عن الحالة،

228
00:19:11,265 --> 00:19:15,965
إذا كان المستخدم موجودًا، فستجد هذا المستخدم وترجع القيمة.

229
00:19:15,965 --> 00:19:19,824
إذا لم يكن المستخدم موجودًا، فستقوم بإنشاء مستخدم جديد استنادًا إلى

230
00:19:19,824 --> 00:19:22,431
ملف تعريف المستخدم على Facebook الذي حصلنا عليه.

231
00:19:22,431 --> 00:19:28,772
ثم إضافة في المستخدم الجديد إلى موقع الخادم لدينا، في قاعدة البيانات.

232
00:19:28,772 --> 00:19:32,642
لذلك هذه هي الاستراتيجية التي نقوم بتكوين

233
00:19:32,642 --> 00:19:37,532
لجواز سفرنا، و FacebookTokenStrategy الجديد.

234
00:19:37,532 --> 00:19:40,552
لذلك سيمكننا هذا من العثور على المستخدم.

235
00:19:40,552 --> 00:19:45,571
حتى الآن بعد أن قمنا بتكوين تطبيقنا إما

236
00:19:45,571 --> 00:19:50,499
لإنشاء مستخدم أو العثور على المستخدم استنادًا إلى معرف Facebook.

237
00:19:50,499 --> 00:19:55,752
الخطوة الأخيرة هي بالطبع لإدخال

238
00:19:55,752 --> 00:20:00,851
مسار جديد في ملف users.js.

239
00:20:00,851 --> 00:20:05,284
حتى في ملف users.js سوف نتذكر أن لدينا مسار التسجيل الذي

240
00:20:05,284 --> 00:20:09,950
يسمح للمستخدم للاشتراك في حساب محلي مع اسم المستخدم وكلمة المرور.

241
00:20:09,950 --> 00:20:15,137
ثم لديك تسجيل الدخول الذي يسمح للمستخدم بتسجيل الدخول باستخدام اسم المستخدم وكلمة

242
00:20:15,137 --> 00:20:15,730
المرور.

243
00:20:15,730 --> 00:20:19,455
ولكن الآن، سنستخدم Facebook لتسجيل الدخول إلى المستخدم.

244
00:20:19,455 --> 00:20:25,601
حتى في هذه الحالة سوف نقول، router.get،

245
00:20:25,601 --> 00:20:32,208
ونقطة النهاية ستكون /facebook/token.

246
00:20:32,208 --> 00:20:37,260
لذلك إذا أرسل المستخدم طلب الحصول على المستخدمين/facebook/token،

247
00:20:37,260 --> 00:20:41,550
فسنقوم بمصادقة المستخدم باستخدام

248
00:20:41,550 --> 00:20:45,585
المصادقة المستندة إلى Facebook OAuth 2.

249
00:20:45,585 --> 00:20:50,470
حتى هنا، سوف نقول passport.authenticate،

250
00:20:50,470 --> 00:20:57,555
ونحن في طريقنا إلى المصادقة باستخدام استراتيجية الفيسبوك رمزية.

251
00:20:57,555 --> 00:21:04,076
أذكر أننا قد قمنا بالفعل بتكوين هذا في ملف authenticate.js لدينا،

252
00:21:04,076 --> 00:21:10,908
لذلك سنقوم بتكوين جواز السفر مصادقة استراتيجية facebook-token

253
00:21:10,908 --> 00:21:15,786
ثم وظيفة رد الاتصال التي تحصل req، الدقة هنا.

254
00:21:23,390 --> 00:21:30,081
لذلك اسمحوا لي، تبديل كلمة التفاف هنا،

255
00:21:30,081 --> 00:21:36,356
حتى تتمكن من رؤية أن هذا هو router.get على نقطة النهاية هذه هنا.

256
00:21:36,356 --> 00:21:44,890
ثم هنا، وسوف تكوين هذا التطبيق.

257
00:21:44,890 --> 00:21:51,768
لذلك، في هذه المرحلة، نود أن نقول، إذا (req.user)، لاحظ الآن أنه عندما ندعو

258
00:21:51,768 --> 00:21:57,168
passport.authenticate مع استراتيجية الفيسبوك token.

259
00:21:57,168 --> 00:21:59,055
هذا، إذا كان ناجحًا،

260
00:21:59,055 --> 00:22:03,010
فسيكون قد تم تحميله في المستخدم في كائن الطلب.

261
00:22:03,010 --> 00:22:08,387
لذلك بحلول الوقت الذي نأتي إلى هذه النقطة هنا بعد

262
00:22:08,387 --> 00:22:11,596
تنفيذ passport.authenticate فيسبوك-توكين وير الأوسط،

263
00:22:11,596 --> 00:22:16,291
سيكون لديك المستخدم تحميلها بالفعل في كائن الطلب.

264
00:22:16,291 --> 00:22:23,070
حتى إذا كان هذا هو الحال، ثم، سوف نقول، سنقوم بإنشاء رمز مميز.

265
00:22:23,070 --> 00:22:27,709
سنقوم بإنشاء رمز ويب JSON هنا، تمامًا مثل الطريقة التي

266
00:22:27,709 --> 00:22:32,371
أنشأنا بها رمز ويب JSON عندما يقوم المستخدم بتسجيل الدخول هنا.

267
00:22:32,371 --> 00:22:35,275
لذا، نحن ذاهبون إلى نسخ ذلك هنا.

268
00:22:38,010 --> 00:22:41,586
Authenticate.getToken، لذلك هذا سوف يحصل لنا رمز ويب JSON.

269
00:22:41,586 --> 00:22:46,656
لذلك أساسا، يقوم المستخدم بإرسال رمز الوصول إلى الخادم السريع،

270
00:22:46,656 --> 00:22:50,634
يستخدم الخادم السريع AccessStoken للذهاب إلى Facebook

271
00:22:50,634 --> 00:22:52,979
ثم جلب الملف الشخصي للمستخدم.

272
00:22:52,979 --> 00:22:57,560
وإذا لم يكن المستخدم موجودًا، فسننشئ مستخدمًا جديدًا باستخدام معرف Facebook هذا.

273
00:22:57,560 --> 00:23:02,486
وبعد ذلك، سيقوم خادمنا السريع

274
00:23:02,486 --> 00:23:07,818
بإنشاء رمز ويب JSON ثم إرجاع رمز ويب JSON إلى عميلنا.

275
00:23:07,818 --> 00:23:13,878
سيتعين على جميع عمليات الوصول اللاحقة من مستخدمنا تضمين

276
00:23:13,878 --> 00:23:19,317
رمز ويب JSON هذا الذي قمنا بإرجاعه للتو باستخدام هذا الأسلوب.

277
00:23:19,317 --> 00:23:24,280
لذلك في هذه المرحلة لم تعد بحاجة إلى رمز الوصول إلى Facebook بعد الآن.

278
00:23:24,280 --> 00:23:29,287
يمكنك تجاهل الرمز المميز للوصول إلى Facebook في هذه المرحلة لأن

279
00:23:29,287 --> 00:23:35,237
رمز ويب JSON هو الرمز الذي يحافظ على مصادقة المستخدمين نشطًا

280
00:23:35,237 --> 00:23:39,602
لأي مدة يكون فيها رمز ويب JSON هذا نشطًا.

281
00:23:39,602 --> 00:23:45,529
الآن بالإضافة إلى ذلك، بالطبع نحن بحاجة أيضا إلى القيام بهذه الخطوات هنا.

282
00:23:45,529 --> 00:23:48,365
لذلك أنا فقط ذاهب لنسخ ذلك الجزء هنا.

283
00:23:48,365 --> 00:23:53,336
لأنني سأفعل بالضبط نفس الشيء في هذه الحالة أيضا،

284
00:23:53,336 --> 00:23:56,284
لذلك سنقوم لصق في هذا الرمز هنا.

285
00:23:56,284 --> 00:24:00,485
لذلك سنقول StatusCode = 200، نوع رأس المحتوى،

286
00:24:00,485 --> 00:24:06,120
وبعد ذلك سنقول res.json قمت بتسجيل الدخول بنجاح، وهذا كل شيء.

287
00:24:06,120 --> 00:24:17,498
لذلك مع هذا النهج، كما ترون، الآن باستخدام مكالمة إلى نقطة النهاية هذه.

288
00:24:17,498 --> 00:24:24,320
سيمر تطبيق المستخدم، العميل في هذه الحالة، في رمز الوصول إلى Facebook الذي حصل عليه للتو من Facebook.

289
00:24:24,320 --> 00:24:27,970
ثم سيستخدم خادمنا السريع رمز الوصول إلى Facebook

290
00:24:27,970 --> 00:24:30,380
للتحقق من المستخدم على Facebook.

291
00:24:30,380 --> 00:24:35,580
وبعد ذلك إذا تم الاعتراف بالمستخدم من قبل Facebook ليكون مستخدمًا

292
00:24:35,580 --> 00:24:42,110
شرعيًا، فسيعود الخادم السريع لدينا رمز JSON wed إلى عميلنا.

293
00:24:42,110 --> 00:24:44,920
ثم يتم مصادقة عميلنا

294
00:24:44,920 --> 00:24:48,650
ومن ثم يمكن المضي قدما في تنفيذ العمليات الأخرى

295
00:24:48,650 --> 00:24:53,460
باستخدام رمز JSON wed المميز في رأس جميع رسائل الطلب. في

296
00:24:53,460 --> 00:25:00,190
وقت لاحق، تماما كما فعلنا مع استراتيجية المصادقة المحلية، هذا كل شيء.

297
00:25:00,190 --> 00:25:07,630
لذلك أكملنا جميع التحديثات على طلبنا، دعونا حفظ التغييرات.

298
00:25:08,810 --> 00:25:14,940
الذهاب إلى محطة لدينا، دعونا بدء تشغيل الخادم هنا،

299
00:25:14,940 --> 00:25:19,710
لذلك سنقول بداية نبم، والخادم هو قيد التشغيل والتشغيل.

300
00:25:20,740 --> 00:25:26,320
ولاحظت أنني قد كتبت في منفذ P-A-S-S-S،

301
00:25:26,320 --> 00:25:28,790
وبالتالي تسبب هذا في خطأ هنا.

302
00:25:28,790 --> 00:25:32,250
لذلك لاحظ أن كم هو سهل لجعل الأخطاء.

303
00:25:32,250 --> 00:25:35,439
لذلك اسمحوا لي أن أذهب وتصحيح ذلك ومن ثم العودة وإعادة تشغيل الخادم الخاص بي.

304
00:25:37,080 --> 00:25:40,280
لذلك، عندما تواجه أخطاء مثل هذه، لا داعي للذعر.

305
00:25:40,280 --> 00:25:43,470
ننظر حولنا لمعرفة أين المشكلة وغالبا ما

306
00:25:43,470 --> 00:25:47,580
تكون مشكلة بسيطة من هذا القبيل من شأنها أن تسبب أخطاء بالنسبة لك.

307
00:25:48,970 --> 00:25:54,160
مرة أخرى، والعودة إلى users.js

308
00:25:54,160 --> 00:25:57,930
وترى أنه في ملف authenticate.js،

309
00:25:57,930 --> 00:26:02,270
لقد تكوين هذا القول P-A-S-S-S المنفذ.

310
00:26:02,270 --> 00:26:06,100
حتى في ملف authenticate.js، اسمحوا لي إصلاح ذلك إلى passsport

311
00:26:06,100 --> 00:26:08,702
ثم حفظ التغييرات ثم إعادة تشغيل الخادم الخاص بي.

312
00:26:09,770 --> 00:26:16,340
الآن، إعادة تشغيل الخادم الخاص بي، لذلك الخادم الخاص بي هو الآن قيد التشغيل.

313
00:26:17,400 --> 00:26:20,160
عند هذه النقطة، انتقل إلى متصفح.

314
00:26:20,160 --> 00:26:26,212
وفي المتصفح، اكتب https://localhost3443.

315
00:26:29,625 --> 00:26:37,350
إذا حدث أن تم تخزين هذه الصفحة مؤقتًا هنا، فقد ترغب في إزالة ذاكرة التخزين المؤقت.

316
00:26:37,350 --> 00:26:41,417
أو مجرد كتابة لوكالهوست: 3343/index.html،

317
00:26:41,417 --> 00:26:45,829
وبعد ذلك ستلاحظ على الفور أنه في هذا index.html،

318
00:26:45,829 --> 00:26:49,640
سترى هذا الزر يسمى زر تسجيل الدخول.

319
00:26:49,640 --> 00:26:54,280
لذلك نحن ذاهبون إلى النقر على زر تسجيل الدخول هذا لتسجيل الدخول إلى الفيسبوك.

320
00:26:54,280 --> 00:26:59,880
دعونا تسجيل الدخول وبعد ذلك سوف تأتي مع هذه الرسالة هنا.

321
00:26:59,880 --> 00:27:03,365
إذا قمت بتسجيل الدخول بالفعل إلى Facebook في وقت سابق،

322
00:27:03,365 --> 00:27:07,840
فسيطلب الإذن للمتابعة كمستخدم.

323
00:27:07,840 --> 00:27:12,440
إذا لم يكن الأمر كذلك، فسيطلب منك تسجيل الدخول إلى Facebook باستخدام

324
00:27:12,440 --> 00:27:14,030
ثم السماح لك بالمتابعة.

325
00:27:14,030 --> 00:27:17,000
منذ أن قمت بتسجيل الدخول إلى Facebook في وقت سابق قليلاً، حتى

326
00:27:17,000 --> 00:27:19,020
أتمكن من النقر فقط على متابعة.

327
00:27:19,020 --> 00:27:24,955
الآن، افتح وحدة تحكم جافا سكريبت للمطورين في الأسفل هنا.

328
00:27:24,955 --> 00:27:31,810
وفي وحدة تحكم جافا سكريبت، ترى مجموعة من الرسائل المطبوعة هنا.

329
00:27:31,810 --> 00:27:33,070
ثم على وجه الخصوص،

330
00:27:33,070 --> 00:27:37,720
افتح هذا الكائن الذي ستراه في وحدة تحكم جافا سكريبت.

331
00:27:37,720 --> 00:27:43,081
وداخل هذا الكائن، سترى هذا الرد البديل هنا.

332
00:27:43,081 --> 00:27:49,370
وهناك، سترى أداة الوصول موجودة هناك.

333
00:27:49,370 --> 00:27:55,320
الآن، هذا هو الرد الذي يتم الحصول عليه من الفيسبوك أو

334
00:27:55,320 --> 00:28:00,610
الخروج إلى خادم المصادقة من خلال التطبيق لدينا هنا.

335
00:28:00,610 --> 00:28:03,060
وسأقوم ببساطة بنسخ هذا،

336
00:28:03,060 --> 00:28:07,010
لأن هذا هو رمز الوصول الذي قدمه لنا Facebook.

337
00:28:07,010 --> 00:28:13,710
الآن، أنا بحاجة إلى إعطاء رمز الوصول هذا إلى الخادم السريع الخاص بي من أجل

338
00:28:13,710 --> 00:28:19,990
أن تذهب والتحقق من ملف التعريف الخاص بي، ومن ثم اسمحوا لي بتسجيل الدخول إلى هذا التطبيق.

339
00:28:19,990 --> 00:28:22,860
لذلك أنا أفعل هذا بطريقة مشدودة

340
00:28:22,860 --> 00:28:27,560
هنا ببساطة لأنني أردت أن تظهر لك كيف يأتي رمز الوصول هنا.

341
00:28:27,560 --> 00:28:30,940
وننسخ رمز الوصول، ثم سآخذ هذا

342
00:28:30,940 --> 00:28:36,820
واستخدم ساعي البريد لإرسال رمز الوصول هذا إلى خادم Express الخاص بي.

343
00:28:36,820 --> 00:28:42,330
الآن، عند تصميم تطبيق ويب مثل Angular، أو

344
00:28:42,330 --> 00:28:48,840
التطبيق الأيوني، أو تطبيق NativeScript، لا تحتاج إلى القيام بكل هذه الخطوات.

345
00:28:48,840 --> 00:28:53,634
الآن، بشكل أساسي عندما يتم إرجاع رمز الوصول إلى تطبيق الويب الخاص بك، أو

346
00:28:53,634 --> 00:28:58,086
تطبيق Angular، أو التطبيق الأيوني، أو تطبيق NativeScript،

347
00:28:58,086 --> 00:29:01,868
عليك ببساطة التقاط رمز الوصول هذا هناك.

348
00:29:01,868 --> 00:29:06,791
ثم ستقوم بتمرير رمز الوصول هذا إلى

349
00:29:06,791 --> 00:29:12,770
خادم Express باستخدام XMLHttpRequest للحصول على المعلومات.

350
00:29:12,770 --> 00:29:16,410
ولكن بما أنني أردت توضيح الخطوات يدويًا.

351
00:29:16,410 --> 00:29:21,319
لذلك، أنا إعداد هذا index.html مع

352
00:29:21,319 --> 00:29:24,640
رمز جافا سكريبت بسيط أن الفيسبوك يوفر لي.

353
00:29:26,420 --> 00:29:30,792
حتى أتمكن من استرداد رمز التفويض هذا الذي حصلنا عليه من

354
00:29:30,792 --> 00:29:31,454
Facebook.

355
00:29:31,454 --> 00:29:34,662
لذلك اسمحوا لي بنسخ هذا الرمز المميز للتفويض.

356
00:29:34,662 --> 00:29:39,110
الآن، سنذهب إلى ساعي البريد، ثم نحاول

357
00:29:39,110 --> 00:29:45,340
معرفة كيف يمكننا الحصول على رمز ويب JSON من خادم Express الخاص بنا.

358
00:29:45,340 --> 00:29:49,220
الآن، الذهاب إلى ساعي البريد، من ساعي البريد،

359
00:29:49,220 --> 00:29:54,525
اسمحوا لي الآن أن أفعل طلب جيت إلى

360
00:29:54,525 --> 00:30:03,195
لوكالهوست: 3443user'sfacebookToken.

361
00:30:03,195 --> 00:30:07,855
وعندما أرسل هذا الطلب إلى هذه النقطة،

362
00:30:07,855 --> 00:30:13,115
فإن التكوين الآخر الذي أحتاج إلى القيام به هنا هو

363
00:30:13,115 --> 00:30:18,080
أنني بحاجة إلى تمرير رمز الوصول هذا الذي حصلت عليه للتو.

364
00:30:18,080 --> 00:30:21,970
الآن، لتمرير رمز وصول في الرأس،

365
00:30:21,970 --> 00:30:26,370
يمكنني تمريره كرأس تخويل عن طريق كتابة التفويض.

366
00:30:26,370 --> 00:30:33,660
ولكن لاحظ أنه يجب كتابة القيمة كـ Beta برأس مال B في هذه الحالة،

367
00:30:33,660 --> 00:30:41,350
ثم قم بلصق رمز الوصول هذا الذي حصلنا عليه من Facebook هنا.

368
00:30:41,350 --> 00:30:44,840
لاحظ العاصمة B هنا،

369
00:30:44,840 --> 00:30:48,990
وبعد ذلك يمكنك تمرير هذا إلى خادمنا.

370
00:30:50,090 --> 00:30:53,970
ثم عند الرد من خادمنا،

371
00:30:53,970 --> 00:30:59,810
سترى أنك قد حصلت على رمز ويب JSON من موقع الخادم الخاص بنا.

372
00:30:59,810 --> 00:31:05,472
لذلك هذه هي إحدى الطرق التي تحصل فيها على رمز ويب JSON عن طريق تبادل

373
00:31:05,472 --> 00:31:10,000
رمز الوصول الخاص بك من Facebook الذي حصلت عليه للتو مع خادم Express الخاص بك.

374
00:31:10,000 --> 00:31:16,330
وسيذهب خادم Express الخاص

375
00:31:16,330 --> 00:31:19,960
بك بدوره ويحصل على معلومات ملفك الشخصي من Facebook،

376
00:31:19,960 --> 00:31:23,720
ثم ينشئ حسابًا خصيصًا لك،

377
00:31:23,720 --> 00:31:28,260
ثم يعيد لك رمز ويب JSON إذا كان كل شيء ناجحًا.

378
00:31:28,260 --> 00:31:33,290
طريقة أخرى لتمرير هذه المعلومات في الرأس،

379
00:31:33,290 --> 00:31:40,480
يمكنك كتابة access_token كمفتاح.

380
00:31:40,480 --> 00:31:46,268
وفي القيمة، يمكنك فقط كتابة

381
00:31:46,268 --> 00:31:52,020
رمز الوصول مثل هذا هنا، وبعد ذلك يمكنك إرسال الطلب ونفس الشيء.

382
00:31:52,020 --> 00:31:55,878
سيعود مرة أخرى رمز ويب JSON لك.

383
00:31:55,878 --> 00:31:59,410
ثم يمكنك التقاط رمز ويب JSON، ثم الاستمرار في

384
00:31:59,410 --> 00:32:05,300
بقية الوصول إلى الخادم السريع الخاص بك باستخدام رمز ويب JSON هذا.

385
00:32:05,300 --> 00:32:10,010
النهج الثالث هو تضمين هذا في

386
00:32:10,010 --> 00:32:15,410
عنوان URL نفسه كمعلمة استعلام.

387
00:32:15,410 --> 00:32:23,827
النهج الثالث هو القول رمزية؟ access_token =

388
00:32:23,827 --> 00:32:32,290
ثم قم بلصق رمز ويب JSON في معلمة الاستعلام هذه.

389
00:32:32,290 --> 00:32:37,140
لا تستخدم علامات الاقتباس هنا، فقط رمز ويب JSON نفسه.

390
00:32:37,140 --> 00:32:40,810
ثم أرسل الطلب إلى الخادم الخاص بك.

391
00:32:40,810 --> 00:32:47,680
وبعد ذلك سيعود الخادم الخاص بك رمز ويب JSON المقابل.

392
00:32:47,680 --> 00:32:52,450
لذلك ترى ثلاث طرق مختلفة يمكنك تحليلها في Facebook Access Token

393
00:32:52,450 --> 00:32:57,350
الخاص بك إلى الخادم الخاص بك، ثم الحصول على رمز ويب JSON من خادمك.

394
00:32:57,350 --> 00:33:01,660
وبعد ذلك، بقية هذه الخطوات المضي قدما تماما كما كان من قبل.

395
00:33:02,970 --> 00:33:09,400
الآن لإقناعك أنه في الواقع تم إنشاء حساب جديد مع

396
00:33:09,400 --> 00:33:13,720
ملف تعريف الفيسبوك لهذا المستخدم معين، دعونا نذهب إلى المحطة.

397
00:33:15,080 --> 00:33:20,240
في المحطة، في نافذة محطة جديدة، سأبدأ تموج مونغو هنا.

398
00:33:20,240 --> 00:33:25,050
حتى في تموج مونغو، اسمحوا لي أن أقول، استخدم الارتباك.

399
00:33:25,050 --> 00:33:31,560
ثم سأقول، db.users.find () .prety ()،

400
00:33:31,560 --> 00:33:36,570
ثم طباعة جميع المستخدمين المسجلين في النظام الخاص بي.

401
00:33:36,570 --> 00:33:40,540
لاحظت أن المستخدمين الثلاثة التي قمنا بتكوينها في التدريبات السابقة

402
00:33:40,540 --> 00:33:41,410
كلها هناك.

403
00:33:43,350 --> 00:33:48,130
لاحظ بالإضافة إلى ذلك مستخدم رابع تمت إضافته للتو في.

404
00:33:48,130 --> 00:33:53,580
ولاحظ أنه بالنسبة لهذا المستخدم بالذات، ليس لدينا التجزئة في المصدر حتى الآن،

405
00:33:53,580 --> 00:33:57,650
ولكن بدلاً من ذلك يتم إعداد FacebookID لهذا

406
00:33:57,650 --> 00:34:02,660
المستخدم، ويتم إعداد اسم المستخدم ليكون تلك القيمة، ويتم إعداد الاسم الأول هناك.

407
00:34:02,660 --> 00:34:05,580
وأيضا كان يجب أن يتم إعداد الاسم الأخير هنا ولكن

408
00:34:05,580 --> 00:34:08,990
أعتقد أن هناك خطأ صغير في التعليمات البرمجية الخاصة بي.

409
00:34:08,990 --> 00:34:16,910
لذلك سأذهب وأتحقق من جزء اسم العائلة منه هناك.

410
00:34:18,100 --> 00:34:20,110
الذهاب إلى authenticate.js.

411
00:34:20,110 --> 00:34:23,130
دعني أرى إن كنت أخطأت هنا

412
00:34:23,130 --> 00:34:24,580
ها نحن ذا

413
00:34:24,580 --> 00:34:28,340
كتبت في اسم F-A-M-I-L-Y.

414
00:34:28,340 --> 00:34:31,980
لذا كما ترى، حتى أنا لست حول ارتكاب الأخطاء.

415
00:34:31,980 --> 00:34:36,277
لذلك يجب أن يكون هذا اسم العائلة هنا،

416
00:34:36,277 --> 00:34:42,730
user.lastname الملف الشخصي.name.familyName هنا.

417
00:34:42,730 --> 00:34:46,520
لذلك اسمحوا لي حفظ التغييرات، والآن يجب أن تعمل التعليمات البرمجية بشكل صحيح.

418
00:34:47,710 --> 00:34:49,950
مرة أخرى العودة إلى المحطة،

419
00:34:49,950 --> 00:34:54,460
ترى الآن أنه تم إنشاء مستخدم جديد مع ملف تعريف Facebook هنا.

420
00:34:54,460 --> 00:34:59,130
الآن في أي وقت لاحق حاولت مصادقة نفسي باستخدام Facebook

421
00:34:59,130 --> 00:35:00,520
هي نفس العملية.

422
00:35:00,520 --> 00:35:03,000
حصلت على رمز الوصول من Facebook

423
00:35:03,000 --> 00:35:06,160
ثم تحليل في رمز الوصول إلى الخادم السريع الخاص بي.

424
00:35:06,160 --> 00:35:10,790
سيذهب خادمي السريع إلى Facebook، وجلب الملف الشخصي

425
00:35:10,790 --> 00:35:14,020
ثم تحقق لمعرفة ما إذا كان المستخدم موجودًا بالفعل.

426
00:35:14,020 --> 00:35:18,660
وفي تسجيل الدخول اللاحق الذي أقوم به باستخدام Facebook،

427
00:35:18,660 --> 00:35:22,460
أجد أن هذا المستخدم معين موجود بالفعل في النظام.

428
00:35:22,460 --> 00:35:26,540
لذلك، فإنه سيتم ببساطة المضي قدما وسيتم مصادقة المستخدم

429
00:35:26,540 --> 00:35:31,730
ومن ثم سيصدر الخادم الإضافي رمز ويب JSON

430
00:35:31,730 --> 00:35:37,385
لعميله ويمكننا المضي قدما من هذه النقطة فصاعدا تماما كما كان من قبل.

431
00:35:37,385 --> 00:35:42,395
كما ترى، فإن إعداد المصادقة المستندة إلى OAuth 2 باستخدام

432
00:35:42,395 --> 00:35:48,123
مزود خدمة OAuth 2 مثل Facebook ليس بهذه الصعوبة شريطة أن نحصل على

433
00:35:48,123 --> 00:35:54,135
وحدة استراتيجية مصادقة Facebook المناسبة.

434
00:35:54,135 --> 00:35:59,060
مثل رمز Passport Facebook المميز الذي يعتني بالفعل بالكثير من

435
00:35:59,060 --> 00:36:04,253
العمل نيابة عنا ثم يمكننا من إعداد الخادم السريع لدينا

436
00:36:04,253 --> 00:36:09,750
للتعامل مع مصادقة الطرف الثالث استنادًا إلى OAuth 2 من Facebook.

437
00:36:09,750 --> 00:36:12,730
مع هذا، نكمل هذا التمرين.

438
00:36:12,730 --> 00:36:16,490
في هذا التمرين، تعلمنا كيفية إجراء جميع مصادقة OAuth 2

439
00:36:16,490 --> 00:36:20,590
باستخدام Facebook كمصادقة OAuth 2 المقدمة.

440
00:36:20,590 --> 00:36:25,263
هذا هو الوقت المناسب لك لحفظ التغييرات التي قمت بها على

441
00:36:25,263 --> 00:36:29,521
مستودع Git الخاص بك مع جواز سفر الرسالة Facebook.

442
00:36:29,521 --> 00:36:35,380
[ موسيقى]