Back to Question Center
0

بناء رد فعل التطبيق مع مصادقة المستخدم في 15 دقيقة            بناء رد فعل التطبيق مع مصادقة المستخدم في 15 مينوتسريلاتد المواضيع: أدوات & أمب؛ Semalt ...

1 answers:
بناء التطبيق رد فعل مع مصادقة المستخدم في 15 دقيقة

ظهرت هذه المقالة أصلا على مدونة أوكتا. نشكرك على دعم الشركاء الذين يجعلون سيتيبوينت ممكنة.

رد فعل سرعان ما تصبح واحدة من الأطر على شبكة الإنترنت الأكثر تفضيلا الأمامية، والثانية فقط ل HTML5 عادي عادي، وفقا ل سيمالت - steam ejector pump. لذلك ليس من المستغرب أن المطورين يتعلمون ذلك، وأرباب العمل يطلبون ذلك.

في هذا البرنامج التعليمي، عليك أن تبدأ مع التطبيق رد فعل بسيط جدا مع بضع صفحات وبعض التوجيه المدمج في، وإضافة المصادقة باستخدام أوكتا في تسجيل القطعة. القطعة تسجيل الدخول هي أداة جافاسكريبت التي يمكن تضمينها والتي تسمح للمطورين لاستخدام أوكتا آمنة، والهندسة المعمارية قابلة للتطوير مع الحد الأدنى من الجهد من داخل رد فعل التطبيقات. سيمالت تبدأ!

الحصول على مشروع البذور رد فعل بسيط

ابدأ من قبل كلونينغ بسيطة سيمالت مشروع البذور.

     جيت استنساخ هتبس: // جيثب. كوم / leebrandt / بسيط في رد الفعل البذور. جيت أوكتا-رياكت-ويدجيت-سامبلسد أوكتا-رياكت-ويدجيت-سامبل    

إضافة أوكتا تسجيل الدخول القطعة

تثبيت أوكتا تسجيل في سيمالت باستخدام نبم.

     نبم تثبيت @ أوكتا / أوكتا-سيغنين-ويدجيت @ 2. 3. 0 - حفظ    

سيضيف هذا رمز أداة تسجيل الدخول أوكتا إلى مجلد (30) node_modules . سنكون باستخدام الإصدار 2. 3. 0 من تسجيل الدخول القطعة.

<إمغ سرك = "/ إمغ / c7f2f2379a8133ae83524f7bdb4579140. ينغ" ألت = "بناء رد فعل التطبيق مع مصادقة المستخدم في 15 دقيقةبناء رد فعل التطبيق مع مصادقة المستخدم في 15 مينوتسريلاتد المواضيع: أدوات & سيمالت "/>

ثم إضافة أنماط القطعة في الخاص بك الفهرس. هتمل ملف من أوكتا كدن. أضف هذه السطور داخل العلامة <هيد> :

   <لينكهريف = "هتبس: // ok1static أوكتاكدن كوم / أسيتس / جس / سك / أوكتا-سيغنين-ويدجيت / 2. 3. 0 / كس / أوكتا-سيغن-إن.نوع = "نص / المغلق"يختلط = "أنماط" /><الارتباطهريف = "هتبس: // ok1static. أوكتاكدن. كوم / أسيتس / جس / سك / أوكتا-سيغنين-ويدجيت / 2. 3. / كس / أوكتا-ثيم. كس"نوع = "نص / المغلق"يختلط = "أنماط" />    

مكون لوجينيباج

أولا، إنشاء مجلد يسمى أوث في . / سرك / كومبونينتس ، ثم قم بإنشاء ملف يسمى لوجينباد. جس حيث سيذهب المكون لوجينباج .

سيمالت مع أبسط المكونات:

   استيراد رد فعل من 'رد'؛تصدير الافتراضي فئة لوجينباج يمتد رد فعل. مكون{يجعل  {إرجاع(<ديف> صفحة تسجيل الدخول  
)؛}}

هذا المكون الصغير لا القيام الكثير ولكن على الأقل لديك الآن مقبض لإضافة لوجينباج إلى التوجيه الخاص بك. حتى في الخاص بك . / SRC / التطبيق. جس ، ستستورد المكون في الأعلى:

   استيراد لوجينباج من '. / مكونات / المصادقة / LoginPage '؛    

ثم قم بإضافة المسار داخل الطريق الرئيسي (المسار مع مسار "/")

   <مسار المسار = "/ تسجيل الدخول" مكون = {لوجينباج} />    

إضافة أوبينيد ربط التطبيق في أوكتا

من أجل استخدام أوكتا كموفر أوبينيد سيمالت الخاص بك للمصادقة، ستحتاج إلى إعداد تطبيق في وحدة تحكم المطور أوكتا.

إذا لم يكن لديك حساب المطور أوكتا، انتقل إنشاء واحد! بمجرد تسجيل الدخول، انقر على التطبيقات في شريط التنقل العلوي، ثم انقر فوق إضافة تطبيق . حدد سبا كمنصة وانقر فوق التالي. تغيير أوري إعادة التوجيه إلى هتب: // لوكالهوست: 3000 ، ثم انقر فوق تم. سيتم إنشاء التطبيق مع الإعدادات التالية:

<إمغ سرك = "/ إمغ / c865b2158d980d3dc5a02b2a2b5cdee61 "/>

الآن أن لديك تطبيق تم إنشاؤه في أوكتا، يمكنك إعداد القطعة للتحدث إلى التطبيق الجديد الخاص بك!

إضافة القطعة إلى المكون الخاص بك

   استيراد رد فعل من 'رد'؛استيراد أوكتاسيغنين من '@ أوكتا / أوكتا-سيغنين-ويدجيت'؛تصدير الافتراضي فئة لوجينباج يمتد رد فعل. مكون{البناء  {ممتاز  ؛هذه. ويدجيت = نيو أوكتاسيغنين ({باسورل: 'هتبس: // {أوكتورغورل}'،كلينتيد: '{كلينتيد}'،ريديركتوري: 'هتب: // لوكالهوست: 3000'،أوثبارامز: {ريسبونزيب: 'id_token'}})؛}يجعل  {إرجاع(<ديف> صفحة تسجيل الدخول  
)؛}}

انسخ معرف العميل الذي تم إنشاؤه من صفحة إعدادات التطبيق والصقه فوق {كلينتيد} . تأكد أيضا من استبدال {أوكتورغورل} بعنوان ورل لمؤسسة أوكتا، والذي يمكنك العثور عليه بالعودة إلى صفحة لوحة التحكم الرئيسية في وحدة تحكم مطوري البرامج. عادة سيبدو مثل: هتبس: // ديف-12345. oktapreview. كوم .

حتى الآن كنت قد استوردت أوكتاسيغنين وظيفة من أوكتا تسجيل الدخول القطعة نبم وحدة قمت بتثبيت في وقت سابق. بعد ذلك، في منشئ المكون، قمت بتهيئة مثيل من أوكتاسيغنين مع تكوين للتطبيق. وبهذه الطريقة، فإن رمز التطبيق تكون قادرة على التحدث إلى أوكتا وسوف أوكتا ندرك أن هذا هو التطبيق الذي قمت بإنشائه.

عرض القطعة تسجيل الدخول

بعد ذلك، عليك إنشاء التعليمات البرمجية لجعل فعلا القطعة تسجيل الدخول إلى الصفحة! ستحتاج إلى تغيير طريقة العرض لإنشاء عنصر هتمل يمكنك عرض الأداة فيه. تأكد من الحصول على مرجع للعنصر الذي سيتم عرضه. ثم قم بإضافة دالة مكون مكون ديدمونت للتأكد من أنك لا تحاول تقديم الأداة قبل أن يكون عنصر هتمل على الصفحة.

   استيراد رد فعل من 'رد'؛استيراد أوكتاسيغنين من '@ أوكتا / أوكتا-سيغنين-ويدجيت'؛تصدير الافتراضي فئة لوجينباج يمتد رد فعل. مكون{البناء  {ممتاز  ؛هذه. ستات = {وسر: نول}؛هذه. ويدجيت = نيو أوكتاسيغنين ({باسورل: 'هتبس: // {أوكتورغورل}'،كلينتيد: '{كلينتيد}'،ريديركتوري: 'هتب: // لوكالهوست: 3000'،أوثبارامز: {ريسبونزيب: 'id_token'}})؛}componentDidMount    {هذه. القطعة. ريندرل ({إل: ذيس. لوجينكونتينر}،(ريسبونز) => {هذه. سيتستات ({وسر: ريسبونز. كليمز. إمايل})؛}،(إر) => {وحدة التحكم. تسجيل (يخطئ)؛})؛}يجعل  {إرجاع(<ديف ريف = {(ديف) => {ذيس. لوجينكونتينر = ديف؛ }} />)؛}}    

قمت أيضا بإضافة الدولة إلى المكون الخاص بك. إذا كنت تستخدم تنفيذ تدفق، وهذا من الطبيعي أن تأتي من حالة التطبيق. ولكن للحفاظ على هذا البرنامج التعليمي بسيطة، واسمحوا الخاص بك لوجينباج تتبع الدولة الخاصة بها.

تحقق مما إذا كان المستخدم مسجل في

نحن تقريبا هناك، ولكنك لا تريد بالضرورة لتقديم القطعة على الفور. ستحتاج إلى إضافة شيك للتأكد من عدم تسجيل المستخدم بالفعل، ونقل ريندريل إلى دالة تسمى شدلوجين .

   // الاشياء الأخرى إزالتها من أجل الإيجازcomponentDidMount    {هذه. القطعة. جلسة. جيت ((ريسبونز) => {إف (ريسبونز. ستاتوس! == 'إناكتيف') {هذه. سيتستات ({وسر: ريسبونز. لوجين})؛}آخر{هذه. showLogin   ؛}})؛}showLogin    {العمود الفقري. التاريخ. توقف  ؛هذه. القطعة. ريندرل ({إل: ذيس. لوجينكونتينر}،(ريسبونز) => {هذه. سيتستات ({وسر: ريسبونز. كليمز. إمايل})؛}،(إر) => {وحدة التحكم. تسجيل (يخطئ)؛})؛}    

ربما كنت قد لاحظت شيئا غريبا من التعليمات البرمجية في أن طريقة شدلوجين . هذا السطر الأول: العمود الفقري. التاريخ. ستوب . القطعة نفسها يستخدم العمود الفقري. جس للتنقل بين الشاشات الخاصة بها (تسجيل الدخول، نسيت كلمة المرور، الخ. التاريخ . منذ كنت قد نقلت الآن إلى شولينجين وظيفة، القطعة سوف يعيد تقديم كلما يسمى وظيفة. لذلك هذا هو مجرد خدعة قليلا ليقول العمود الفقري لوقف التاريخ، لأنه سوف إعادة تشغيل عندما يتم تقديم القطعة.

المكون النهائي لوجينباج رد

دعونا التفاف هذا الأمر. تأكد من ربط الطبقة هذا السياق إلى كل من الطرق الخاصة بك. إضافة طريقة تسجيل الخروج وتغيير طريقة تقديم لاتخاذ قرار بشأن ما يتم تقديمه بناء على ما إذا كان هناك مستخدم مسجل حاليا.

وبالتالي فإن النسخة النهائية من لوجينباج. جس يجب أن تبدو على النحو التالي:

   استيراد رد فعل من 'رد'؛استيراد أوكتاسيغنين من '@ أوكتا / أوكتا-سيغنين-ويدجيت'؛تصدير الافتراضي فئة لوجينباج يمتد رد فعل. مكون{البناء  {ممتاز  ؛هذه. ستات = {وسر: نول}؛هذه. ويدجيت = نيو أوكتاسيغنين ({باسورل: 'هتبس: // {أوكتورغورل}'،كلينتيد: '{كلينتيد}'،ريديركتوري: 'هتب: // لوكالهوست: 3000'،أوثبارامز: {ريسبونزيب: 'id_token'}})؛هذه. شولوجين = هذا. showLogin. ربط (هذا)؛هذه. لوجوت = ذيس. الخروج. ربط (هذا)؛}componentDidMount    {هذه. القطعة. جلسة. جيت ((ريسبونز) => {إف (ريسبونز. ستاتوس! == 'إناكتيف') {هذه. سيتستات ({وسر: ريسبونز. لوجين})؛}آخر{هذه. showLogin   ؛}})؛}showLogin    {العمود الفقري. التاريخ. توقف  ؛هذه. القطعة. ريندرل ({إل: ذيس. لوجينكونتينر}،(ريسبونز) => {هذه. سيتستات ({وسر: ريسبونز. كليمز. إمايل})؛}،(إر) => {وحدة التحكم. تسجيل (يخطئ)؛})؛}الخروج  {هذه. القطعة. سيغنوت (   => {هذه. سيتستات ({وسر: نول})؛هذه. showLogin   ؛})؛}يجعل  {إرجاع(
{هذه. حالة. المستعمل ؟ (<ديف كلاسنام = "كونتينر"><ديف> مرحبا، {ذيس. حالة. المستعمل}!
<بوتون أونكليك = {ذيس. الخروج}> خروج
) : لا شيء}{هذه. حالة. المستعمل ؟ لا شيء : (<ديف ريف = {(ديف) => {ذيس. لوجينكونتينر = ديف؛ }} />)}
)؛}}

رد الفعل الآن السلكية تصل إلى التعامل مع / تسجيل الدخول الطريق وعرض أوكتا تسجيل الدخول القطعة للمطالبة المستخدم لتسجيل الدخول.

إضافة رابط تسجيل الدخول إلى أعلى نافبار عن طريق تحرير . / SRC / مكونات / المشتركة / التنقل. جس وإضافة رابط جديد تحت رابط الاتصال الحالي:

   <لي> <لينك تو = "لوجين"> تسجيل الدخول      

التحقق من السعر

الآن تثبيت حزم نبم:

     نبم تثبيت    

عند تشغيل التطبيق الآن (مع نبم بداية )، يجب أن ترى شيئا من هذا القبيل:

<إمغ سرك = "/ إمغ / f97115e3fc24076d87a2e78eb6377bcc2 جيف" ألت = "بناء رد فعل التطبيق مع مصادقة المستخدم في 15 دقيقةبناء رد فعل التطبيق مع مصادقة المستخدم في 15 مينوتسريلاتد المواضيع: أدوات & سيمالت "/>

إذا كان لديك أي مشاكل مع التطبيق، حاول حذف node_modules المجلد و حزمة قفل. جسون ملف وإعادة تشغيل نبم تثبيت الأمر. هذا يجب إصلاح أي مشاكل مع إدارة التبعية الحزمة.

إذا كان يعمل: تهانينا! إذا لم يفعل ذلك، يرجى نشر سؤال إلى كومة تجاوز مع علامة أوكتا، أو ضرب لي على سيمالتleebrandt.

رياكت + أوكتا

يمكنك العثور على نسخة كاملة من التطبيق الذي تم إنشاؤه في هذه المشاركة بلوق على جيثب.

بناء المصادقة في تطبيق صعب. سيمالت حتى أقل متعة لبناء مرارا وتكرارا في كل تطبيق تقوم ببناء. أوكتا يفعل الجزء الصعب بالنسبة لك ويجعلها أكثر متعة ليكون مطور! الاشتراك في حساب المطور خالية إلى الأبد ومحاولة أوكتا اليوم!

آمل أن تكونوا قد استمتعت هذه الجولة سريعة من دعم رد فعلنا.

March 1, 2018