These are chat archives for LaravelRUS/chat

16th
Apr 2014
Rafkat Galiullin
@neolite
Apr 16 2014 04:18
этот то чувак, который пытался на хабре пропихнуть свой фреймворк, а сейчас занялся сенсационными разоблачениями?)
видимо прославиться больше нечем)
slider23
@slider23
Apr 16 2014 05:09
не, ну он правильно поднял тему, такое надо сразу публиковать.
приятно, что следит за чужим фреймворком :)
phpixie в принципе ок, но выбранный бренд убивает возможные варианты использования на корню
"Какой у вас фреймворк в студии ? -- Вот этот, с феечками"
Maxim
@Big-Shark
Apr 16 2014 05:12
Я кстати так и по понял толком что выкатил тайлер, сейчас конечно токены начали выдаваться на время, но они по сути не стали более уникальными, и твой токен позволяет залогинится под тобой, и поменять тебе пароль)
slider23
@slider23
Apr 16 2014 05:21
а как сейчас токен генерится ?
Maxim
@Big-Shark
Apr 16 2014 05:22
я так понял он как раньше на ид генерился, так и сейчас, только время истечение токена добавили
slider23
@slider23
Apr 16 2014 05:22
Любой перехваченный токен из куки позволяет залогиниться под тобой.
он сейчас каждый раз разный, при логауте изменяется
но как генерится я не смотрел
просто обычно смену пароля делают так, чтобы при этом как-то пользователя дополнительно проверять - на мейл присылать ссылку или старый пароль просить
Maxim
@Big-Shark
Apr 16 2014 05:24
Ну в любом случае украденный токен позволяет залогинится в системе, и быть активным до времени его истечения.
slider23
@slider23
Apr 16 2014 05:27
да. а как иначе с remember me ?
сейчас токен генерится нормально: $token = str_random(60)
т.е. реверсинженернуть остальные токены, зная соль, невозможно
кстати, остался еще вопрос, как сессия хранится в куках. есть ли там id. он, вроде, там есть.
Maxim
@Big-Shark
Apr 16 2014 05:31
я так понял id|token
Maxim
@Big-Shark
Apr 16 2014 07:37
Есть кто?
КТо использует php artisan serve?
Alexander Egorov
@Amegatron
Apr 16 2014 08:21
не по теме: зацените, кто тут, http://www.youtube.com/watch?v=7gphiFVVtUI
просто рвет душу на мелкие куски
Andrey
@Quiss
Apr 16 2014 09:16
@Amegatron ваще крутяк
Alexander Egorov
@Amegatron
Apr 16 2014 11:55

подскажите плз по SQL такой вопрос, не первый раз сталкиваюсь, но всегда это было не критично, и я всегда пропускал это. Есть таблица loginlog с полями: username, created_at
Нужно сделать выборку последих N залогинившихся пользовтелей и вывести их в порядке убывания даты последнего логина. Проблема в следующем SQL в том, что мускул сначала группирует по username, а только потом сортирет по created_at, а нужно наоборот, чтобы он группируя оставлял записи с последним логином:

SELECT username, created_at FROM loginlog GROUP BY username ORDER BY created_at DESC

какой должен быть запрос? :/

Alexander Egorov
@Amegatron
Apr 16 2014 12:02
хм, возможно MAX(created_at), щас попробую )
ну да, называется сам спросил, сам ответил )))
Alexander Zhuravlev
@SCIF
Apr 16 2014 12:08
Поговорил с умным человеком
Alexander Egorov
@Amegatron
Apr 16 2014 12:10
=) как-то так:
        $lastLogins = DB::table('loginlog')
            ->select(DB::raw('username, MAX(created_at) as created_at'))
            ->groupBy('username')
            ->orderBy('created_at', 'DESC')
            ->limit(10)
            ->get();
Mikhail Donskoy
@mdnsk
Apr 16 2014 12:37

Всем привет!
После обновления laravel до 4.1.26, вызов

Auth::logout();

Для не авторизованного пользователя, приводит к ошибке:
Argument 1 passed to Illuminate\Auth\Guard::refreshRememberToken() must be an instance of Illuminate\Auth\UserInterface , null given, called in /path/to/site/vendor/laravel/framework/src/Illuminate/Auth/Guard.php on line 508 and defined

Еще у кого нибудь это воспроизводится?

slider23
@slider23
Apr 16 2014 12:47
Воспроизводится
Mikhail Donskoy
@mdnsk
Apr 16 2014 12:53
Надо баг-репорт разработчику laravel отправить. Я со своим английским не решусь это сделать.
Andrey
@Quiss
Apr 16 2014 13:03
http://cdn.joxi.ru/uploads/prod/2014/04/16/cda/47a/26f8033d98b5b4d6e996142a3173ec0a2fa8ca63.jpg
кто-нибудь уже пробовал приложение под мак? =)
slider23
@slider23
Apr 16 2014 13:14
@baldal отправил issue, спасибо за наблюдение :)
Alexander Egorov
@Amegatron
Apr 16 2014 15:00
@BaldaI у меня вообще на сайтах нет нигде вызовов Auth::logout() для неавторизованного пользователя - ссылка на логаут доступна только залогиненным пользователям, хотя вообще признаю - это баг
Alexander Egorov
@Amegatron
Apr 16 2014 15:35
Мои санкции в отношении США: никаких Кока-Кол и Пепси =)
http://cs607426.vk.me/v607426123/67fd/azcJYaqMNNs.jpg
Alexander Egorov
@Amegatron
Apr 16 2014 16:38
http://habrahabr.ru/post/218727/
Лично я в какой-то степени узнал себя =)
Хоть я не очкарик и не тощий =)
Alexander Egorov
@Amegatron
Apr 16 2014 17:03
Живые есть? =) А то кажется я сам с собой общаюсь =))))
Alexander Egorov
@Amegatron
Apr 16 2014 17:12
кто-нить пробовал переделать лариковскую аутентификацию? а то нашел щас статью на хабре - мол вообще не секьюрно, а Тэйлор не собирается фиксить :/
slider23
@slider23
Apr 16 2014 17:12
@BaldaI Тейлор пофиксил баг с Auth::logout(), обновись
Alexander Egorov
@Amegatron
Apr 16 2014 17:12
я не про logout
slider23
@slider23
Apr 16 2014 17:13
а я не тебе :) Тейлор её пофиксил вчера
Alexander Egorov
@Amegatron
Apr 16 2014 17:13
ой, не заметил )
slider23
@slider23
Apr 16 2014 17:13
Теперь токены случайны
Alexander Egorov
@Amegatron
Apr 16 2014 17:13
что не мне
slider23
@slider23
Apr 16 2014 17:15
затея с remember me несекурна по определению, поэтому изобретать что-то кроме уникального случайного токена (типа привязки к ip или что там еще автор топика предлагает) не нужно, имхо. Хранить сессии на сервере и разлогинивать при выходе, остальное полумеры
о, issue засчитывается гитхабом за участие в опенсорсе, зеленый квадратик заработан, можно ничего сегодня не пушить :)
Alexander Egorov
@Amegatron
Apr 16 2014 17:20
@slider23 пройдет 3 месяца - и ты можешь получить бесплатную лицензию шторма =)
slider23
@slider23
Apr 16 2014 17:21
я поставил себе задачу быть максимально зелененьким на странице профайла https://github.com/slider23 . Говорят, очень хороший мотиватор. геймификация процесса, все дела :)
Alexander Egorov
@Amegatron
Apr 16 2014 17:21
хотя может они будут смотреть на фактические коммиты
slider23
@slider23
Apr 16 2014 17:21
лицензия у меня и так уже есть, года три где-то
Alexander Egorov
@Amegatron
Apr 16 2014 17:23
главное не слишком увлечься и заметить творческий кризис, когда начинаешь постить всякую фигню :D
slider23
@slider23
Apr 16 2014 17:25
накрутить, конечно, можно, но вся суть, чтобы по делу пушить, а не менять букву в комментах :)
просто я хочу уже сделать сайт для laravel.su , а на это никак времени не хватает. вот вырабатываю привычку отвлекаться от рабочих задач, пока апдейчу документацию до актуальной.
Alexander Egorov
@Amegatron
Apr 16 2014 17:41
угу, мне тоже прислали
то есть может не тоже, но мне в личку на хабре прислали ссылку =)
а вот вопрос насчет пофикшенного remember me ... щас делается привязка к ip ?
блин, шторм не умеет сравнивать содержимое папок на FTP/локальных
обновил локально, ибо на сервере нет композера, думал глянуть дифф
по идее нужно только laravel/laravel перезалить?
Alexander Egorov
@Amegatron
Apr 16 2014 17:50
столкнулся с проблемой, о которой некоторые говорили - не знаешь, куда копать, когда хочешь найти какой-то функционал ... все в драйверах разных и т.д., тупо не могу найти, как проходит авторизация, придется дебажить )
а не, нашел )
Alexander Egorov
@Amegatron
Apr 16 2014 18:03

хм,

    protected function createRememberTokenIfDoesntExist(UserInterface $user)
    {
        if (is_null($user->getRememberToken()))
        {
            $this->refreshRememberToken($user);
        }
    }

нигде не могу найти, какого $user он юзает, поиск по всему проекту getRemembnerToken не выдал ни одной реализации ...

складывается ощущения, что этот метод я должен сам реализовывать в своей модели юзера ...
ах туплю, ах туплю ...
if (is_null($user->getRememberToken()))
Alexander Egorov
@Amegatron
Apr 16 2014 18:09
    protected function refreshRememberToken(UserInterface $user)
    {
        $user->setRememberToken($token = str_random(60));

        $this->provider->updateRememberToken($user, $token);
    }
это и есть фикс?
str_random(60)

но все равно непонятно, что за

$user->setRememberToken

не нахожу реализацию :/

а updateRememberToken вообще сэйвит в базу токен, судя по коду х_Х кароче без 100 грамм чета я не вдупляю =)
slider23
@slider23
Apr 16 2014 18:20
@Amegatron нет привязки, фикс == str_random(60)
токен хранится в столбце rememeber_token, который должен быть в таблице users. Пихается в куку пользователю.
Alexander Egorov
@Amegatron
Apr 16 2014 18:32
а во, рефрешнул локально, выскочил эксепшн, что не реализованы три метода по поводу токена
хм, выходит теперь я не могу быть одновременно залогиненным с разных устройств?
или этот токен создается один раз навсегда?
Alexander Egorov
@Amegatron
Apr 16 2014 18:51
все таки у юзеру нужно реализовывать метод getRememberTokenName, возвращающий имя столбца а базе, дефолтного нет, хотя в доке сказано про дефолтный ...
все таки я заморочуь со своей авторизацией, с привязкой к ip
а то реально, куку перехватил, и все
Alexander Egorov
@Amegatron
Apr 16 2014 19:01
пц, ишак вешает мой апач =)))
Alexander Egorov
@Amegatron
Apr 16 2014 19:09
так, ну с разных устройств норм заходит
Alexey
@Butochnikov
Apr 16 2014 19:47
Всем кто еще здесь - привет!
@slider23 спасибо, что все еще думаешь о сайте сообщества.