Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Модуль Auth в Kohana 3.2 
:(
    Опции темы
BASSON
Дата 24.10.2011, 03:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 18.10.2011

Репутация: нет
Всего: нет



Народ может кто дать готовые примеры регистрации авторизации на kohana 3.2 с модулем Auth..  Что бы там была проверка валидации полей и т.д. Весь инет перерыл не чего не нашел нужного..
PM MAIL   Вверх
Muerto
Дата 24.10.2011, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Для 3.2 я сам когда то искал не нашел...

Проще найти для 3, и поковырять.

К примеру http://blog.mixu.net/2010/09/06/step-by-st...-kohana-3-auth/

А вообще меня не купить словами что в кохане код сам себя объясняет  smile 


--------------------
user posted image
PM MAIL   Вверх
gta4kv
Дата 24.10.2011, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Берете любой пример по модулю Auth (ORM) и по Kohana_Validation, какие проблемы? Регистрация делается в полторы команды...

Это сообщение отредактировал(а) gta4kv - 24.10.2011, 19:39
PM MAIL   Вверх
BASSON
Дата 31.10.2011, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 18.10.2011

Репутация: нет
Всего: нет



Цитата(gta4kv @ 24.10.2011,  18:25)
Берете любой пример по модулю Auth (ORM) и по Kohana_Validation, какие проблемы? Регистрация делается в полторы команды...

Ну если это так просто не могли бы выложить эти полторы команды? 
PM MAIL   Вверх
gta4kv
Дата 31.10.2011, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Регистрация к Auth не относится, добавляете юзера в `users`, и и присваиваете ему роль login в `user_roles`.


Вот простой пример с использованием ORM:
Код

if($_POST)
        {
            $data = (object) Arr::extract($_POST, array('email', 'login', 'pass', 're-pass', 'captcha'));

            $user = ORM::Factory('user');

            $user->username = $data->login;
            $user->email = $data->email;
            $user->password = $data->pass;

            $user->save();

            if($user->add('roles', ORM::factory('role', array('name' => 'login'))))
            {
                if(Auth::instance()->login($data->login, $data->pass))
                {
                    $this->request->redirect(Route::get('user')->uri(array('action' => 'profile')));
                 }
             }
        }

PM MAIL   Вверх
BASSON
Дата 1.11.2011, 02:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 18.10.2011

Репутация: нет
Всего: нет



Цитата(gta4kv @ 31.10.2011,  22:57)
Регистрация к Auth не относится, добавляете юзера в `users`, и и присваиваете ему роль login в `user_roles`.


Вот простой пример с использованием ORM:
Код

if($_POST)
        {
            $data = (object) Arr::extract($_POST, array('email', 'login', 'pass', 're-pass', 'captcha'));

            $user = ORM::Factory('user');

            $user->username = $data->login;
            $user->email = $data->email;
            $user->password = $data->pass;

            $user->save();

            if($user->add('roles', ORM::factory('role', array('name' => 'login'))))
            {
                if(Auth::instance()->login($data->login, $data->pass))
                {
                    $this->request->redirect(Route::get('user')->uri(array('action' => 'profile')));
                 }
             }
        }

Я просто думал что валидация есть в модели Model_Auth_User. И не нужно городить своих правил валидации. Кстати у вас в примере валидации нет...
PM MAIL   Вверх
gta4kv
Дата 1.11.2011, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



В Model_Auth_User валидация есть на три поля стандартных.
PM MAIL   Вверх
BASSON
Дата 3.11.2011, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 18.10.2011

Репутация: нет
Всего: нет



Валидация валидацией но в ko3.2 не все так просто благо в модели model_auth_user есть готовая валидация и функция create_user. 
В итоге регистрация пользователя свелась к паре строк когда:
Код

if ($_POST)
    {
        try
        {
        $post = Arr::extract($_POST, array('email', 'username', 'password', 'password_confirm'));
        $user = new Model_User();

        $user->create_user($post, array('email', 'username', 'password',));

        $user->save();

                $login_role = new Model_Role(array('name' => 'login'));
            $user->add('roles', $login_role);

        }
        catch (ORM_Validation_Exception $e)
        {
        //Вывод ошибок валидации
                print_r($e->errors('models'));
        }
    }

Кстате мне не совсем понятны строчки из вашего кода gta4kv:
Код

$data = (object) Arr::extract($_POST, array('email', 'login', 'pass', 're-pass', 'captcha'));
            $user = ORM::Factory('user');
            $user->username = $data->login;
            $user->email = $data->email;
            $user->password = $data->pass;

Чем вас не строили стандартные имена password pasword_confirm и очень удобная функция values()?
Например так:
Код

$data = Arr::extract($_POST, array('email', 'login', 'password', 'password_confirm', 'captcha'));
$user->values($data,  array('email', 'login', 'password'));

Или вам нравиться писать много кода?

PM MAIL   Вверх
gta4kv
Дата 3.11.2011, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Ну эти строки были написано в январе этого года, когда я только-только начинал познания KO. smile
PM MAIL   Вверх
BASSON
Дата 3.11.2011, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 18.10.2011

Репутация: нет
Всего: нет



Цитата(gta4kv @ 3.11.2011,  23:30)
Ну эти строки были написано в январе этого года, когда я только-только начинал познания KO. smile

Понятно. А не посоветуете ли хороший модуль для ko3.2 что бы на мыло почту отсылать??
PM MAIL   Вверх
gta4kv
Дата 4.11.2011, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



PM MAIL   Вверх
BASSON
Дата 4.11.2011, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 18.10.2011

Репутация: нет
Всего: нет



Меня кохана порой убивает. Пытаюсь авторизоваться:
Код

    public function action_signin()
    {
    if ($this->auth->logged_in())
    {
        $this->request->redirect("users/profile");
    }

    $this->template->content = View::factory('users/signin');

    if ($_POST)
    {

        $post = Arr::extract($_POST, array("username", "password", "back"));

        if (Auth::instance()->login($post['username'], Auth::instance()->hash_password($post['password'])))
        {

        $this->request->redirect($post['back']);
        }
        else
        {
        $this->template->errors['auth'] = "Неверный логин или пароль, попробуйте еще раз!";
        }
    }
    }

Но авторизации не происходит постоянно вылетает неверный логин или пароль уже.. Пользователь с базе есть роль login ему дана. логин и пароль ввожу правильно в чем может быть дело?
PM MAIL   Вверх
gta4kv
Дата 4.11.2011, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



hash_password делать в KO3+ не надо. Он сам это делает.

Это сообщение отредактировал(а) gta4kv - 4.11.2011, 14:11
PM MAIL   Вверх
BASSON
Дата 5.11.2011, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 18.10.2011

Репутация: нет
Всего: нет



Цитата(gta4kv @ 4.11.2011,  14:10)
hash_password делать в KO3+ не надо. Он сам это делает.

Однако хабр и официальный сайт говорит другое:

#3605 — AUTH::login() теперь не хеширует пароль самостоятельно
PM MAIL   Вверх
gta4kv
Дата 5.11.2011, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Это вы не так понимаете, что там написано.

/modules/orm/classes/kohana/auth/orm.php

Смотрим функцию login. Видим что?

Код

if (is_string($password))
{
    // Create a hashed password
    $password = $this->hash($password);
}


Вопросы?

Добавлено @ 11:26
А уж про ссылку на кохану молчу.


Цитата

Remove hashing by default for user logins. Auth drivers are now in control of this behavior. Fixes #3605


Перечитайте внимательно. 

Это сообщение отредактировал(а) gta4kv - 5.11.2011, 11:28
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0971 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.