Stripe Connect OAuth2 Strategy for OmniAuth 1.0
Latest commit 5d48652 Mar 20, 2017 @isaacsanders committed on GitHub Merge pull request #46 from hoenth/master
Updates README with information on how to access custom params


Stripe Connect OAuth2 Strategy for OmniAuth 1.0.

Supports the OAuth 2.0 server-side and client-side flows. Read the Stripe Connect docs for more details:


Add this line to your application's Gemfile:

gem 'omniauth-stripe-connect'

And then execute:

$ bundle

Or install it yourself as:

$ gem install omniauth-stripe-connect


OmniAuth::Strategies::StripeConnect is simply a Rack middleware. Read the OmniAuth 1.0 docs for detailed instructions:


Here's a quick example, adding the middleware to a Rails app in config/initializers/omniauth.rb:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :stripe_connect, ENV['STRIPE_CONNECT_CLIENT_ID'], ENV['STRIPE_SECRET']


You need to declare the provider in your config/initializers/devise.rb:

config.omniauth :stripe_connect, "STRIPE_CONNECT_CLIENT_ID", "STRIPE_SECRET"

General Usage

Your STRIPE_CONNECT_CLIENT_ID is application-specific and your STRIPE_SECRET is account-specific and may also be known as your Stripe API key or Stripe Private key.

Edit your routes.rb file to have: devise_for :users, :controllers => { :omniauth_callbacks => "omniauth_callbacks" }

And create a file called omniauth_callbacks_controller.rb which should have this inside:

class OmniauthCallbacksController < Devise::OmniauthCallbacksController

  def stripe_connect
    # Delete the code inside of this method and write your own.
    # The code below is to show you where to access the data.
    raise request.env["omniauth.auth"].to_yaml

Make sure to go to Stripe's Account Settings > Applications and set your Redirect URL to: http://localhost:3003/users/auth/stripe_connect/callback

The Webhook URL will be something similar:

Then you can hit /auth/stripe_connect

If you hit /auth/stripe_connect with any query params, they will be passed along to Stripe. You can access these params from request.env['omniauth.params']. Read Stripe's OAuth Reference for more information.

Auth Hash

Here is an example of the Auth Hash you get back from calling request.env['omniauth.auth']:

  "info"=> {
    "scope"=>"read_write", # or "read_only"
  "credentials"=> {
  "extra"=> {
    "raw_info"=> {
    "extra_info"=> {
      "business_name"=>"Business Name",
      "display_name"=>"Business Name",

Additional Tutorials

Stripe Connect in Rails Tutorial


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request