Strategy to authenticate with Salesforce via OAuth2 in OmniAuth.
Salesforce OAuth docs - https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_oauth_and_connected_apps.htm
Note: This is a fork of an abandoned fork of the original project.
Add to your Gemfile:
gem 'omniauth-salesforce-modern', require: 'omniauth-salesforce'
Then bundle install
.
- Follow the instructions in https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_oauth_and_connected_apps.htm to create a "Connected app"
Here's an example for adding the middleware to a Rails app in config/initializers/salesforce.rb
:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :salesforce,
Rails.application.credentials.dig(:salesforce, :key),
Rails.application.credentials.dig(:salesforce, :secret)
end
You can now access the OmniAuth Salesforce URL: /auth/salesforce
NOTE: While developing your application, if you change the scope in the initializer you will need to restart your app server.
You can configure several options, which you pass in to the provider method via a hash:
client_options
: A hash of options to pass to the OAuth client
Here's an example of a possible configuration
Rails.application.config.middleware.use OmniAuth::Builder do
provider :salesforce,
Rails.application.credentials.dig(:salesforce, :key),
Rails.application.credentials.dig(:salesforce, :secret),
client_options: {
auth_scheme: :request_body
}
end
See LICENSE