@Heafy

Способ авторизации админа в rails приложении?

В целях самообразования написал блог с использованием фреймворка ruby on rails.
Блог однопользовательский - только админ и анонимные посетители. На первое время для администрирования применил самую примитивную "аутентификацию", прописал в контроллер статей код:
class ArticlesController < ApplicationController
  before_filter :master, :only => [ :new, :edit, :destroy ]
 
  def new
    ...
  end

  ... # и другие методы

  private

    def master
      authenticate_or_request_with_http_basic do |email, password|
        email == "******"
        password == "******"
      end
    end
end

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

Подскажите пожалуйста, кто уже реализовывал подобное, на что посмотреть/что почитать для реализации однопользовательской внешней (если её можно так назвать) аутентификации на своём блоге, или проверенную временем альтернативу.
Спасибо.
  • Вопрос задан
  • 2652 просмотра
Решения вопроса 2
Prognosticator
@Prognosticator
TODO: Здесь будут ворованные умные мысли, типа мои
Devise
Разницы в том, что сегодня пользователь один - нет. Завтра вы захотите собирать базу пользовательских мэйлов для рассылки и давать доступ к комментам после аутентификации через соц. сети.
Ответ написан
Freika
@Freika
Senior Ruby on Rails developer
Devise + Omniauth
Как соотносится база пользователей (и приложения вообще) с исходным кодом в репозитории, пусть даже в открытом виде. Ваша база всегда на вашем сервере (я очень на это надеюсь), если, конечно, вы не юзаете sqlite и не забыли добавить в .gitignore её название.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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