使用VK为Rails应用程序设置授权

时间:2015-09-23 18:47:46

标签: ruby-on-rails ruby gem

我有适用于Rails的应用程序。我正在使用设计和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传递auth,我收到了这条消息:

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

1 个答案:

答案 0 :(得分:0)

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

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