oa-vkontakte

Расширение для OmniAuth, реализующее аутентификацию через Vkontate Open Api.

Установка

gem install oa-vkontakte

Добавить в config/initializers/moniauth.rb:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :vkontakte_open_api, <ID приложения>
end

Если ещё не определен, добавить путь в config/routes.rb:

match '/auth/:provider/callback' => 'authentications#create'

В нужную вьюху добавить хелпер, рисующий кнопку входа:

<%= vkontakte_login_button %>

Этот хелпер предполагает наличие jQuery на странице для совершения ajax запроса.

Также кнопка с подключенной jQuery доступна по адресу /auth/vkontakte. Можно пропробовать встроить её как iframe.

После клика на кнопку и разрешения добавления приложения, будет совершен ajax-запрос на /auth/vkontakte/callback. В action, к которому будет привязан этот путь, будет доступна переменная

request["omniauth.auth"].

После ajax-запроса страница, на которой находится пользователь, будет перезагружена.

Ссылки

OmniAuth: github.com/intridea/omniauth

Интеграция OmniAuth и Devise: railscasts.com/episodes/235-omniauth-part-1 и railscasts.com/episodes/236-omniauth-part-2

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright © 2010 Nick Recobra. See LICENSE for details.