omniauth-parallelmarkets 0.1.0 → 0.4.0
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 +4 -4
- data/README.md +5 -2
- data/lib/omniauth-parallelmarkets/version.rb +1 -1
- data/lib/omniauth/strategies/parallelmarkets.rb +39 -8
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a09a136f927f294185559a7dfab444e5fb74998f1de4eeccea20380a4f16de31
|
4
|
+
data.tar.gz: d9dba23f966d094ca5ea5998e9750d4aefba87b8a34069b5372f9ac524aa270c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c874ad3849bf22c15ffd1a8388ccbcf0120ad36e24222e7250c4434432ceda003df5628a4f4be2a7be6caac8a6b9dd453aba361909f183f6fb6f95f506b2c5fe
|
7
|
+
data.tar.gz: df94ef490b155c9e7cf1117c3fb925d606e1e6a1faef01a390de63bd9f28d0d9c169069959e106f867268d4851eb481ce5aeaaf730cf71b349c67139abc57f09
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
This gem contains the [Parallel Markets](https://parallelmarkets.com) strategy for OmniAuth.
|
7
7
|
|
8
|
-
ParallelMarkets uses the OAuth2 flow, you can read about at [
|
8
|
+
ParallelMarkets uses the OAuth2 flow, you can read about at [developer.parallelmarkets.com/api](https://developer.parallelmarkets.com).
|
9
9
|
|
10
10
|
## Installation
|
11
11
|
|
@@ -28,6 +28,7 @@ Or install it yourself as:
|
|
28
28
|
You'll need to register your application with [Parallel Markets Support](mailto:help@parallelmarkets.com) and get `client_id` & `client_secret`.
|
29
29
|
|
30
30
|
Here's an example for adding the middleware to a Rails app in config/initializers/omniauth.rb:
|
31
|
+
|
31
32
|
```ruby
|
32
33
|
Rails.application.config.middleware.use OmniAuth::Builder do
|
33
34
|
provider :parallelmarkets, ENV["CLIENT_ID"], ENV["CLIENT_SECRET"]
|
@@ -40,7 +41,7 @@ See the documentation for [OmniAuth](https://github.com/omniauth/omniauth) for m
|
|
40
41
|
```ruby
|
41
42
|
{
|
42
43
|
"provider"=>"parallelmarkets",
|
43
|
-
"uid"=>"
|
44
|
+
"uid"=>"VXNlcjox",
|
44
45
|
"info"=> {
|
45
46
|
"name"=>"Snake Plissken",
|
46
47
|
"email"=>"snake@example.com",
|
@@ -54,6 +55,8 @@ See the documentation for [OmniAuth](https://github.com/omniauth/omniauth) for m
|
|
54
55
|
"expires"=>true
|
55
56
|
},
|
56
57
|
"extra"=> {
|
58
|
+
"type"=>"individual",
|
59
|
+
"user_id"=>"VXNlcjox",
|
57
60
|
"accreditations"=>[
|
58
61
|
{
|
59
62
|
"id"=>321,
|
@@ -9,37 +9,68 @@ module OmniAuth
|
|
9
9
|
site: 'https://api.parallelmarkets.com',
|
10
10
|
authorize_url: '/v1/oauth/authorize',
|
11
11
|
token_url: '/v1/oauth/token'
|
12
|
+
option :authorize_options, %i[scope force_accreditation_check]
|
12
13
|
|
13
|
-
uid { raw_info['
|
14
|
+
uid { raw_info['id'] }
|
14
15
|
|
15
16
|
info do
|
16
17
|
{
|
17
|
-
name:
|
18
|
-
first_name:
|
19
|
-
last_name:
|
20
|
-
email:
|
18
|
+
name: profile['name'] || "#{profile['first_name']} #{profile['last_name']}",
|
19
|
+
first_name: profile['first_name'],
|
20
|
+
last_name: profile['last_name'],
|
21
|
+
email: profile['email']
|
21
22
|
}
|
22
23
|
end
|
23
24
|
|
24
25
|
extra do
|
25
26
|
{
|
26
|
-
accreditations:
|
27
|
+
accreditations: accreditations,
|
28
|
+
indicated_unaccredited: indicated_unaccredited,
|
29
|
+
business_type: profile['business_type'],
|
30
|
+
primary_contact: profile['primary_contact'].nil? ? nil : {
|
31
|
+
name: "#{profile['primary_contact']['first_name']} #{profile['primary_contact']['last_name']}",
|
32
|
+
first_name: profile['primary_contact']['first_name'],
|
33
|
+
last_name: profile['primary_contact']['last_name'],
|
34
|
+
email: profile['primary_contact']['email']
|
35
|
+
},
|
27
36
|
type: raw_info['type'],
|
37
|
+
user_id: raw_info['user_id'],
|
28
38
|
raw_info: raw_info
|
29
39
|
}
|
30
40
|
end
|
31
41
|
|
32
42
|
def authorize_params
|
33
43
|
super.tap do |params|
|
34
|
-
|
35
|
-
params[
|
44
|
+
options[:authorize_options].each do |k|
|
45
|
+
params[k] = request.params[k.to_s] if request.params[k.to_s]
|
36
46
|
end
|
37
47
|
end
|
38
48
|
end
|
39
49
|
|
50
|
+
# this is dumb, but https://github.com/omniauth/omniauth-oauth2/issues/93 is still open
|
51
|
+
def callback_url
|
52
|
+
options[:redirect_uri] || (full_host + script_name + callback_path)
|
53
|
+
end
|
54
|
+
|
40
55
|
def raw_info
|
41
56
|
@raw_info ||= access_token.get('/v1/me').parsed
|
42
57
|
end
|
58
|
+
|
59
|
+
def profile
|
60
|
+
@profile ||= raw_info.fetch('profile', {})
|
61
|
+
end
|
62
|
+
|
63
|
+
def raw_accreditations
|
64
|
+
@raw_accreditations ||= access_token.get('/v1/accreditations').parsed
|
65
|
+
end
|
66
|
+
|
67
|
+
def indicated_unaccredited
|
68
|
+
raw_accreditations['indicated_unaccredited']
|
69
|
+
end
|
70
|
+
|
71
|
+
def accreditations
|
72
|
+
raw_accreditations['accreditations']
|
73
|
+
end
|
43
74
|
end
|
44
75
|
end
|
45
76
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-parallelmarkets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Muller
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth-oauth2
|
@@ -89,7 +89,7 @@ homepage: https://github.com/parallel-markets/omniauth-parallelmarkets
|
|
89
89
|
licenses:
|
90
90
|
- MIT
|
91
91
|
metadata: {}
|
92
|
-
post_install_message:
|
92
|
+
post_install_message:
|
93
93
|
rdoc_options: []
|
94
94
|
require_paths:
|
95
95
|
- lib
|
@@ -104,8 +104,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
104
|
- !ruby/object:Gem::Version
|
105
105
|
version: '0'
|
106
106
|
requirements: []
|
107
|
-
rubygems_version: 3.0.
|
108
|
-
signing_key:
|
107
|
+
rubygems_version: 3.0.8
|
108
|
+
signing_key:
|
109
109
|
specification_version: 4
|
110
110
|
summary: Parallel Markets OAuth strategy for OmniAuth
|
111
111
|
test_files: []
|