Class: OmniAuth::Strategies::RocketChat

Inherits:
OAuth2
  • Object
show all
Defined in:
lib/omniauth/strategies/rocketchat.rb

Overview

Authorization strategy for Rocket Chat using OAuth2.

Allows your custom application to integrate with Rocket Chat through their “Third-party login” feature. See: docs.rocket.chat/docs/third-party-login for more information.

To use it, you’ll need to register your application with your Rocket Chat instance and get a client ID and secret on the admin page, e.g. example.com/admin/third-party-login

Examples:

Basic Usage

use OmniAuth::Builder do
  provider :rocketchat,
           ENV["ROCKETCHAT_CLIENT_ID"],
           ENV["ROCKETCHAT_CLIENT_SECRET"],
           client_options: {
             site: "https://example.com"
           }
end

Basic Usage with Custom Endpoints

use OmniAuth::Builder do
  provider :rocketchat,
           ENV["ROCKETCHAT_CLIENT_ID"],
           ENV["ROCKETCHAT_CLIENT_SECRET"],
           client_options: {
             site: "https://example.com",
             authorize_url: "/custom/oauth/authorize",
             token_url: "/custom/oauth/token"
           }
end

Basic Usage with Rails

# /config/initializers/rocketchat.rb
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :rocketchat,
           ENV["ROCKETCHAT_CLIENT_ID"],
           ENV["ROCKETCHAT_CLIENT_SECRET"],
           client_options: {
             site: "https://example.com"
           }
end

Basic Usage with Devise

# /config/initializers/devise.rb
Devise.setup do |config|
  config.omniauth :rocketchat,
                  ENV["ROCKETCHAT_CLIENT_ID"],
                  ENV["ROCKETCHAT_CLIENT_SECRET"],
                  client_options: {
                    site: "https://example.com"
                  }
end

Constant Summary collapse

DEFAULT_AUTHORIZE_URL =
"/oauth/authorize"
DEFAULT_TOKEN_URL =
"/oauth/token"

Instance Method Summary collapse

Instance Method Details

#callback_urlObject



111
112
113
# File 'lib/omniauth/strategies/rocketchat.rb', line 111

def callback_url
  full_host + callback_path
end

#raw_infoObject



107
108
109
# File 'lib/omniauth/strategies/rocketchat.rb', line 107

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