2015-10-19 3 views
0

Мне нужно контролировать доступ ко всему моему приложению Ruby on Rails, позволяя только некоторым выбранным пользователям видеть его во время разработки.Легкий контроль доступа к Rails-приложению?

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

Я попытался использовать надстройку WWWhisper в Heroku (приложение размещено там), поскольку это именно то, что мне нужно, но оно, похоже, не доступно за пределами США.

Я думаю, что мне придется строить его самостоятельно, но раньше я хотел убедиться, что уже нет более простого решения. Есть идеи? Заранее спасибо.

+0

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

+0

Мы уже используем устройство для стандартной проверки подлинности для пользовательских типов приложения, но мне нужно ограничить доступ даже к этим страницам проверки подлинности, так что только я, явным образом разрешаю, может даже попасть на страницы регистрации/входа в приложение , – jbk

+0

Ах. вероятно basicauth тогда. http://api.rubyonrails.org/classes/ActionController/HttpAuthentication/Basic.html –

ответ

2

Если ваше требование доступа «получив приглашение по электронной почте», то я думаю, что ваш самый простой вариант, чтобы иметь что-то вроде этого

#in application.rb 

before_filter :require_invite 

protected 
    def require_invite 
    session[:invite_token] ||= params[:invite_token] 
    unless session[:invite_token] == "<SOME SECRET KEY STRING>" 
     redirect_to external_home_path and return 
    end 
    end 
end 

где external_home_path некоторая холдинг страница для людей, которые не получили приглашение , в котором говорится: «Извините, вам нужен токен приглашения blah blah». Вам нужно добавить это в контроллер, который обрабатывает внешнюю домашнюю страницу, чтобы избежать циклического перенаправления.

skip_before_filter :require_invite, :only => [:external_home] 

Тогда вам просто нужно отправить людей приглашение со ссылкой, как

http://example.com?invite_token=<SOME SECRET KEY STRING> 

Очевидно, что это не очень безопасно, но это столь же безопасным, как «я не видел электронной почты» критерий.

Когда вы идете в прямом эфире, вы можете взять этот файл before_filter.

+0

Спасибо Макс, высоко оценил, я думаю, что ваш ответ - хорошее быстрое и простое решение. – jbk