OmniAuth strategy for authenticating your users using Kona.
Add this line to your application's Gemfile:
gem 'omniauth-kona'
And then execute:
$ bundle
Or install it yourself as:
$ gem install omniauth-kona
In your Kona Business account administration, register your application to get the Client ID and Client secret. Make sure that you put http://YOURSERVER/auth/kona/callback
in the redirect URI field, with YOURSERVER
is your application's server name (and port number if any). Kona matches exactly the redirect URI passed by the gem to the URI it has on record to authenticate the user, so make sure that you put in the correct URI.
Afterwards you can add the middleware in your Rails app in config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
provider :kona, "ClientID", "ClientSecret"
end
You can check out the Sinatra example included.
You can connect your app to Kona's sandbox environment for testing purposes. First, get a KB account in their sandbox environment so that you can register your app. Then add the following hash to the middleware configuration:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :kona, "ClientID", "ClientSecret",
{
:client_options => {
:site => 'https://sandbox.kona.com',
:authorize_url => 'https://sandbox.kona.com/oauth/authorize',
:token_url => 'https://sandbox.kona.com/oauth/token'
}
}
end
The Kona OmniAuth strategy returns the following information
{
"provider":"kona",
"uid":integer,
"info":{
"email":string,
"name":string,
"image":string, url
},
"credentials":{
"token":string,
"refresh_token":string,
"expires_at":datetime,
"expires":true},
"extra":{
"raw_info":{
"id":integer,
"email":string,
"name":string,
"picture_thumb":string, url,
"updated_at":datetime, ,
"href":string, url,
"current_account":{
"id":integer,
"member":boolean}
}
}
}
We have provided the key member
under the extra
hash to identify if user is a member of the Kona Business account or not
- Fork it ( https://github.com/konateam/omniauth-kona/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request