使用 VK 为 Rails 个应用设置授权

Authorization set up for Rails app with VK

我有适用于 Rails 的应用程序。我正在使用 devise 和 omniauth-vkontakte。 我的应用程序可以使用 vk.com 授权用户,但在用户通过授权后,我的导航菜单消失了。 导航菜单代码在 views/layouts/application.html.erb:

<nav class="navbar navbar-default navbar-fixed-top">
  <div class="container">
    <div class="authentication">
      <% if user_signed_in? %>
          <span>Hello, <%= current_user.email %></span>
          <%= button_to 'Exit', destroy_user_session_path, {:method => :delete} %>

      <% else %>
          <%= button_to 'sign up', new_user_registration_path,
                        {class: 'btn btn-default navbar-btn btn-info', id: 'sign-up-link', :method => :get} %>
          <%= button_to 'sign in', new_user_session_path, {class: 'btn btn-default navbar-btn btn-info', id: 'sign-in-btn'} %>

      <% end %>
    </div>

  </div>
</nav>

我还有一个麻烦。当用户通过 vkontakte 通过授权时,我该怎么做,会有一个重定向到主页的退出按钮? 现在它是这样工作的:用户通过 vkontankte 进行身份验证,我收到此消息:

Users::OmniauthCallbacks#vkontakte
Find me in app/views/users/omniauth_callbacks/vkontakte.html.haml

代码在app/views/users/omniauth_callbacks/vkontakte.haml.html:

%h1 Users::OmniauthCallbacks#vkontakte
%p Find me in app/views/users/omniauth_callbacks/vkontakte.html.haml

代码在app/controllers/users/omniauth_callbacks_controller.rb:

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController

  def vkontakte
  end

end

授权后,它会将您重定向到 def vkontakte end 方法,您会看到它的视图。

所以你可以给这个控制器添加一些修改,比如redirect_to root_path。我现在不知道你是如何构建你的系统的,但这里是你如何实现它的例子:link(俄语,但你可以查看代码)