2010-12-14 2 views
0

В настоящее время я использую RESTful Authentication framework для авторизации с помощью моего приложения rails. Это все хорошо и хорошо (хотя, по моему мнению, немного датировано?), Но теперь мне нужно пройти аутентификацию пользователя, у которого может не быть сеанса http (например, из приложения (а не из браузера), которое бьет по моим маршрутам рельсов).Rails Аутентификация и авторизация без гарантии сеансов браузера?

В частности, теперь я должен поддерживать приложение iPhone, которое поражает некоторые из моих спокойных маршрутов, чтобы заполнить себя. Однако это приложение должно быть аутентифицировано и просто передавать имя пользователя и пароль, поскольку параметры не кажутся очень безопасными. Он не только не защищен, но и не очень чист (мне пришлось бы изменить все мои вызовы, ссылающиеся на current_user (хранящиеся в сеансе), на ручную установку текущего пользователя, поскольку обращения к моему приложению без браузера, похоже, не имеют сеанса vars (или я не прав?)

Любые советы? Может ли RESTful Authentication сделать это? Являются ли их альтернативные рамки (такие как Authlogic, или OAuth или что-то еще), которые могут мне помочь?

ответ

1

Devise появляется возможно token-based authentication.

Для обеспечения безопасности разрешайте только SSL-соединения. Перенаправить любые HTTP-запросы без SSL на версию SSL-сайта. Для этого вы можете использовать промежуточное ПО Rack rack-ssl.

+0

Похоже, что это может сработать для меня, я проверю его. Благодаря! – Jenny

+0

Hrrm ... Я не получаю аутентификацию на основе токенов (он может использовать cookie и сеансовые вары, как это делает RESTful ... и если это так ... я ничего не могу сделать, кроме роли собственного решения) но в противном случае Devise до сих пор хорош. – Jenny

+0

Я просто не знал, как использовать токены, но как только я понял, это было прекрасно, жаль, что мне потребовалось много времени, чтобы согласиться. – Jenny

1

CanCan - это фактически инструмент авторизации де-факто для приложений Rails. В этом случае вы не должны пытаться изобретать колесо.

Он хорошо сочетается с AuthLogic и RESTful Authentication, я считаю. У меня не так много опыта с последним.

+0

Er, я немного смущен ... Я думал, что AuthLogic и RESTful Authentication были уже средством авторизации ... Как CanCan «хорошо сыграл» с ними, если бы он был конкурентом? Does CanCan справляется с необходимостью авторизации без браузера? – Jenny

+0

Не позволяйте номенклатуре двух дурачить вас, CanCan спроектирован специально вокруг авторизации. Это не пользовательская система. Он управляет разрешениями на ваши ресурсы. Какое приложение должно взаимодействовать с вашим устройством rails? Это будет веб-сервис? –

+0

Приложение iphone, как я говорю в вопросе. Мне неважно, что такое фактическое разрешение (что я уже реализую для меня для работы). Я просто хочу, чтобы пользователь мог войти в систему и оставаться в системе, не беспокоясь о http session vars. – Jenny

Смежные вопросы