rack-jwt-token-auth 0.0.1

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
+ SHA1:
3
+ metadata.gz: f2bb3240d5a110c19e3b6afc7edb05d63dc0ae24
4
+ data.tar.gz: d3ac47d46111a40a183acdb28c31ed62186994df
5
+ SHA512:
6
+ metadata.gz: 66a8a38ee002ddc833960cc6f81358f1d5c806fe3b338392c7052071cdec5d6bdef0d19c676d81c19f83f45a93b0f4a55419db1862324dc1c0df153067549d33
7
+ data.tar.gz: 5f377bf32f9d939b4139a40c4ccb019b4e293097eb95e6c7884b9953a2be5cfe6d33ca5df8dbbc6ffd1fc16e176e20de12a8190061be9e1d390acb126a6f683c
data/README.md ADDED
@@ -0,0 +1,17 @@
1
+ # About
2
+
3
+ # Installation
4
+
5
+ ```
6
+ cd rack-jwt-token-auth
7
+ bundle
8
+ ```
9
+
10
+ # Usage
11
+
12
+ ```
13
+ use Rack::JWTAuthMiddleware do |token|
14
+ data = JWT.decode(token, ExpensesTracker::JWT_SECRET)[0]
15
+ ExpensesTracker::User.with(:username, data['username'])
16
+ end
17
+ ```
@@ -0,0 +1,29 @@
1
+ require 'jwt'
2
+
3
+ module Rack
4
+ class JWTAuthMiddleware
5
+ def initialize(app, &decoder)
6
+ @app, @decoder = app, decoder
7
+ end
8
+
9
+ def call(env)
10
+ begin
11
+ if env['HTTP_AUTHORIZATION']
12
+ token = env['HTTP_AUTHORIZATION'].match(/JWT token="(.+)"/)[1]
13
+ env['user'] = @decoder.call(token)
14
+ end
15
+ rescue JWT::DecodeError => error
16
+ body = {message: error.message}.to_json
17
+
18
+ headers = {
19
+ 'Content-Type' => 'application/json',
20
+ 'Content-Length' => body.bytesize.to_s
21
+ }
22
+
23
+ return [401, headers, [body]]
24
+ end
25
+
26
+ @app.call(env)
27
+ end
28
+ end
29
+ end
File without changes
metadata ADDED
@@ -0,0 +1,74 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rack-jwt-token-auth
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - https://github.com/botanicus
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-07-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jwt
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rack
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1'
41
+ description: JWT-based token authentication middleware for Rack.
42
+ email: james@101ideas.cz
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - README.md
48
+ - lib/rack-jwt-token-auth.rb
49
+ - spec/spec_helper.rb
50
+ homepage: https://github.com/botanicus/rack-jwt-token-auth
51
+ licenses:
52
+ - MIT
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options: []
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubyforge_project: rack-jwt-token-auth
70
+ rubygems_version: 2.2.2
71
+ signing_key:
72
+ specification_version: 4
73
+ summary: JWT-based token authentication middleware.
74
+ test_files: []