0.02
No commit activity in last 3 years
No release in over 3 years
OmniAuth strategy for Dwolla.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
~> 2.13.0

Runtime

 Project Readme

OmniAuth Dwolla

Gem Version Build Status Coverage Status Code Climate security

Dwolla OAuth2 Strategy for OmniAuth 1.0.

Installing

Add to your Gemfile:

gem 'omniauth-dwolla'

Then bundle install.

Usage

OmniAuth::Strategies::Dwolla 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 and getting a token with scope permissions for full user info, send and request transactions:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :dwolla, ENV['DWOLLA_KEY'], ENV['DWOLLA_SECRET'], 
  :scope                  => 'accountinfofull|send|request',
  :provider_ignores_state => true
end

The :scope param is optional.

The default :scope is 'accountinfofull'. It is necessary in order to grab the uid and detailed info for user.

The extra hash will include:

    "raw_info": {
        "City": "Des Moines",
        "Id": "812-111-1111",
        "Latitude": 41.584546,
        "Longitude": -93.634167,
        "Name": "Test User",
        "State": "IA",
        "Type": "Personal"
    }

Exception Handling

If the Dwolla library raises a Dwolla::RequestException, that will be wrapped and re-raised as a OmniAuth::Strategies::OAuth2::CallbackError. The OmniAuth OAuth2 library will, in turn, treat that as a failure due to invalid credentials, passing the CallbackError through Rack's middleware chain.

Note that the Devise::OmniauthCallbacksController provides a good example of handling this scenario.

Maintainer's Note

The omniauth-dwolla gem is currently maintained by masukomi (GitHub, web). PRs will be happily accepted but the tests must still pass (and be updated if necessary). We're dealing with money here folks. We can't be careless.

I'm @masukomi on Twitter and that's the best way to contact me if you have any questions or ideas about this gem. My GitHub notifications page is typically overflowing with stuff from work. ;)