用户和管理员使用Doorkeeper和Omniauth

时间:2015-02-10 18:41:15

标签: ruby-on-rails oauth-2.0

我有一个主应用程序,这个应用程序有使用设计的用户和管理员(不同的模型和表)。

主应用程序使用门卫允许用户对其他服务进行身份验证。客户端应用程序使用Omniauth来使用OAuth2。

我现在正在达到客户端应用需要后端并使用主应用程序中的管理员用户有意义的程度。

这是我目前的策略:

module OmniAuth
  module Strategies
    class ResaNetwork < OmniAuth::Strategies::OAuth2
      option :name, :resa_network

      option :client_options, {
        #site: "http://dylog.ubuntu-sylario.net:3000",
        site: ENV["CLIENT_OPTION_SITE"],
        authorize_path: "/oauth/authorize"
      }

      uid do
        raw_info["resource_owner_id"]
      end

      def raw_info
        @raw_info ||= access_token.get('/api/me').parsed
      end
    end
  end
end

对于门卫,我将使用warden范围(我知道它与oauth范围无关)用户或管理员,具体取决于resource_owner_authenticator中的oauth2范围。

  • 输入的特定范围是否有可能包含omniauth的登录路径的参数?怎么样?

  • 我对范围的使用是正确的还是非常丑陋的黑客?有关信息,管理员将访问用户数据,而用户只能在API中查看他们的数据。

0 个答案:

没有答案