omniauth-webflow 0.2.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +25 -33
- data/README.md +5 -3
- data/lib/omniauth/strategies/webflow.rb +10 -19
- data/lib/omniauth-webflow/version.rb +1 -1
- data/omniauth-webflow.gemspec +0 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a64baaf2173308ad1706605ad3dfb4147ce16d07201517574aba75b1204f0510
|
4
|
+
data.tar.gz: 2fc84632f006e91cd8c35130c4d54cff3330875ef219288754da2a6de9150c7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e3fd536754d099a2f669c29ee3efb382a7877540f87bbede0592245c84cae27bfc1472fb142e9e547b066fe964de19528f9308ce667f933d6b35b3347c72665
|
7
|
+
data.tar.gz: 593876f74cd6e103662fdfc31cc1642cc68c1dcd47f30bce176337c9cacda13ef058fd9192b07fe4d4e1982642943f3c0480021d49546731db8b6c051ae0bc01
|
data/Gemfile.lock
CHANGED
@@ -1,53 +1,41 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
omniauth-webflow (0.
|
4
|
+
omniauth-webflow (1.0.0)
|
5
5
|
multi_json (~> 1.15)
|
6
6
|
omniauth-oauth2 (~> 1.7)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
+
base64 (0.2.0)
|
11
12
|
diff-lcs (1.3)
|
12
|
-
faraday (
|
13
|
-
|
14
|
-
faraday-
|
15
|
-
faraday-excon (~> 1.1)
|
16
|
-
faraday-httpclient (~> 1.0.1)
|
17
|
-
faraday-net_http (~> 1.0)
|
18
|
-
faraday-net_http_persistent (~> 1.1)
|
19
|
-
faraday-patron (~> 1.0)
|
20
|
-
faraday-rack (~> 1.0)
|
21
|
-
multipart-post (>= 1.2, < 3)
|
13
|
+
faraday (2.8.1)
|
14
|
+
base64
|
15
|
+
faraday-net_http (>= 2.0, < 3.1)
|
22
16
|
ruby2_keywords (>= 0.0.4)
|
23
|
-
faraday-
|
24
|
-
faraday-em_synchrony (1.0.0)
|
25
|
-
faraday-excon (1.1.0)
|
26
|
-
faraday-httpclient (1.0.1)
|
27
|
-
faraday-net_http (1.0.1)
|
28
|
-
faraday-net_http_persistent (1.2.0)
|
29
|
-
faraday-patron (1.0.0)
|
30
|
-
faraday-rack (1.0.0)
|
17
|
+
faraday-net_http (3.0.2)
|
31
18
|
hashie (5.0.0)
|
32
|
-
jwt (2.3
|
19
|
+
jwt (2.9.3)
|
20
|
+
base64
|
33
21
|
multi_json (1.15.0)
|
34
22
|
multi_xml (0.6.0)
|
35
|
-
|
36
|
-
|
37
|
-
faraday (>= 0.8, < 2.0)
|
23
|
+
oauth2 (2.0.9)
|
24
|
+
faraday (>= 0.17.3, < 3.0)
|
38
25
|
jwt (>= 1.0, < 3.0)
|
39
|
-
multi_json (~> 1.3)
|
40
26
|
multi_xml (~> 0.5)
|
41
|
-
rack (>= 1.2, <
|
42
|
-
|
27
|
+
rack (>= 1.2, < 4)
|
28
|
+
snaky_hash (~> 2.0)
|
29
|
+
version_gem (~> 1.1)
|
30
|
+
omniauth (2.1.2)
|
43
31
|
hashie (>= 3.4.6)
|
44
|
-
rack (>=
|
32
|
+
rack (>= 2.2.3)
|
45
33
|
rack-protection
|
46
|
-
omniauth-oauth2 (1.
|
47
|
-
oauth2 (
|
48
|
-
omniauth (
|
49
|
-
rack (
|
50
|
-
rack-protection (
|
34
|
+
omniauth-oauth2 (1.8.0)
|
35
|
+
oauth2 (>= 1.4, < 3)
|
36
|
+
omniauth (~> 2.0)
|
37
|
+
rack (3.1.8)
|
38
|
+
rack-protection (3.0.6)
|
51
39
|
rack
|
52
40
|
rake (12.3.3)
|
53
41
|
rspec (3.9.0)
|
@@ -64,6 +52,10 @@ GEM
|
|
64
52
|
rspec-support (~> 3.9.0)
|
65
53
|
rspec-support (3.9.3)
|
66
54
|
ruby2_keywords (0.0.5)
|
55
|
+
snaky_hash (2.0.1)
|
56
|
+
hashie
|
57
|
+
version_gem (~> 1.1, >= 1.1.1)
|
58
|
+
version_gem (1.1.4)
|
67
59
|
|
68
60
|
PLATFORMS
|
69
61
|
ruby
|
@@ -74,4 +66,4 @@ DEPENDENCIES
|
|
74
66
|
rspec (~> 3.0)
|
75
67
|
|
76
68
|
BUNDLED WITH
|
77
|
-
2.
|
69
|
+
2.2.27
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# omniauth-webflow
|
2
2
|
|
3
|
-
This gem is an [OmniAuth
|
3
|
+
This gem is an [OmniAuth](https://github.com/omniauth/omniauth) Strategy for authenticating with the [Webflow API](https://developers.webflow.com/v2.0.0) (Data API version 2.0.0)
|
4
4
|
|
5
5
|
## Setup
|
6
6
|
|
@@ -17,7 +17,7 @@ After registering a new application with Webflow take note of the `client_id` an
|
|
17
17
|
Add this line to your application's Gemfile:
|
18
18
|
|
19
19
|
```ruby
|
20
|
-
gem 'omniauth-webflow'
|
20
|
+
gem 'omniauth-webflow' ~> 1.0.0
|
21
21
|
```
|
22
22
|
|
23
23
|
And then execute:
|
@@ -28,9 +28,11 @@ In your Rails app, add the Webflow provider to your Omniauth middleware, e.g. in
|
|
28
28
|
|
29
29
|
```ruby
|
30
30
|
Rails.application.config.middleware.use OmniAuth::Builder do
|
31
|
-
provider :webflow, ENV['WEBFLOW_CLIENT_ID'], ENV['WEBFLOW_CLIENT_SECRET']
|
31
|
+
provider :webflow, ENV['WEBFLOW_CLIENT_ID'], ENV['WEBFLOW_CLIENT_SECRET'],
|
32
|
+
scope: 'authorized_user:read sites:read' # this is an example scope
|
32
33
|
end
|
33
34
|
```
|
35
|
+
Specify [scopes](https://docs.developers.webflow.com/reference/scopes) as required.
|
34
36
|
|
35
37
|
## Contributing
|
36
38
|
|
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'omniauth-oauth2'
|
2
4
|
|
3
5
|
module OmniAuth
|
4
6
|
module Strategies
|
5
7
|
class Webflow < OmniAuth::Strategies::OAuth2
|
6
|
-
API_VERSION = '1.0.0'.freeze
|
7
|
-
|
8
8
|
option :name, 'webflow'
|
9
9
|
option :client_options, {
|
10
10
|
site: 'https://api.webflow.com',
|
@@ -12,15 +12,12 @@ module OmniAuth
|
|
12
12
|
token_url: 'https://api.webflow.com/oauth/access_token'
|
13
13
|
}
|
14
14
|
|
15
|
-
uid { raw_info['
|
15
|
+
uid { raw_info['authorization']['id'] }
|
16
16
|
|
17
17
|
info do
|
18
18
|
{
|
19
|
-
id: raw_info['
|
20
|
-
grant_type: raw_info['grantType']
|
21
|
-
users: raw_info['users'],
|
22
|
-
orgs: raw_info['orgs'],
|
23
|
-
sites: raw_info['sites']
|
19
|
+
id: raw_info['authorization']['id'],
|
20
|
+
grant_type: raw_info['authorization']['grantType']
|
24
21
|
}
|
25
22
|
end
|
26
23
|
|
@@ -31,19 +28,13 @@ module OmniAuth
|
|
31
28
|
end
|
32
29
|
|
33
30
|
def raw_info
|
34
|
-
@raw_info ||= access_token.get(
|
31
|
+
@raw_info ||= access_token.get('https://api.webflow.com/v2/token/introspect').parsed
|
35
32
|
end
|
36
33
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
# This also means that you can not pass other url parameters through the redirect_uri.
|
42
|
-
def build_access_token
|
43
|
-
verifier = request.params['code']
|
44
|
-
uri = Addressable::URI.parse(callback_url)
|
45
|
-
redirect_uri = uri.omit(:query).to_s
|
46
|
-
client.auth_code.get_token(verifier, { redirect_uri: redirect_uri }.merge(token_params.to_hash(symbolize_keys: true)), deep_symbolize(options.auth_token_params))
|
34
|
+
# The Webflow API requires the redirect_uri to match exactly what you have in your Webflow Application settings
|
35
|
+
# This method ensures any query params are removed before the build_access_token step occurs
|
36
|
+
def callback_url
|
37
|
+
full_host + callback_path
|
47
38
|
end
|
48
39
|
end
|
49
40
|
end
|
data/omniauth-webflow.gemspec
CHANGED
@@ -27,9 +27,6 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
28
|
spec.require_paths = ['lib']
|
29
29
|
|
30
|
-
# spec.add_runtime_dependency 'omniauth-oauth2'
|
31
|
-
# spec.add_runtime_dependency 'multi_json'
|
32
|
-
|
33
30
|
spec.add_dependency 'omniauth-oauth2', '~> 1.7'
|
34
31
|
spec.add_dependency 'multi_json', '~> 1.15'
|
35
32
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-webflow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth-oauth2
|