@gmrash
Основатель МИС MEDODS

Авторизация пользователей Ruby on Rails: писать свою или использовать gem-ы?

Задачи: Авторизация пользователей, роли, права доступа, два вида авторизации для пользователей backoffice и клиентов.

Стоит ли писать авторизацию с нуля? Попробовали поковырять Devise, как то не гибко без глубокого изучения получается, думаем написать свою, но вот вопрос не зашьемся ли с этой задачей.
  • Вопрос задан
  • 7431 просмотр
Пригласить эксперта
Ответы на вопрос 4
AMar4enko
@AMar4enko
Для авторизации Devise (если хотите гибче - можете сразу Warden взять)
Для разграничения полномочий CanCan.
Все это уже давным-давно проверено на практике.
Ответ написан
viktorvsk
@viktorvsk
Authlogic - если нужна гибкость.
Но мне кажется, вы просто поняли, что такое девайс. Он не решает ни одну из задач, что вы привели, он занимается аутентификацией.
CanCan (или уже CanCanCan для 4 рельс) занимается авторизацией, но не занимается ролями
Роли можно сделать самому (если все просто), например, как предлагает канкан - https://github.com/ryanb/cancan/wiki/Role-Based-Au...
или использовать разные гемы railscasts.com/episodes/188-declarative-authorizat...

если ваш, так называемый, backoffic и клиент - нечто большее, чем права доступа по ролям, то вообще не понимаю, что это, и каким боком к девайсу.

Аутентификация и авторизация - настолько популярная тема, что вы точно не сделаете ничего качественно нового
Ответ написан
FanKiLL
@FanKiLL
А я считаю, что авторизацию и аутентификацию нужно писать под себя.
Единственное что я бы не стал сам писать это аутентификацию по Oauth - и взял бы OmniAuth
А так всё остальное пишется довольно быстро и главное что вы будете полностью понимать механизм того как работает по сути самая главная часть вашего приложения. Хотя если вы хорошо знаете gem допустим device и точно понимаете как он работает и если что то случится вы сможете всё поменять - берите его.

В чём проблема написать это с нуля не понимаю, тем более например на railscasts есть скринкаст из 2-ух частей, где показывается как сделать это с нуля. Сделать потом табличку с ролями и метод проверяющий есть ли у юзера та или иная роль - тоже не так сложно.

Я к тому, что это важная часть приложения - по сути это будущий костяк - по которому вы будите пускать в админку или давать - не давать что то редактировать или пускать в какую то часть сайта.
Ответ написан
Комментировать
zion5un
@zion5un
devise+pundit тоже неплохо вместе работают
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы