Stacks-wallet-web: [اتصال] فشل تسجيل الدخول على الهاتف المحمول

تم إنشاؤها على ٢٤ مارس ٢٠٢٠  ·  22تعليقات  ·  مصدر: blockstack/stacks-wallet-web

فشل استخدام مكتبة الاتصال على الهاتف المحمول (Chrome و Firefox على Android) في معالجة تسجيل الدخول المعلق.

يتم فتح علامة تبويب مع استجابة المصادقة ، ومع ذلك ، لا يتم استدعاء وظيفة onFinish. يعمل هذا على سطح المكتب ، على سبيل المثال http://coronatrackerv1.s3-website-us-east-1.amazonaws.com/

حل محتمل ، تحقق يدويًا من userSession.isPendingSignin() واتصل بـ userSession.handlePendingSignIn()

impact-l size-s 🐛 Bug!

التعليق الأكثر فائدة

حسن الصيد muneebm . لدي فكرة عن كيفية إصلاح ذلك.

ال 22 كومينتر

شكرا لتقرير friedger !

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

هل تظل معلمة عنوان URL الخاص بإعادة التوجيه تعمل إذا لم يتم تشغيل رد الاتصال؟

لست متأكدا ما تعنيه هنا. كيف يمكنني التحقق من ذلك؟

راجع هذه المستندات: https://github.com/blockstack/ux/tree/master/packages/connect#authoptions

يمكنك تضمين خيار redirectTo . في حالة فشل رد الاتصال ، يجب إعادة توجيه المستخدم إلى redirectTo باستخدام معلمة authResponse ، تمامًا مثل طريقة عمل blockstack.js الحالية.

hstove هل هذه مسألة توفير إرشادات ترحيل إضافية بدلاً من إصلاح خطأ في حد ذاته؟

يأتي هذا من مستخدم في الدعم الذي أضاف إليه أعلاه ، ولكن لم يتلق ردًا في الخطوات التالية. هذا يؤثر على تطبيق coratracker.

مرحبًا دعم Blockstack ،

لقد تم إرسالي في طريقك لمعرفة ما إذا كان بإمكاننا حل مشكلة نواجهها في تطوير CoronaTracker (https://coronatracker.me/). قبل بضعة أيام ، قدمنا https://github.com/blockstack/ux/issues/300 هذه المشكلة ، حيث كنا نواجه مشكلة في تسجيل الدخول على الهاتف المحمول.

على Chrome iOS - لم نتمكن من تسجيل الدخول على الإطلاق
على Safari iOS - لم نتمكن من تسجيل الدخول إلا بعد عدة محاولات

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

نعم ، الحل هنا هو أنك ستحتاج إلى تنفيذ التدفق المعتاد userSession.handlePendingSignIn() داخل تطبيقك ، عند تحميل الصفحة. من الممكن أن نجعل Connect يقوم بذلك تلقائيًا ، لكنني لست متأكدًا بنسبة 100٪ أن هذه هي أفضل فكرة. سأكون ممتنًا للتعليقات على هذه الفكرة ، ولكن في الوقت الحالي ، أقترح تنفيذ ذلك يدويًا في تطبيقك لإصلاحه في أسرع وقت ممكن.

لذلك ما زلت جديدًا نسبيًا على Blockstack - هل نقول أنه على الهاتف المحمول سيتعين علينا التعامل مع مصادقة Blockstack بالطريقة "التقليدية" حيث تفتح نافذة جديدة تمامًا وما إلى ذلك؟ أو ، هل هناك طريقة لاستخدام تدفق Connect و handlePendingSignIn() بالترادف للجوال بحيث يتمتع المستخدمون بنفس التجربة على الهاتف المحمول أو سطح المكتب؟

الإصلاح هنا هو أنك ستحتاج إلى تنفيذ تدفق userSession.handlePendingSignIn () المعتاد داخل تطبيقك ، عند تحميل الصفحة.

لا تزال هناك تعليقات تفيد بأن المشكلة ظلت مع Connect حتى في تطبيق يسمى صراحةً handlePendingSignIn في وقت التحميل. هل يمكن تفسير هذه المشكلة من خلال استدعاء handlePendingSignIn أكثر من مرة؟

لذلك ما زلت جديدًا نسبيًا على Blockstack - هل نقول أنه على الهاتف المحمول سيتعين علينا التعامل مع مصادقة Blockstack بالطريقة "التقليدية" حيث تفتح نافذة جديدة تمامًا وما إلى ذلك؟ أو ، هل هناك طريقة لاستخدام تدفق كل من Connect و handlePendingSignIn () جنبًا إلى جنب مع الأجهزة المحمولة بحيث يتمتع المستخدمون بنفس التجربة على الهاتف المحمول أو سطح المكتب؟

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

لا تزال هناك تعليقات تفيد بأن المشكلة لا تزال قائمة مع Connect حتى في التطبيق الذي يسمى صراحةً handlePendingSignIn في وقت التحميل. هل يمكن تفسير هذه المشكلة من خلال استدعاء handlePendingSignIn أكثر من مرة؟

njordhov هل لديك مثال؟

هل يمكن تفسير هذه المشكلة من خلال استدعاء handlePendingSignIn أكثر من مرة؟

njordhov هل لديك مثال؟

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

يستخدم تطبيق CoronaTracker حزمة handlePendingSignIn قبل تهيئة Connect. كنت أظن أن هذا قد يتسبب في حدوث تعارض ، لكن مطوري CoronaTracker اختبروا هذه الفرضية من خلال تعطيل تهيئة رد فعل blockstack ، ولم يحدث أي فرق ، ولا يزال تسجيل الدخول إلى Connect قد فشل على الهاتف المحمول دون تهيئة react-blockstack ، تمامًا كما يحدث في التطبيقات التي لا تستخدم حزمة رد فعل كتلة.

راجع للشغل: هل يدعم handlePendingSignIn بالفعل أكثر من رد اتصال في المرة الواحدة؟ إذا لم يكن الأمر كذلك ، فربما يجب ذلك ، لذلك يمكن أن يكون هناك اشتراك متعدد في تغيير حالة المصادقة.

هل تمكن فريق Connect من تكرار مشكلة فشل تسجيل الدخول على الهاتف المحمول؟ أسمع فشل تسجيل الدخول على الهاتف المحمول عند استخدام Banter.

تسجيل الدخول للجوال لا يعمل حتى إذا كان لديك معلمة redirectTo في AuthOptions .
أعتقد أن السبب هو أنه يمكن تعيين didSendMessageBack في finalizeAuthResponse أدناه على true حتى لو لم يكن source.postMessage ناجحًا.
https://github.com/blockstack/ux/blob/f1921a7b109afb6c149e5f67df33ef52867cab96/packages/app/src/common/utils.ts#L53 -L78

حسن الصيد muneebm . لدي فكرة عن كيفية إصلاح ذلك.

friedgermuneebmnjordhovSomeMoosery

مرحبًا يا رفاق ، لقد قمت بتشغيل تسجيل الدخول إلى الاتصال بالهاتف المحمول على Android Chrome ويبدو أن المشكلة قد تم حلها.

يرجى مشاهدة الفيديو في الرابط أدناه وإخباري إذا كان هناك أي شيء آخر مطلوب أم يمكننا إغلاق هذه المشكلة؟

http://somup.com/cYhIoXjrET

مثير للاهتمام ، خاصة وأن الرابط الذي اتبعته هو من نسخة قديمة من تطبيق CoronaTracker ، لذلك لم يكن بسبب أي شيء من جانبنا. غير متأكد من الحالة داخل Blockstack على الرغم من :)

تضمين التغريدة
إنه يعمل أحيانًا ، لكن ليس دائمًا ، على ما أعتقد.

إكسوردريف:
https://xordrive.muneeb.now.sh/؟p=stxconnect.id.blockstack_daa6bcc3-91c2-490e-b322-3db9c3fee4de

التطبيق التجريبي للعلاقات العامة المرفق بهذه المشكلة:
https://xordrive.muneeb.now.sh/؟p=stxconnect.id.blockstack_3a24fc92-baaf-4ae9-af6d-5d207d5a5d6b

الأصواتtimstackblockhstove مثل لا يعمل مرة أخرى

image

دعني ألقي نظرة

مرحبًا markmhx و hstove ، تسجيل الدخول لا يعمل على الهاتف المحمول. أرفق خيارات التأليف الخاصة بـ BlockSurvey أدناه ، ألق نظرة. اسمحوا لي أن أعرف ، إذا كان علي تغيير أي شيء شكرا.

let authOptions = {
  redirectTo: '/dashboard',
  manifestPath: '/manifest.json',      
  sendToSignIn: false,
  userSession: this.userSession,
  appDetails: {
    name: 'BlockSurvey',
    icon: 'https://blocksurvey.io/assets/images/logo/blocksurvey-logo-login.svg'
  },
  finished: ({ userSession }) => {        
    window.location = "https://blocksurvey.io/dashboard";
  }
};

BlockSurveymuneebm لدينا مستندات جديدة لدعم إعادة توجيه تراجع هنا: https://docs.blockstack.org/develop/connect/overview.html

hstove ، شكرًا على ردك.

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

// وحدة تسجيل الدخول BS
إذا (this.userSession.isSignInPending ()) {

  // If it is in progress
  this.userSession.handlePendingSignIn()
    .then((userData) => {
      // Always redirect to dashboard
      window.location = <any>(Constants.DOMAIN_URL + "/dashboard");
    });
}

أنا أقوم بإعادة التوجيه بعد handlePendingSignIn () وأواجه نفس المشكلة. مشكلتي الأكبر هي أنه على الهاتف المحمول ، يظل التطبيق في النافذة المنبثقة الجديدة ، بدلاً من الإغلاق والعودة إلى نافذة الاتصال الأصلية.

موقع:
https://webby-daily.runkodapps.com/

فيديو / عرض:
https://photos.app.goo.gl/YmBtn3RaV6NfivqD9

mounted() { if (userSession.isUserSignedIn()) { this.setProfile(); } else if (userSession.isSignInPending()) { userSession.handlePendingSignIn().then(() => { this.setProfile(); // window.location = window.location.href.split("?")[0]; }); } ...

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات