devise-jwt-cookie 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: c651a98107436a37d4411225bda3f600539a4732c3db026afb97f36ea0f076c9
4
+ data.tar.gz: d2f98c4f2fffbac7c616f1d01df9b22d941ae2242ca5fbab095a440ea665c9db
5
+ SHA512:
6
+ metadata.gz: 4662d4091164b5c24c41ab6c178733473d6b4557a9db394a8f9d35d0fa1ee6ba828b87a6202fdb26e1e6a106853fc3501a3358bc6258ea946b457db1bf330c3f
7
+ data.tar.gz: 0da03f68dabf6d4e26d0e94f699fa10ea30a0ced2cb37919e2eb10a341038431ed45ad67291698de8d372d15ba7f5dc37b3d1fc51aeea9ec53e3f8daf829922d
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,208 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ devise-jwt-cookie (0.1.0)
5
+ devise-jwt (~> 0.6.0)
6
+ dry-auto_inject (~> 0.6)
7
+ dry-configurable (~> 0.9, < 0.11)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ actioncable (5.2.4.2)
13
+ actionpack (= 5.2.4.2)
14
+ nio4r (~> 2.0)
15
+ websocket-driver (>= 0.6.1)
16
+ actionmailer (5.2.4.2)
17
+ actionpack (= 5.2.4.2)
18
+ actionview (= 5.2.4.2)
19
+ activejob (= 5.2.4.2)
20
+ mail (~> 2.5, >= 2.5.4)
21
+ rails-dom-testing (~> 2.0)
22
+ actionpack (5.2.4.2)
23
+ actionview (= 5.2.4.2)
24
+ activesupport (= 5.2.4.2)
25
+ rack (~> 2.0, >= 2.0.8)
26
+ rack-test (>= 0.6.3)
27
+ rails-dom-testing (~> 2.0)
28
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
29
+ actionview (5.2.4.2)
30
+ activesupport (= 5.2.4.2)
31
+ builder (~> 3.1)
32
+ erubi (~> 1.4)
33
+ rails-dom-testing (~> 2.0)
34
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
35
+ activejob (5.2.4.2)
36
+ activesupport (= 5.2.4.2)
37
+ globalid (>= 0.3.6)
38
+ activemodel (5.2.4.2)
39
+ activesupport (= 5.2.4.2)
40
+ activerecord (5.2.4.2)
41
+ activemodel (= 5.2.4.2)
42
+ activesupport (= 5.2.4.2)
43
+ arel (>= 9.0)
44
+ activestorage (5.2.4.2)
45
+ actionpack (= 5.2.4.2)
46
+ activerecord (= 5.2.4.2)
47
+ marcel (~> 0.3.1)
48
+ activesupport (5.2.4.2)
49
+ concurrent-ruby (~> 1.0, >= 1.0.2)
50
+ i18n (>= 0.7, < 2)
51
+ minitest (~> 5.1)
52
+ tzinfo (~> 1.1)
53
+ arel (9.0.0)
54
+ bcrypt (3.1.13)
55
+ builder (3.2.4)
56
+ byebug (11.0.1)
57
+ codeclimate-test-reporter (1.0.7)
58
+ simplecov
59
+ coderay (1.1.2)
60
+ concurrent-ruby (1.1.6)
61
+ crass (1.0.6)
62
+ devise (4.7.1)
63
+ bcrypt (~> 3.0)
64
+ orm_adapter (~> 0.1)
65
+ railties (>= 4.1.0)
66
+ responders
67
+ warden (~> 1.2.3)
68
+ devise-jwt (0.6.0)
69
+ devise (~> 4.0)
70
+ warden-jwt_auth (~> 0.4)
71
+ diff-lcs (1.3)
72
+ docile (1.3.2)
73
+ dry-auto_inject (0.7.0)
74
+ dry-container (>= 0.3.4)
75
+ dry-configurable (0.9.0)
76
+ concurrent-ruby (~> 1.0)
77
+ dry-core (~> 0.4, >= 0.4.7)
78
+ dry-container (0.7.2)
79
+ concurrent-ruby (~> 1.0)
80
+ dry-configurable (~> 0.1, >= 0.1.3)
81
+ dry-core (0.4.9)
82
+ concurrent-ruby (~> 1.0)
83
+ erubi (1.9.0)
84
+ globalid (0.4.2)
85
+ activesupport (>= 4.2.0)
86
+ i18n (1.8.2)
87
+ concurrent-ruby (~> 1.0)
88
+ json (2.3.0)
89
+ jwt (2.2.1)
90
+ loofah (2.4.0)
91
+ crass (~> 1.0.2)
92
+ nokogiri (>= 1.5.9)
93
+ mail (2.7.1)
94
+ mini_mime (>= 0.1.1)
95
+ marcel (0.3.3)
96
+ mimemagic (~> 0.3.2)
97
+ method_source (1.0.0)
98
+ mimemagic (0.3.4)
99
+ mini_mime (1.0.2)
100
+ mini_portile2 (2.4.0)
101
+ minitest (5.14.0)
102
+ nio4r (2.5.2)
103
+ nokogiri (1.10.9)
104
+ mini_portile2 (~> 2.4.0)
105
+ orm_adapter (0.5.0)
106
+ pry (0.13.0)
107
+ coderay (~> 1.1)
108
+ method_source (~> 1.0)
109
+ pry-byebug (3.7.0)
110
+ byebug (~> 11.0)
111
+ pry (~> 0.10)
112
+ rack (2.2.2)
113
+ rack-test (1.1.0)
114
+ rack (>= 1.0, < 3)
115
+ rails (5.2.4.2)
116
+ actioncable (= 5.2.4.2)
117
+ actionmailer (= 5.2.4.2)
118
+ actionpack (= 5.2.4.2)
119
+ actionview (= 5.2.4.2)
120
+ activejob (= 5.2.4.2)
121
+ activemodel (= 5.2.4.2)
122
+ activerecord (= 5.2.4.2)
123
+ activestorage (= 5.2.4.2)
124
+ activesupport (= 5.2.4.2)
125
+ bundler (>= 1.3.0)
126
+ railties (= 5.2.4.2)
127
+ sprockets-rails (>= 2.0.0)
128
+ rails-dom-testing (2.0.3)
129
+ activesupport (>= 4.2.0)
130
+ nokogiri (>= 1.6)
131
+ rails-html-sanitizer (1.3.0)
132
+ loofah (~> 2.3)
133
+ railties (5.2.4.2)
134
+ actionpack (= 5.2.4.2)
135
+ activesupport (= 5.2.4.2)
136
+ method_source
137
+ rake (>= 0.8.7)
138
+ thor (>= 0.19.0, < 2.0)
139
+ rake (12.3.3)
140
+ responders (3.0.0)
141
+ actionpack (>= 5.0)
142
+ railties (>= 5.0)
143
+ rspec (3.9.0)
144
+ rspec-core (~> 3.9.0)
145
+ rspec-expectations (~> 3.9.0)
146
+ rspec-mocks (~> 3.9.0)
147
+ rspec-core (3.9.1)
148
+ rspec-support (~> 3.9.1)
149
+ rspec-expectations (3.9.1)
150
+ diff-lcs (>= 1.2.0, < 2.0)
151
+ rspec-support (~> 3.9.0)
152
+ rspec-mocks (3.9.1)
153
+ diff-lcs (>= 1.2.0, < 2.0)
154
+ rspec-support (~> 3.9.0)
155
+ rspec-rails (3.9.1)
156
+ actionpack (>= 3.0)
157
+ activesupport (>= 3.0)
158
+ railties (>= 3.0)
159
+ rspec-core (~> 3.9.0)
160
+ rspec-expectations (~> 3.9.0)
161
+ rspec-mocks (~> 3.9.0)
162
+ rspec-support (~> 3.9.0)
163
+ rspec-support (3.9.2)
164
+ simplecov (0.17.0)
165
+ docile (~> 1.1)
166
+ json (>= 1.8, < 3)
167
+ simplecov-html (~> 0.10.0)
168
+ simplecov-html (0.10.2)
169
+ sprockets (3.7.2)
170
+ concurrent-ruby (~> 1.0)
171
+ rack (> 1, < 3)
172
+ sprockets-rails (3.2.1)
173
+ actionpack (>= 4.0)
174
+ activesupport (>= 4.0)
175
+ sprockets (>= 3.0.0)
176
+ sqlite3 (1.4.2)
177
+ thor (1.0.1)
178
+ thread_safe (0.3.6)
179
+ tzinfo (1.2.6)
180
+ thread_safe (~> 0.1)
181
+ warden (1.2.8)
182
+ rack (>= 2.0.6)
183
+ warden-jwt_auth (0.4.2)
184
+ dry-auto_inject (~> 0.6)
185
+ dry-configurable (~> 0.9, < 0.11)
186
+ jwt (~> 2.1)
187
+ warden (~> 1.2)
188
+ websocket-driver (0.7.1)
189
+ websocket-extensions (>= 0.1.0)
190
+ websocket-extensions (0.1.4)
191
+
192
+ PLATFORMS
193
+ ruby
194
+
195
+ DEPENDENCIES
196
+ bundler (> 1)
197
+ codeclimate-test-reporter (~> 1.0)
198
+ devise-jwt-cookie!
199
+ pry-byebug (~> 3.7)
200
+ rails (~> 5.0)
201
+ rake (~> 12.3)
202
+ rspec (~> 3.8)
203
+ rspec-rails (~> 3.5)
204
+ simplecov (= 0.17)
205
+ sqlite3 (~> 1.3)
206
+
207
+ BUNDLED WITH
208
+ 2.1.4
data/README.md ADDED
@@ -0,0 +1,55 @@
1
+ # Devise::JWT::Cookie
2
+
3
+ `devise-jwt-cookie` is a [devise](https://github.com/plataformatec/devise) extension based on [devise-jwt](https://github.com/waiting-for-dev/devise-jwt). It should be used alongside `devise-jwt`.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'devise-jwt', '~> 0.5.9'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ ## Usage
18
+
19
+ First you need to setup up and configure devise and devise-jwt. This gem hooks into devise-jwt to add an httpOnly cookie with the JWT.
20
+
21
+ ### Model configuration
22
+
23
+ You have to update the user model to be able to use the cookie method. For example:
24
+
25
+ ```ruby
26
+ class User < ApplicationRecord
27
+ devise :database_authenticatable,
28
+ :jwt_cookie_authenticatable,
29
+ :jwt_authenticatable, jwt_revocation_strategy: Blacklist
30
+ end
31
+ ```
32
+
33
+ ### Configuration reference
34
+
35
+ This library can be configured by calling `jwt_cookie` on the devise config object:
36
+
37
+ ```ruby
38
+ Devise.setup do |config|
39
+ config.jwt do |jwt|
40
+ # config for devise-jwt goes here
41
+ end
42
+ config.jwt_cookie do |jwt_cookie|
43
+ # ...
44
+ end
45
+ end
46
+ ```
47
+
48
+ #### name
49
+
50
+ The name of the cookie. Defaults to `access_token`.
51
+
52
+ #### domain
53
+
54
+ The domain the cookie should be issued to. Will be omitted if not set.
55
+
@@ -0,0 +1,38 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'devise/jwt/cookie/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "devise-jwt-cookie"
7
+ spec.version = Devise::JWT::Cookie::VERSION
8
+ spec.authors = ["Niels van der Zanden"]
9
+ spec.email = ["niels@pharynx.nl"]
10
+
11
+ spec.summary = %q{Cookie-based JWT authentication for devise}
12
+ spec.description = %q{Cookie-based JWT authentication for devise with configurable token revocation strategies}
13
+ spec.homepage = "https://github.com/scarhand/devise-jwt-cookie"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
+ f.match(%r{^(test|spec|features)/})
18
+ end
19
+ spec.bindir = "exe"
20
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.require_paths = ["lib"]
22
+
23
+ spec.add_dependency 'devise-jwt', '~> 0.6'
24
+ spec.add_dependency 'dry-auto_inject', '~> 0.6'
25
+ spec.add_dependency 'dry-configurable', '~> 0.9', '< 0.11'
26
+
27
+ spec.add_development_dependency "bundler", "> 1"
28
+ spec.add_development_dependency "rake", "~> 12.3"
29
+ spec.add_development_dependency "rspec", "~> 3.8"
30
+ spec.add_development_dependency "pry-byebug", "~> 3.7"
31
+ # Needed to test the rails fixture application
32
+ spec.add_development_dependency 'rails', '~> 5.0'
33
+ spec.add_development_dependency 'sqlite3', '~> 1.3'
34
+ spec.add_development_dependency 'rspec-rails', '~> 3.5'
35
+ # Test reporting
36
+ spec.add_development_dependency 'simplecov', '0.17'
37
+ spec.add_development_dependency 'codeclimate-test-reporter', '~> 1.0'
38
+ end
@@ -0,0 +1,29 @@
1
+ require 'dry/configurable'
2
+ require 'dry/auto_inject'
3
+ require 'devise/jwt/cookie/strategy'
4
+
5
+ # Authentication library
6
+ module Devise
7
+ def self.jwt_cookie
8
+ yield(Devise::JWT::Cookie.config)
9
+ end
10
+
11
+ add_module(:jwt_cookie_authenticatable, strategy: :jwt_cookie)
12
+
13
+ module JWT
14
+ module Cookie
15
+ extend Dry::Configurable
16
+
17
+ setting :name, 'access_token'
18
+ setting :domain
19
+
20
+ Import = Dry::AutoInject(config)
21
+ end
22
+ end
23
+ end
24
+
25
+ require 'devise/jwt/cookie/version'
26
+ require 'devise/jwt/cookie/railtie'
27
+ require 'devise/jwt/cookie/cookie_helper'
28
+ require 'devise/jwt/cookie/middleware'
29
+ require 'devise/jwt/cookie/models'
@@ -0,0 +1,23 @@
1
+ module Devise
2
+ module JWT
3
+ module Cookie
4
+ class CookieHelper
5
+ include Cookie::Import['name', 'domain']
6
+
7
+ def build(token)
8
+ res = {
9
+ value: token,
10
+ path: '/',
11
+ httponly: true
12
+ }
13
+ res[:domain] = domain if domain.present?
14
+ [name, res]
15
+ end
16
+
17
+ def read_from(cookies)
18
+ cookies[name]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,22 @@
1
+ module Devise
2
+ module JWT
3
+ module Cookie
4
+ class Middleware
5
+ ENV_KEY = 'warden-jwt_auth.token'
6
+
7
+ def initialize(app)
8
+ @app = app
9
+ end
10
+
11
+ def call(env)
12
+ status, headers, response = @app.call(env)
13
+ if headers['Authorization'] && env[ENV_KEY]
14
+ name, cookie = CookieHelper.new.build(env[ENV_KEY])
15
+ Rack::Utils.set_cookie_header!(headers, name, cookie)
16
+ end
17
+ [status, headers, response]
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,6 @@
1
+ require 'devise/jwt/cookie/models/jwt_cookie_authenticatable'
2
+
3
+ module Devise
4
+ module Models
5
+ end
6
+ end
@@ -0,0 +1,19 @@
1
+ require 'active_support/concern'
2
+
3
+ module Devise
4
+ module Models
5
+ module JwtCookieAuthenticatable
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ def self.find_for_jwt_authentication(sub)
10
+ find_by(primary_key => sub)
11
+ end
12
+ end
13
+
14
+ def jwt_subject
15
+ id
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,13 @@
1
+ require 'rails/railtie'
2
+
3
+ module Devise
4
+ module JWT
5
+ module Cookie
6
+ class Railtie < Rails::Railtie
7
+ initializer 'devise-jwt-cookie-middleware' do |app|
8
+ app.middleware.insert_before Warden::JWTAuth::Middleware, Devise::JWT::Cookie::Middleware
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,36 @@
1
+ require 'warden'
2
+
3
+ module Devise
4
+ module JWT
5
+ module Cookie
6
+ # Warden strategy to authenticate an user through a JWT token in
7
+ # an http-only cookie
8
+ class Strategy < Warden::Strategies::Base
9
+ def valid?
10
+ !token.nil?
11
+ end
12
+
13
+ def store?
14
+ false
15
+ end
16
+
17
+ def authenticate!
18
+ # FIXME support aud
19
+ aud = nil
20
+ user = Warden::JWTAuth::UserDecoder.new.call(token, scope, aud)
21
+ success!(user)
22
+ rescue ::JWT::DecodeError => exception
23
+ fail!(exception.message)
24
+ end
25
+
26
+ private
27
+
28
+ def token
29
+ @token ||= CookieHelper.new.read_from(cookies)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+
36
+ Warden::Strategies.add(:jwt_cookie, Devise::JWT::Cookie::Strategy)
@@ -0,0 +1,7 @@
1
+ module Devise
2
+ module JWT
3
+ module Cookie
4
+ VERSION = '0.1.0'
5
+ end
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,231 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: devise-jwt-cookie
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Niels van der Zanden
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2020-04-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: devise-jwt
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.6'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: dry-auto_inject
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.6'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: dry-configurable
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.9'
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '0.11'
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '0.9'
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.11'
61
+ - !ruby/object:Gem::Dependency
62
+ name: bundler
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">"
66
+ - !ruby/object:Gem::Version
67
+ version: '1'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">"
73
+ - !ruby/object:Gem::Version
74
+ version: '1'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rake
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '12.3'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '12.3'
89
+ - !ruby/object:Gem::Dependency
90
+ name: rspec
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '3.8'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '3.8'
103
+ - !ruby/object:Gem::Dependency
104
+ name: pry-byebug
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '3.7'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '3.7'
117
+ - !ruby/object:Gem::Dependency
118
+ name: rails
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '5.0'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '5.0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: sqlite3
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '1.3'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '1.3'
145
+ - !ruby/object:Gem::Dependency
146
+ name: rspec-rails
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '3.5'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '3.5'
159
+ - !ruby/object:Gem::Dependency
160
+ name: simplecov
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - '='
164
+ - !ruby/object:Gem::Version
165
+ version: '0.17'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - '='
171
+ - !ruby/object:Gem::Version
172
+ version: '0.17'
173
+ - !ruby/object:Gem::Dependency
174
+ name: codeclimate-test-reporter
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '1.0'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '1.0'
187
+ description: Cookie-based JWT authentication for devise with configurable token revocation
188
+ strategies
189
+ email:
190
+ - niels@pharynx.nl
191
+ executables: []
192
+ extensions: []
193
+ extra_rdoc_files: []
194
+ files:
195
+ - Gemfile
196
+ - Gemfile.lock
197
+ - README.md
198
+ - devise-jwt-cookie.gemspec
199
+ - lib/devise/jwt/cookie.rb
200
+ - lib/devise/jwt/cookie/cookie_helper.rb
201
+ - lib/devise/jwt/cookie/middleware.rb
202
+ - lib/devise/jwt/cookie/models.rb
203
+ - lib/devise/jwt/cookie/models/jwt_cookie_authenticatable.rb
204
+ - lib/devise/jwt/cookie/railtie.rb
205
+ - lib/devise/jwt/cookie/strategy.rb
206
+ - lib/devise/jwt/cookie/version.rb
207
+ homepage: https://github.com/scarhand/devise-jwt-cookie
208
+ licenses:
209
+ - MIT
210
+ metadata: {}
211
+ post_install_message:
212
+ rdoc_options: []
213
+ require_paths:
214
+ - lib
215
+ required_ruby_version: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ version: '0'
220
+ required_rubygems_version: !ruby/object:Gem::Requirement
221
+ requirements:
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ version: '0'
225
+ requirements: []
226
+ rubyforge_project:
227
+ rubygems_version: 2.7.6.2
228
+ signing_key:
229
+ specification_version: 4
230
+ summary: Cookie-based JWT authentication for devise
231
+ test_files: []