devise-jwt 0.5.4 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 32fe8c3c030561e41ec59fdd1c8b908383f6b17a
4
- data.tar.gz: 4e6963a574f5b2ce85348c6cf7d517012d8211c5
3
+ metadata.gz: 57b63a9ada186b91ddf11b892501aabae2f4492d
4
+ data.tar.gz: fa3f300ec74e2486c89a8c1a43ddd5e2cf7de9dd
5
5
  SHA512:
6
- metadata.gz: 71cf006f402864377c0beb7651034b23aacb0e8d9f69843f6b2a32226a0e28b3ef574e608dde454e9d9bacb0bfc65467d07fd11b815a0d716c42921ec3bb82f4
7
- data.tar.gz: a1d2488ef35b9943ddcb071b4ead6f5f9392e52027d26323e5af75c52d6c03534f9b566ac955d3f12020360c7e8b163bf8656a637804f29dd98367439c9ea880
6
+ metadata.gz: a3266cc44d2018dba06637e32ddc38c7d03a10d51db4c2417e3c4fd7efa4972bbc62e85176fab2b69aadebf5be34ade00685d32f08e609c0782fa16b288db74d
7
+ data.tar.gz: 6b633a9f667ee171e4b7c874ccbd321959b91c3581cc92c63a2d599ac9aa67db4eaff2088d5b3c0d725b3498fa6fc480917af85509785dae1d4f4ef1419baa42
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
+ ## [0.5.5] - 2018-01-30
8
+ ### Fixed
9
+ - Update `warden-jwt_auth` dependency to reenable JWT scopes being stored to
10
+ the session and inform the user.
11
+
7
12
  ## [0.5.4] - 2018-01-09
8
13
  ### Fixed
9
14
  - Update `warden-jwt_auth` dependency to allow a JWT scope to be fetched from
data/README.md CHANGED
@@ -26,7 +26,7 @@ You can read about which security concerns this library takes into account and a
26
26
  Add this line to your application's Gemfile:
27
27
 
28
28
  ```ruby
29
- gem 'devise-jwt', '~> 0.5.4'
29
+ gem 'devise-jwt', '~> 0.5.5'
30
30
  ```
31
31
 
32
32
  And then execute:
@@ -111,6 +111,42 @@ config.middleware.insert_before 0, Rack::Cors do
111
111
  end
112
112
  ```
113
113
 
114
+ #### Session storage caveat
115
+
116
+ If you are working with a Rails application that has session storage enabled
117
+ and a default devise setup, chances are that same origin requests will be
118
+ authenticated from the session regardless of a token being present in the
119
+ headers or not.
120
+
121
+ This is so because of the following default devise workflow:
122
+
123
+ - When a user signs in with `:database_authenticatable` strategy, the user is
124
+ stored in the session unless one of the following conditions is met:
125
+ - Session is disabled.
126
+ - Devise `config.skip_session_storage` includes `:params_auth`.
127
+ - [Rails Request forgery
128
+ protection](http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection.html)
129
+ handles an unverified request (but this is usually deactivated for API
130
+ requests).
131
+ - Warden (the engine below devise), authenticates any request that has the user
132
+ in the session without even reaching to any strategy (`:jwt_authenticatable`
133
+ in our case).
134
+
135
+ So, if you want to avoid this caveat you have two options:
136
+
137
+ - Disable the session. If you are developing an API, probably you don't need
138
+ it. In order to disable it, change `config/initializers/session_store.rb` to:
139
+ ```ruby
140
+ Rails.application.config.session_store :disabled
141
+ ```
142
+ Notice that if you created the application with the `--api` flag you already
143
+ have the session disabled.
144
+ - If you still need the session for any other purpose, disable
145
+ `:database_authenticatable` user storage. In `config/initializers/devise.rb`:
146
+ ```ruby
147
+ config.skip_session_storage = [:http_auth, :params_auth]
148
+ ```
149
+
114
150
  ### Revocation strategies
115
151
 
116
152
  `devise-jwt` comes with three revocation strategies out of the box. Some of them are implementations of what is discussed in the blog post [JWT Revocation Strategies](http://waiting-for-dev.github.io/blog/2017/01/24/jwt_revocation_strategies/), where I also talk about their pros and cons.
@@ -311,9 +347,9 @@ end
311
347
 
312
348
  ### Testing
313
349
 
314
- Models configured with `:jwt_authenticatable` can't be retrieved from the
315
- session. For this reason, `sign_in` devise testing helper methods won't work as
316
- expected.
350
+ Models configured with `:jwt_authenticatable` usually won't be retrieved from
351
+ the session. For this reason, `sign_in` devise testing helper methods won't
352
+ work as expected.
317
353
 
318
354
  What you need to do in order to authenticate test environment requests is the
319
355
  same that you will do in production: to provide a valid token in the
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.require_paths = ["lib"]
23
23
 
24
24
  spec.add_dependency 'devise', '~> 4.0'
25
- spec.add_dependency 'warden-jwt_auth', '~> 0.3.4'
25
+ spec.add_dependency 'warden-jwt_auth', '~> 0.3.5'
26
26
 
27
27
  spec.add_development_dependency "bundler", "~> 1.12"
28
28
  spec.add_development_dependency "rake", "~> 10.0"
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Devise
4
4
  module JWT
5
- VERSION = '0.5.4'
5
+ VERSION = '0.5.5'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise-jwt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc Busqué
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-09 00:00:00.000000000 Z
11
+ date: 2018-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: devise
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.3.4
33
+ version: 0.3.5
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.3.4
40
+ version: 0.3.5
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement