كيف يمكنني الحصول على loginRedirect من مواقع متعددة في تسجيل الدخول للكيك؟

StackOverflow https://stackoverflow.com/questions/238358

  •  04-07-2019
  •  | 
  •  

سؤال

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

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

إذا كنت من تسجيل الدخول / المستخدمين / تسجيل الدخول مباشرة يفعل قدما إلى loginRedirect. أعتقد أن المشكلة لديها ما تفعله مع نشر النموذج من صفحة واحدة إلى صفحة أخرى بدلا من نفسها، المصادقة تلقائيا تعتقد أنك تريد العودة إلى الصفحة السابقة.

وأي أفكار؟

هل كانت مفيدة؟

المحلول

وفي AppController

public function beforeFilter( )
{
    $this->Auth->autoRedirect   =   false;
}

وفي UsersController

public function login( )
{
    if( $this->Auth->user( ) )
    {
        $this->redirect( array(
            'controller'    =>  'users' ,
            'action'    =>  'index' ,
        ));
    }
}

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

نصائح أخرى

ونعم المصادقة لديه ميزة حيث سيتم توجيهك إلى الصفحة التي حاولت الوصول قبل تسجيل الدخول. إذا وضع إعادة توجيه loging لم تنجح، يمكنك محاولة تعيين loginRedirect إلى false والقيام هذا- دليل ($ > إعادة توجيه ([..]) في UsersController :: إجراءات تسجيل الدخول.

ويمكنك إما إيقاف $ autoRedirect من خلال وضع لكاذبة والتعامل مع إعادة توجيه من قبل نفسك. المشكلة مع AuthComponent هي أن هناك الكثير من automagic التي لا يمكنك التحكم حقا، أو فقط من قبل الخارقة.

وحل واحد لمشكلتك تم حذف مفتاح Session.Auth.redirect، وبالتالي فإن AuthComponent دائما استخدام URL $ loginRedirect:

$this->Session->del('Auth.redirect');
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top