# OmniAuth::StripeConnect 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: https://stripe.com/connect ## Installation 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 ## Usage OmniAuth::Strategies::StripeConnect is simply a Rack middleware. Read the OmniAuth 1.0 docs for detailed instructions: https://github.com/intridea/omniauth. Here's a quick example, adding the middleware to a Rails app in `config/initializers/omniauth.rb`: ```ruby Rails.application.config.middleware.use OmniAuth::Builder do provider :stripe_connect, ENV['STRIPE_CONNECT_CLIENT_ID'], ENV['STRIPE_SECRET'] end ``` 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: ```ruby 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 end end ``` 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: `http://www.yourdomain.com/users/auth/stripe_connect/callback` Then you can hit `/auth/stripe_connect` If you hit `/auth/stripe_connect` with any query params, they will be passed along to Stripe. Read [Stripe's OAuth Reference](https://stripe.com/docs/connect/reference) for more information. ## Auth Hash Here is an example of the Auth Hash you get back from calling `request.env['omniauth.auth']`: ```ruby { "provider"=>"stripe_connect", "uid"=>"", "info"=> { "scope"=>"read_write", # or "read_only" "livemode"=>false, "stripe_publishable_key"=>"", }, "credentials"=> { "token"=>"", "expires"=>false }, "extra"=> { "raw_info"=> { "token_type"=>"bearer", "stripe_user_id"=>"", "scope"=>"read_only", "stripe_publishable_key"=>"", "livemode"=>false } } } ``` ## Additional Tutorials [Stripe Connect in Rails Tutorial](http://www.munocreative.com/nerd-notes/winvoice) ## Contributing 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