سؤال

أنا أستخدم Kohana 2.3.4 ولا يمكنني الحصول على وحدة المصادقة للعمل.

أنا فقط أضيف مستخدم مثل هذا:

$user = ORM::factory('user');
$user->username = 'admin';
$this->auth = Auth::instance();   
$user->email    = 'admin@example.com';
$user->password = 'secret';

$user->add(ORM::factory('role', 'login'));
$user->save();

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

نموذج المستخدم الخاص بي هو من الوثائق. بمعنى آخر

// and, in models/user.php
class User_Model extends ORM {
    protected $has_and_belongs_to_many = array('roles');

    public function unique_key($id = NULL)
    {
        if ( ! empty($id) AND is_string($id) AND ! ctype_digit($id) )
        {
            return 'username';
        }

        return parent::unique_key($id);
    }

}

في الفحص الوثيق، لا يتم استدعاء الملف Auth_User_Model. لقد أفسدت ذلك وحصلت على أي شكاوى.

لذلك تغيرت

class User_Model extends Auth_User_Model {

والآن هو تجزئة كلمات المرور. هل هذه هي الطريقة الصحيحة لاستخدامها؟ أنا مندهش أنا لا أرى المزيد من التعليقات حول هذا الموضوع؟ ل

class User_Model extends ORM {
هل كانت مفيدة؟

المحلول

نعم، هذه هي الطريقة الصحيحة لاستخدام طراز المستخدم الخاص بك باستخدام برنامج تشغيل ORM Auth. يمكنك أيضا تحميل __Set () في النموذج الخاص بك وتفعل ذلك مثل Auth_User_Model.

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