keratin-authn 0.4.1 → 0.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 26792097cc800060345fe082b39cb723fe81545f
4
- data.tar.gz: 58f5ecd4e08a125fb65c338beecbd28cf3665d19
3
+ metadata.gz: ad2249f2cb34275c7f28c5f0bb163f62a2c7140e
4
+ data.tar.gz: 74d562ac45f801426514cff133ca41ec5cb33a35
5
5
  SHA512:
6
- metadata.gz: 2187cd129222281b93945b2a02518cb972bdc76636c436dc3fe64bebcd6e747540e2afe4b4f4bee0dfef57014e75207750fa3420d3e1712d6ddd9ef27e5eef54
7
- data.tar.gz: 1e6dfbb0044a45dc438d84b6dae4fa7fdacaca4ca67ca87b3da78b37b7571c7892bfab48baf2bb063193fe41f9168f22f30ae3fcd767d68251111f8806f455b5
6
+ metadata.gz: 01476b8e1ce1b963665aae57c308fe2035a87ce51b681f2eb5f7143f874965efcd349bb60000692749769fc9884f819670a270f4cac1d9349706810f86f9541c
7
+ data.tar.gz: 0532c690abb32c73675a60ab6418d831d7360378ecb690c585bbe0e373d03f3ca53ce75160beea130130b69347e387d2197ffdba9d62639ff63fb656bd6485bf
data/README.md CHANGED
@@ -109,6 +109,25 @@ class SessionsController
109
109
  end
110
110
  ```
111
111
 
112
+ ### Example: Multiple Domains
113
+
114
+ When working with multiple frontend domains it may be beneficial to use a referrer header as your audience instead of a static configuration. You can do this by providing an additional parameter to the `subject_from` method.
115
+
116
+ ```ruby
117
+ class ApplicationController
118
+ private
119
+
120
+ def current_user
121
+ return @current_user if defined? @current_user
122
+ @current_user = User.find_by_account_id(current_account_id)
123
+ end
124
+
125
+ def current_account_id
126
+ Keratin::AuthN.subject_from(cookies[:authn], audience: URI.parse(request.referer).host)
127
+ end
128
+ end
129
+ ```
130
+
112
131
  ## Testing Your App
113
132
 
114
133
  AuthN provides helpers for working with tokens in your application's controller and integration tests.
@@ -138,4 +157,3 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
138
157
  ## Contributing
139
158
 
140
159
  Bug reports and pull requests are welcome on GitHub at https://github.com/keratin/authn-rb. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
141
-
@@ -73,8 +73,8 @@ module Keratin
73
73
  class << self
74
74
  # safely fetches a subject from the id token after checking relevant claims and
75
75
  # verifying the signature.
76
- def subject_from(id_token)
77
- verifier = IDTokenVerifier.new(id_token, signature_verifier)
76
+ def subject_from(id_token, audience: Keratin::AuthN.config.audience)
77
+ verifier = IDTokenVerifier.new(id_token, signature_verifier, audience)
78
78
  verifier.subject if verifier.verified?
79
79
  end
80
80
 
@@ -2,9 +2,10 @@ require 'uri'
2
2
 
3
3
  module Keratin::AuthN
4
4
  class IDTokenVerifier
5
- def initialize(str, signature_verifier)
5
+ def initialize(str, signature_verifier, audience)
6
6
  @id_token = str
7
7
  @signature_verifier = signature_verifier
8
+ @audience = audience
8
9
  @time = Time.now.to_i
9
10
  end
10
11
 
@@ -42,7 +43,7 @@ module Keratin::AuthN
42
43
  end
43
44
 
44
45
  def token_for_us?
45
- jwt[:aud] == Keratin::AuthN.config.audience
46
+ jwt[:aud] == @audience
46
47
  end
47
48
 
48
49
  def token_fresh?
@@ -1,5 +1,5 @@
1
1
  module Keratin # rubocop:disable Style/ClassAndModuleChildren
2
2
  module AuthN
3
- VERSION = '0.4.1'
3
+ VERSION = '0.5.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: keratin-authn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lance Ivy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-18 00:00:00.000000000 Z
11
+ date: 2017-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json-jwt