omniauth-your-membership-token 1.1.2 → 2.0.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 +5 -5
- data/.gitignore +1 -0
- data/CHANGELOG.md +16 -11
- data/lib/omniauth/strategies/your_membership_token.rb +34 -19
- data/lib/omniauth/your_membership_token/version.rb +7 -1
- data/omniauth-your-membership-token.gemspec +3 -3
- metadata +7 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fc2f241654369dea6cfbd8592e0b367865c3f49bc8bc9d485a4af8c1c8ee37d0
|
4
|
+
data.tar.gz: 62dbbd185f8c0ff11055910285c1d13aa90142be8eb4d1a32485dd7abfc0c83c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5944ec29fa4fba8c0e20a3f7968acec86e569d5202caa79067aa5941f2d7037f7407e37524fdc345cd14dcf53343f929a6a7b3851822a5ad58cf554ecb271826
|
7
|
+
data.tar.gz: 7c577b390c2d21bc79dd9fd9e33c6a02bf02c7232474c32e0b18f5f6cd7f45c6f533b16aab6302483e8b77378a716f5cbe8597adfbd222bebf003eb6103925d5
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,15 +1,20 @@
|
|
1
|
-
#
|
1
|
+
# Changelog
|
2
|
+
|
2
3
|
All notable changes to this project will be documented in this file.
|
3
|
-
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
-
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
|
+
|
8
|
+
## (Unreleased)
|
9
|
+
|
10
|
+
- Nothing yet
|
11
|
+
|
12
|
+
## 2.0.0
|
13
|
+
|
14
|
+
- Breaking Changes
|
15
|
+
- Requires [OmniAuth 2](https://github.com/omniauth/omniauth/releases/tag/v2.0.0)
|
6
16
|
|
7
|
-
##
|
8
|
-
### Changed
|
9
|
-
- In request phase, convert `SocketError` into an OmniAuth failure.
|
10
|
-
This allows for easier handling in application code.
|
17
|
+
## Older releases
|
11
18
|
|
12
|
-
|
13
|
-
|
14
|
-
- Require omniauth 1.3.2+ or 1.4+ (for compatibility with
|
15
|
-
https://github.com/omniauth/omniauth/commit/71866c5264122e196847a3980c43051446a03e9b)
|
19
|
+
PRs welcome, in the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
20
|
+
format.
|
@@ -6,6 +6,13 @@ module OmniAuth
|
|
6
6
|
class YourMembershipToken
|
7
7
|
include OmniAuth::Strategy
|
8
8
|
|
9
|
+
E_YM_SESSION_ID_BLANK = <<~EOS
|
10
|
+
Assertion failed: YourMembership ID blank during callback_phase. This ID
|
11
|
+
was stored in the Rack session during the request_phase but has not
|
12
|
+
survived to (is no longer present in) the callback_phase.
|
13
|
+
EOS
|
14
|
+
RACK_SESSION_KEY = 'omniauth_ym_session_id'.freeze
|
15
|
+
|
9
16
|
# The UID is going to be the member's API id (member_id)
|
10
17
|
# We'll also store the session ID
|
11
18
|
option :fields, [:member_id, :ym_session]
|
@@ -13,30 +20,38 @@ module OmniAuth
|
|
13
20
|
|
14
21
|
def request_phase
|
15
22
|
|
16
|
-
# We're doing this because the callback_url is built from the
|
17
|
-
#
|
18
|
-
#
|
23
|
+
# We're doing this because the callback_url is built from the
|
24
|
+
# options.name attribute which is built by down-casing the name of the
|
25
|
+
# class. This returns an un-capitalized url which Rails will not
|
26
|
+
# recognize as the same path as the devise controller. This is a forced
|
27
|
+
# way to do this and probably has a more elegant solution.
|
19
28
|
options.name = 'yourMembershipToken'
|
29
|
+
# Build an Access Token
|
30
|
+
session = YourMembership::Session.create
|
31
|
+
token_hash = session.createToken(:RetUrl => callback_url)
|
20
32
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
33
|
+
# Store the YourMembership session id somewhere it can be retrieved
|
34
|
+
# during the callback_phase.
|
35
|
+
#
|
36
|
+
# In OmniAuth 1, we were able to do:
|
37
|
+
#
|
38
|
+
# request.params['ym_session'] = session.to_s
|
39
|
+
#
|
40
|
+
# but this seems no longer possible in OmniAuth 2 (as described in
|
41
|
+
# https://github.com/omniauth/omniauth/issues/975). So, the only thing I
|
42
|
+
# can think of is to use `env['rack.session']`. If a better solution
|
43
|
+
# is discovered, we can revisit this decision.
|
44
|
+
env['rack.session'][RACK_SESSION_KEY] = session.to_s
|
45
|
+
|
46
|
+
# Redirect to token url
|
47
|
+
redirect token_hash['GoToUrl']
|
32
48
|
end
|
33
49
|
|
50
|
+
# See discussion in `request_phase` re: the use of `env['rack.session']`.
|
34
51
|
def callback_phase
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
ym_session = YourMembership::Session.new(ym_session_id, 100)
|
52
|
+
ym_session_id = env['rack.session'][RACK_SESSION_KEY]
|
53
|
+
fail!(E_YM_SESSION_ID_BLANK) if ym_session_id.blank?
|
54
|
+
ym_session = YourMembership::Session.new(ym_session_id, 100)
|
40
55
|
|
41
56
|
begin
|
42
57
|
fail! 'Failed To Log In' unless ym_session.authenticated?
|
@@ -1,5 +1,11 @@
|
|
1
1
|
module OmniAuth
|
2
2
|
module YourMembershipToken
|
3
|
-
|
3
|
+
def self.gem_version
|
4
|
+
Gem::Version.new('2.0.0')
|
5
|
+
end
|
6
|
+
|
7
|
+
# @deprecated But will never be removed. Use `gem_version` instead, which
|
8
|
+
# provides a `Gem::Version` object that is easier to work with.
|
9
|
+
VERSION = gem_version.to_s
|
4
10
|
end
|
5
11
|
end
|
@@ -5,7 +5,7 @@ require 'omniauth/your_membership_token/version'
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "omniauth-your-membership-token"
|
8
|
-
spec.version = OmniAuth::YourMembershipToken
|
8
|
+
spec.version = OmniAuth::YourMembershipToken.gem_version.to_s
|
9
9
|
spec.authors = ["Nate Flood"]
|
10
10
|
spec.email = ["nflood@echonet.org"]
|
11
11
|
spec.summary = %q{Omniauth Strategy For Authenticating To YourMembership}
|
@@ -18,9 +18,9 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "omniauth",
|
21
|
+
spec.add_dependency "omniauth", "~> 2"
|
22
22
|
spec.add_dependency "your_membership", "~> 1.1"
|
23
23
|
|
24
|
-
spec.add_development_dependency "bundler", "~>
|
24
|
+
spec.add_development_dependency "bundler", "~> 2"
|
25
25
|
spec.add_development_dependency "rake"
|
26
26
|
end
|
metadata
CHANGED
@@ -1,33 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-your-membership-token
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nate Flood
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 1.3.2
|
20
|
-
- - "<"
|
17
|
+
- - "~>"
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: '2'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - "
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 1.3.2
|
30
|
-
- - "<"
|
24
|
+
- - "~>"
|
31
25
|
- !ruby/object:Gem::Version
|
32
26
|
version: '2'
|
33
27
|
- !ruby/object:Gem::Dependency
|
@@ -50,14 +44,14 @@ dependencies:
|
|
50
44
|
requirements:
|
51
45
|
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
47
|
+
version: '2'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
51
|
requirements:
|
58
52
|
- - "~>"
|
59
53
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
54
|
+
version: '2'
|
61
55
|
- !ruby/object:Gem::Dependency
|
62
56
|
name: rake
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,8 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
103
|
- !ruby/object:Gem::Version
|
110
104
|
version: '0'
|
111
105
|
requirements: []
|
112
|
-
|
113
|
-
rubygems_version: 2.6.10
|
106
|
+
rubygems_version: 3.0.3
|
114
107
|
signing_key:
|
115
108
|
specification_version: 4
|
116
109
|
summary: Omniauth Strategy For Authenticating To YourMembership
|