Чтобы добавлять сообщения и комментарии, .

@kaineer:
kaineer

Есть приложение на рельсах.
Есть обычный кондовый логин из вебморды. С ним всё понятно, девайз и т.п.
Сессия хранится в кукисах.
А теперь внимание.
Есть необходимость логинить пользователей из внешних приложений, но не через обычный девайзовский sessions#create а ещё один сторонний контроллер.
И тут начинаются кровь, кишки и прочее, т.к. как только мы логинимся со стороны (но в том же броузере, где у нас уже открыто основное приложение), основное приложение разлогинивается, т.к. кука была модифицирована.

Дорогие знатоки: можно ли мне для разных скоупов использовать разные куки? Это бы оч. сильно помогло. Гуглить, видимо, умею плохо, т.к. не нашёл.

@wyldrodney:
wyldrodney

Жуйка, второтег неосяливаем. Не нужно писать простой аналог. Есть красивое решение для админ-панелей: HTTP Basic Authentication (http://asciicasts.com/episodes/270-authentication-in-rails-3-1).
#следующий пост будет про зверскую заёбанность

@wyldrodney:
wyldrodney

Жуйка, второтег неосяливаем. Нужно писать простой аналог.

@wyldrodney:
wyldrodney

Как перенаправить на страницу sign_in, затем вернуть на указанную (request.url, к примеру)?

@wyldrodney:
wyldrodney

Хочу перенаправление на предыдущую страницу после авторизации в собственноручно написанном методе. Пока это выглядит как:
def authenticate_admin!
sign_in_and_redirect(:user, request.url) unless current_user && current_user.email == "wyldrodney@mail.ru"
end
и ещё не работает. Но это красиво! Осталось узнать что такое scope в их понимании.

@wyldrodney:
wyldrodney

Проверку на админство родил через такой хэлпер.
def is_admin?
redirect_to "/users/sign_in" unless current_user && current_user.email == "wyldrodney@ya.ru"
end
Кривизна во все поля!

@demiazz:
demiazz

Вообще красивый доклад о авторизации через соцсети на рельсах для блондинок. Там не только OmniAuth + Devise, но это реально один из самых умных и простых решений для такого типа авторизации без дополнительного геммороя. В общем вот видео univertv.ru

@demiazz:
demiazz

Юзать Devise когда только можно. Если уж писец как надо реализовать логику самому, и прикрутить своих кундштюков — то AuthLogic. И последнее: если работать не с ActiveRecord, то в жопу AuthLogic, который кроме нее ничего не умеет.

@demiazz:
demiazz

Если вы хотите пользовать HAML или Slim вместе с Devise — то вот тут есть как конвертировать views github.com По умолчанию, Devise отключили поддержку HAML. С помощью указанной утилиты html2haml можно похоже и конвертить и HTML5Boilerplate шаблоны, написанные на базе ERB. (:

@demiazz:
demiazz

Блять. Сижу втыкаю в авторизацию с помощью твиттера, да фейсбука. Думаю, как это к рельсам привязывать. А оно вон оно как оказывается начальник. Ставишь старый добрый Devise, который умеет OmniAuth, и помимо твиттера, контакта, лицокниги, в твоем распоряжении еще 100500 сервисов, через которые можно авторизовать пользователей. Остается другой вопрос... А что делать, если к примеру, пользователь авторизовался при помощи Twitter, в другой раз он хочет через лицокнигу — как определить, что это один и тот же пользователь?

@demiazz:
demiazz

Все таки без костылей не обошлось. Для всего Devise нужен один layout. Для редактирования профиля другой, плюс к нему еще и редирект на него же после изменений (типа в настройках все это). Чтобы сменить layout — телодвижений немного. А вот чтобы сделать нужный редирект — нужно наследовать весь контроллер. >_< либо иметь его копию среди своих контроллеров >_< фак мой мозг

@demiazz:
demiazz

Только что все работало. Теперь не работает ничего. И все после правки шаблона... Хотя кажется я знаю где собака кость зарыла >_< но это ужас

@demiazz:
demiazz

у меня сейчас будет нервный срыв. Как этот гребаный Devise заставить сука рендерить им же падла сгенереные шаблоны для разнх моделей, а не из папки своей установки >_< сука, ебаный идиотизм падла >_< матов и нервов не хватает

@demiazz:
demiazz

Какая то неведомая фигня. Сколько ставил — работает. Тут поставил монгоид, ставлю devise — имя базы данных должно быть строкой или символом. Че за неведомая фигня О_о

@demiazz:
demiazz

Сцуко. Это мой нокаут — няшный модуль авторизации из коробки работает с няшной ORM для MongoDB. Это нокаут и полный разгром.

@demiazz:
demiazz

Продолжаю познавать темную сторону силы. Печеньки все таки есть. Джанга говорите, плагины... Посмотрел на плагин авторизации для рельсов devise, и понял, что из виденного мной питонячего аналогом возможностей может быть только инструментарий repoze.bfg. Знаменитая django-registration и django.contrib.auth — это жалкие недочихи. Сцуко. Теперь я понял, чем рельсовики завлекают на темную сторону силы.