Skip to content
This repository has been archived by the owner on Nov 21, 2017. It is now read-only.

18F/omniauth-myusa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OmniAuth::Strategies::Myusa

This gem contains the MyUSA strategy for OmniAuth.

MyUSA uses OAuth 2.0. To find out more information about MyUSA and how to create your own application visit the developers section of MyUSA.

View the OmniAuth 1.0 docs for more information about strategy implementation: https://github.com/intridea/omniauth.

Before You Begin

Sign in to MyUSA and register an application. You will need to provide a redirect URI which is "YOUR_SITE/auth/myusa/callback" by default. Take note of your Consumer Key and Consumer Secret.

Using This Strategy

First start by adding this gem to your Gemfile:

gem 'omniauth-myusa', git: 'https://github.com/18F/omniauth-myusa.git'

Next, tell OmniAuth about this provider. For a Rails app, your config/initializers/omniauth.rb file should look like this:

provider(
  :myusa,
  "CONSUMER_KEY",
  "CONSUMER_SECRET",
  scope: "profile.email tasks submit_forms notifications"
)

Replace CONSUMER_KEY and CONSUMER_SECRET with the appropriate values you obtained from MyUSA earlier. Valid scopes are:

  • profile.email
  • profile.title
  • profile.first_name
  • profile.middle_name
  • profile.last_name
  • profile.suffix
  • profile.address
  • profile.address2
  • profile.city
  • profile.state
  • profile.zip
  • profile.phone_number
  • profile.mobile_number
  • profile.gender
  • profile.marital_status
  • profile.is_parent
  • profile.is_student
  • profile.is_veteran
  • profile.is_retired
  • tasks
  • notifications
  • submit_forms

Authentication Hash

An example auth hash available in request.env['omniauth.auth']:

{
  "provider"=>"myusa",
  "uid"=>"r03Ke0000000000FrqOOFlq0DeNc9q1QQQQQQQQC",
  "info"=>{"email"=>"johnq@bloggs.com"},
  "credentials"=>{"token"=>"3gnsgg14ymf54mquevfry38ao", "expires"=>false},
  "extra"=>
    {"raw_info"=>
      {"title"=>nil,
      "first_name"=>nil,
      "middle_name"=>nil,
      "last_name"=>nil,
      "suffix"=>nil,
      "address"=>nil,
      "address2"=>nil,
      "city"=>nil,
      "state"=>nil,
      "zip"=>nil,
      "phone_number"=>nil,
      "mobile_number"=>nil,
      "gender"=>nil,
      "marital_status"=>nil,
      "is_parent"=>nil,
      "is_retired"=>nil,
      "is_veteran"=>nil,
      "is_student"=>nil,
      "email"=>"johnq@bloggs.com
      "uid"=>"r03Ke0000000000FrqOOFlq0DeNc9q1QQQk390QC"
    }
  }
}

Watch the RailsCast

Ryan Bates has put together an excellent RailsCast on OmniAuth:

RailsCast #241

Contributing

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

About

OmniAuth strategy for MyUSA

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages