سؤال

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

كيف يمكنني أخذ وحدات التحكم الموجودة لدي...

class Controller_Profile extends Controller
{
    function action_index( $user_id )
    {
        // User should already be authenticated by here I think
    }
}

... واستخدامها مع نوع من نظام المصادقة

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

المحلول

بالنسبة إلى Kohana 3، ستحتاج إلى القيام بتسجيل الوصول before و لا __construct كما يقترح JIStone.

public function before()
{
    parent::before();

    // This automatically checks for an auto login cookie (thanks kemo).
    if ( ! Auth::instance()->logged_in())
    {
        // Redirect to a login page (or somewhere else).
        $this->request->redirect('');
    }
}

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

نصائح أخرى

إذا كنت ستطلب من المستخدم أن يتم تسجيله لجميع الصفحات الموجودة على وحدة التحكم، فيمكنك وضع علامة اختيار في ملفك __construct() إفادة:

function __construct()
{
    //Check roles for Access!!!!
    parent::__construct();
    $this->load_user();
    if( ! $this->is_registered )
    {
        if(request::is_ajax())
            die('This ajax call cannot be completed due to permission issues.');
        // this will redirect from the login page back to this page
        $this->session->set('requested_url', url::current());
        url::redirect('user/login');
    }
}

هذا هو الكود الذي نستخدمه، ولكنه Kohana 2، وليس 3، لذا ستحتاج إلى تعديله قليلاً لتحقيق أغراضك.

قد قدمت رابطا لخطر قصير للتثبيت والاستخدام الأساسي ل وحدة مصادقة في Kohana 3

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top