omniauth-riskalyze 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 53bb51618d01e8b1ea53733a228fe97413ca32e0
4
+ data.tar.gz: c81d1eea1af6e9473bbd9d56ec36d5b3dd75d6f6
5
+ SHA512:
6
+ metadata.gz: c5aef3a793b265b27a32fa7bf43a63d9087060cf444691b2448fd96f5d4d355a9f36b500523a7b46bf76446d5127195b37bdb9fbfa660aff91290b7aee358d1e
7
+ data.tar.gz: 1db59e81229a61dc70b5ecd7dd54ff31f81f9fb7c1b6f32bea58245bb9aaae48cac603b64e94212b22970e13bfb086c0725b23f96d069435c237290432f26604
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .env
19
+ .rspec
20
+ .idea
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rake'
4
+
5
+ group :development do
6
+ gem 'rubocop', '> 0.25'
7
+ end
8
+
9
+ group :test do
10
+ gem 'coveralls', :require => false
11
+ gem 'rack-test'
12
+ gem 'rspec', '~> 3.1.0'
13
+ gem 'simplecov', :require => false
14
+ end
15
+
16
+ gemspec
data/README.md ADDED
@@ -0,0 +1,42 @@
1
+ omniauth-riskalyze
2
+ ==============
3
+
4
+ [![Gem Version](https://badge.fury.io/rb/omniauth-riskalyze.png)](http://badge.fury.io/rb/omniauth-riskalyze)
5
+
6
+ Riskalyze OAuth2 Strategy for OmniAuth 1.x and supports the OAuth 2.0 server-side flow.
7
+
8
+ You may view the Riskalyze API documentation [here](https://developers.riskalyze.com/intro/).
9
+
10
+ ## Installation
11
+
12
+ Add to your `Gemfile`:
13
+
14
+ ```ruby
15
+ gem 'omniauth-riskalyze'
16
+ ```
17
+
18
+ Then `bundle install`.
19
+
20
+
21
+ ## Usage
22
+
23
+ `OmniAuth::Strategies::Riskalyze` is simply Rack middleware. Read the OmniAuth 1.0 docs for detailed instructions: https://github.com/intridea/omniauth.
24
+
25
+ Here's a quick example, adding the middleware to a Rails app in `config/initializers/omniauth.rb`:
26
+
27
+ ```ruby
28
+ Rails.application.config.middleware.use OmniAuth::Builder do
29
+ provider :riskalyze, ENV['RISKALYZE_CLIENT_ID'], ENV['RISKALYZE_CLIENT_SECRET']
30
+ end
31
+ ```
32
+
33
+ ## Configuration
34
+
35
+ Currently, there is only one configuration option that needs to be set:
36
+
37
+ ```ruby
38
+ Rails.application.config.middleware.use OmniAuth::Builder do
39
+ provider :riskalyze, ENV['RISKALYZE_CLIENT_ID'], ENV['RISKALYZE_CLIENT_SECRET']
40
+ end
41
+
42
+ ```
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env rake
2
+ require 'bundler/gem_tasks'
3
+ require 'rspec/core/rake_task'
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :test => :spec
7
+
8
+ begin
9
+ require 'rubocop/rake_task'
10
+ RuboCop::RakeTask.new
11
+ rescue LoadError
12
+ task :rubocop do
13
+ $stderr.puts 'Rubocop is disabled'
14
+ end
15
+ end
16
+
17
+ task :default => [:spec, :rubocop]
@@ -0,0 +1,5 @@
1
+ module OmniAuth
2
+ module Riskalyze
3
+ VERSION = '0.0.1'
4
+ end
5
+ end
@@ -0,0 +1,45 @@
1
+ require 'omniauth-oauth2'
2
+
3
+ module OmniAuth
4
+ module Strategies
5
+ class Riskalyze < OmniAuth::Strategies::OAuth2
6
+ DEFAULT_SCOPE = 'profile'
7
+
8
+ option :client_options, :site => 'https://api.riskalyze.com',
9
+ :authorize_url => 'https://pro.riskalyze.com/oauthconnect',
10
+ :token_url => 'https://api2.riskalyze.com/ap/v1/oauthpro/token'
11
+
12
+ uid { raw_info['uuid'] }
13
+
14
+ info do
15
+ {
16
+ :first_name => raw_info['first_name'],
17
+ :last_name => raw_info['last_name'],
18
+ :email => raw_info['email'],
19
+ :picture => raw_info['picture'],
20
+ :promo_code => raw_info['promo_code']
21
+ }
22
+ end
23
+
24
+ extra do
25
+ {
26
+ :raw_info => raw_info
27
+ }
28
+ end
29
+
30
+ def raw_info
31
+ @raw_info ||= access_token.get('/v1/me').parsed || {}
32
+ end
33
+
34
+ def request_phase
35
+ options[:authorize_params] = {
36
+ :client_id => options['client_id'],
37
+ :response_type => 'code',
38
+ :scopes => (options['scope'] || DEFAULT_SCOPE)
39
+ }
40
+
41
+ super
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,2 @@
1
+ require 'omniauth/riskalyze/version'
2
+ require 'omniauth/strategies/riskalyze'
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $LOAD_PATH.push File.expand_path('../lib', __FILE__)
3
+ require 'omniauth/riskalyze/version'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'omniauth-riskalyze'
7
+ s.version = OmniAuth::Riskalyze::VERSION
8
+ s.authors = ['Kevin Pheasey']
9
+ s.email = ['kevin@kpheasey.com']
10
+ s.summary = 'Riskalyze strategy for OmniAuth'
11
+ s.description = 'Riskalyze strategy for OmniAuth v1.2'
12
+ s.homepage = 'https://github.com/TKOFinancialSolutions/omniauth-riskalyze'
13
+ s.license = 'MIT'
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").collect { |f| File.basename(f) }
18
+ s.require_paths = ['lib']
19
+
20
+ s.add_runtime_dependency 'omniauth', '~> 1.2'
21
+ s.add_runtime_dependency 'omniauth-oauth2', '~> 1.1'
22
+
23
+ s.add_development_dependency 'dotenv', '~> 0'
24
+ s.add_development_dependency 'sinatra', '~> 0'
25
+ end
data/spec/app.rb ADDED
@@ -0,0 +1,45 @@
1
+ $LOAD_PATH.unshift File.expand_path('..', __FILE__)
2
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
3
+
4
+ require 'dotenv'
5
+ require 'sinatra'
6
+ require 'omniauth'
7
+ require 'omniauth-riskalyze'
8
+
9
+ Dotenv.load
10
+
11
+ enable :sessions
12
+
13
+ use OmniAuth::Builder do
14
+ provider :riskalyze, ENV['CLIENT_ID'], ENV['CLIENT_SECRET'] # , :scope => 'profile'
15
+ end
16
+
17
+ get '/' do
18
+ <<-HTML
19
+ <a href='/auth/riskalyze'>Sign in with Riskalyze</a>
20
+ HTML
21
+ end
22
+
23
+ get '/auth/failure' do
24
+ env['omniauth.error'].to_s
25
+ end
26
+
27
+ get '/auth/:name/callback' do
28
+ auth = request.env['omniauth.auth']
29
+
30
+ puts %(
31
+ >> UID
32
+ #{auth.uid.inspect}
33
+
34
+ >> CREDENTIALS
35
+ #{auth.credentials.inspect}
36
+
37
+ >> INFO
38
+ #{auth.info.inspect}
39
+ #
40
+ >> EXTRA
41
+ #{auth.extra.inspect}
42
+ )
43
+
44
+ 'Check logs for user information.'
45
+ end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe OmniAuth::Strategies::Riskalyze do
4
+ subject do
5
+ @subject ||= begin
6
+ @options ||= {}
7
+ args = ['client_id', 'client_secret', @options].compact
8
+ OmniAuth::Strategies::Riskalyze.new(*args)
9
+ end
10
+ end
11
+
12
+ context 'client options' do
13
+ it 'should have correct name' do
14
+ expect(subject.options.name).to eq('riskalyze')
15
+ end
16
+
17
+ it 'should have correct site' do
18
+ expect(subject.options.client_options.site).to eq('https://api.riskalyze.com')
19
+ end
20
+
21
+ it 'should have correct authorize url' do
22
+ expect(subject.options.client_options.authorize_url).to eq('https://login.riskalyze.com/oauth/authorize')
23
+ end
24
+
25
+ it 'should have correct access token url' do
26
+ expect(subject.options.client_options.token_url).to eq('https://login.riskalyze.com/oauth/token')
27
+ end
28
+
29
+ it 'should indicate that the provider ignores the state parameted' do
30
+ expect(subject.options.provider_ignores_state).to eq false
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,13 @@
1
+ $LOAD_PATH.unshift File.expand_path('..', __FILE__)
2
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
3
+
4
+ require 'rspec'
5
+ require 'simplecov'
6
+ SimpleCov.start
7
+
8
+ require 'omniauth'
9
+ require 'omniauth-riskalyze'
10
+
11
+ RSpec.configure do |config|
12
+ config.extend OmniAuth::Test::StrategyMacros, :type => :strategy
13
+ end
metadata ADDED
@@ -0,0 +1,114 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: omniauth-riskalyze
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Kevin Pheasey
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-10-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: omniauth
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: omniauth-oauth2
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: dotenv
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: sinatra
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Riskalyze strategy for OmniAuth v1.2
70
+ email:
71
+ - kevin@kpheasey.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - ".gitignore"
77
+ - Gemfile
78
+ - README.md
79
+ - Rakefile
80
+ - lib/omniauth-riskalyze.rb
81
+ - lib/omniauth/riskalyze/version.rb
82
+ - lib/omniauth/strategies/riskalyze.rb
83
+ - omniauth-riskalyze.gemspec
84
+ - spec/app.rb
85
+ - spec/omniauth/strategies/riskalyze_spec.rb
86
+ - spec/spec_helper.rb
87
+ homepage: https://github.com/TKOFinancialSolutions/omniauth-riskalyze
88
+ licenses:
89
+ - MIT
90
+ metadata: {}
91
+ post_install_message:
92
+ rdoc_options: []
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ requirements: []
106
+ rubyforge_project:
107
+ rubygems_version: 2.5.1
108
+ signing_key:
109
+ specification_version: 4
110
+ summary: Riskalyze strategy for OmniAuth
111
+ test_files:
112
+ - spec/app.rb
113
+ - spec/omniauth/strategies/riskalyze_spec.rb
114
+ - spec/spec_helper.rb