2 роли, администратор и пользователь. Используете ли вы что-то кроме обычного http http overhill? - PullRequest
4 голосов
/ 30 марта 2010

Я создаю свой первый сайт с рельсами, он состоит из блога, нескольких статических страниц и фотогалереи. Административный раздел имеет контроллеры пространства имен. Я также хочу создать список рассылки, собирая контактную информацию, (возможно, в будущем это будет еще и магазинчик веселья.)

Должен ли я использовать простую http-аутентификацию и проверить, является ли пользователь администратором? Или плагин лучше похож на authlogic, тогда определяйте роли пользователей, хотя их будет только два; админ и пользователь?

Ответы [ 6 ]

0 голосов
/ 01 апреля 2010

Я также голосую за authlogic + cancan.

Учебное пособие от Райан достаточно простое, чтобы выполнить его, и на его настройку уйдет несколько часов (даже для новичков).

Если вы попытаетесь построить свою собственную модель аутентификации (и я предполагаю, что у вас нет большого опыта), время, потраченное на (пере) выполнение всего этого (снова и снова), хорошо оправдывает время, потраченное на изучение из плюсов.

мой 0,02

0 голосов
/ 31 марта 2010

Чтобы ответить на ваш комментарий к dustmoo: если добавление правил авторизации в ваше приложение «делает беспорядок в представлениях», значит, вы не используете авторизацию правильным способом. Который является декларативным.

Declarative_authorization позволит вам "отделить" вопросы авторизации от вашего приложения.

Также есть cancan , который немного проще в настройке, но имеет меньше функций (вы теряете Model.with_permissions_to).

0 голосов
/ 31 марта 2010

Использование rpxnow.com . Интегрируйтесь с ними один раз, и это позволит пользователям Google, Yahoo, Microsoft, Facebook и т. Д. Заходить на ваш сайт.

Процесс довольно прост:

  1. Вставьте свой код JavaScript на своей странице входа.
  2. Напишите контроллер, который RPX теперь вызывает с токеном для обратного вызова аутентификации. Эта процедура анализирует токен и выполняет безопасный веб-вызов rpxnow.com для получения данных о пользователе. Возьмите адрес электронной почты, который затем является подлинным.
  3. Поскольку у вас теперь есть подлинный адрес электронной почты, пользователю может быть предоставлен доступ к внутренней части вашего сайта.

Если вы используете RPX для аутентификации, вам не нужно писать функцию «забыл пароль» или функцию «регистрации» с подтверждением по электронной почте. Поставщик удостоверений делает это.

Stackoverflow.com использует аналогичную схему для аутентификации.

(Это основано на предположении, что 99% интернет-пользователей имеют один из Google, Yahoo, Hotmail / Live или Facebook).

0 голосов
/ 30 марта 2010

Помните, что вам придется использовать HTTPS для шифрования имени пользователя / пароля при путешествии по проводной сети.

Вероятно, это не проблема, но что-то, о чем нужно знать.

0 голосов
/ 30 марта 2010

На самом деле это просто вопрос мнения, и вам придется делать то, что подходит именно вам.

По сути, вам просто нужно определить, что нужно для вашей аутентификации (логины пользователей и т. Д.) И для чего нужны ваши полномочия (что может делать пользователь).

Лично я большой поклонник authlogic для аутентификации и Райана из библиотеки авторизации railscasts cancan:

http://github.com/ryanb/cancan

Но опять же, это действительно ваше дело, и если вы используете git, вы можете разветвить свое приложение и попробовать оба. : D

Ура!

0 голосов
/ 30 марта 2010

Вы можете сделать это. Authlogic или Devise сделали это для вас.

...