simple_token_auth 0.0.3

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.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +32 -0
  4. data/lib/generators/active_record/simple_token_auth_generator.rb +15 -0
  5. data/lib/generators/simple_token_auth/install_generator.rb +39 -0
  6. data/lib/generators/simple_token_auth/simple_token_auth_generator.rb +15 -0
  7. data/lib/generators/templates/api_key.rb +30 -0
  8. data/lib/generators/templates/migration.rb +12 -0
  9. data/lib/generators/templates/simple_token_auth.rb +14 -0
  10. data/lib/simple_token_auth.rb +28 -0
  11. data/lib/simple_token_auth/authenticate_with_token.rb +54 -0
  12. data/lib/simple_token_auth/configuration.rb +29 -0
  13. data/lib/simple_token_auth/helpers.rb +20 -0
  14. data/lib/simple_token_auth/token_authenticatable.rb +31 -0
  15. data/lib/simple_token_auth/version.rb +3 -0
  16. data/lib/tasks/simple_token_auth_tasks.rake +4 -0
  17. data/test/dummy/README.rdoc +28 -0
  18. data/test/dummy/Rakefile +6 -0
  19. data/test/dummy/app/assets/javascripts/application.js +13 -0
  20. data/test/dummy/app/assets/javascripts/users.js +2 -0
  21. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  22. data/test/dummy/app/assets/stylesheets/users.css +4 -0
  23. data/test/dummy/app/controllers/application_controller.rb +9 -0
  24. data/test/dummy/app/controllers/users_controller.rb +9 -0
  25. data/test/dummy/app/helpers/application_helper.rb +2 -0
  26. data/test/dummy/app/models/api_key.rb +26 -0
  27. data/test/dummy/app/models/user.rb +3 -0
  28. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  29. data/test/dummy/bin/bundle +3 -0
  30. data/test/dummy/bin/rails +4 -0
  31. data/test/dummy/bin/rake +4 -0
  32. data/test/dummy/config.ru +4 -0
  33. data/test/dummy/config/application.rb +23 -0
  34. data/test/dummy/config/boot.rb +5 -0
  35. data/test/dummy/config/database.yml +25 -0
  36. data/test/dummy/config/environment.rb +5 -0
  37. data/test/dummy/config/environments/development.rb +37 -0
  38. data/test/dummy/config/environments/production.rb +78 -0
  39. data/test/dummy/config/environments/test.rb +39 -0
  40. data/test/dummy/config/initializers/assets.rb +8 -0
  41. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  42. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  43. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  44. data/test/dummy/config/initializers/inflections.rb +16 -0
  45. data/test/dummy/config/initializers/mime_types.rb +4 -0
  46. data/test/dummy/config/initializers/session_store.rb +3 -0
  47. data/test/dummy/config/initializers/simple_token_auth.rb +14 -0
  48. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  49. data/test/dummy/config/locales/en.yml +23 -0
  50. data/test/dummy/config/routes.rb +3 -0
  51. data/test/dummy/config/secrets.yml +22 -0
  52. data/test/dummy/db/development.sqlite3 +0 -0
  53. data/test/dummy/db/migrate/20141015200820_create_users.rb +8 -0
  54. data/test/dummy/db/migrate/20141203034209_simple_token_auth_migration.rb +12 -0
  55. data/test/dummy/db/schema.rb +31 -0
  56. data/test/dummy/db/test.sqlite3 +0 -0
  57. data/test/dummy/log/development.log +24 -0
  58. data/test/dummy/log/test.log +2946 -0
  59. data/test/dummy/public/404.html +67 -0
  60. data/test/dummy/public/422.html +67 -0
  61. data/test/dummy/public/500.html +66 -0
  62. data/test/dummy/public/favicon.ico +0 -0
  63. data/test/simple_token_auth/integration_test.rb +38 -0
  64. data/test/simple_token_auth/user_test.rb +18 -0
  65. data/test/simple_token_auth_test.rb +6 -0
  66. data/test/test_helper.rb +17 -0
  67. metadata +204 -0
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,38 @@
1
+ require 'test_helper'
2
+
3
+ class UsersControllerTest < ActionController::TestCase
4
+ setup do
5
+ end
6
+
7
+ test 'returns 401 when not authorized' do
8
+ get :index, format: :json
9
+ assert_response 401
10
+ assert_nil assigns(:current_user)
11
+ end
12
+
13
+ test 'returns success when authorized' do
14
+ user = User.create
15
+ @request.headers["Authorization"] = "Token token=#{user.id}.#{user.auth_token}"
16
+ get :index
17
+ assert_response :success
18
+ assert_not_nil assigns(:current_user)
19
+ end
20
+
21
+ test 'returns 401 when invalid token' do
22
+ user = User.create
23
+ @request.headers["Authorization"] = "Token token=#{user.id}.invalidtoken"
24
+ get :index
25
+ assert_response 401
26
+ assert_nil assigns(:current_user)
27
+ end
28
+
29
+ test 'returns 401 when token is expired' do
30
+ user = User.create
31
+ @request.headers["Authorization"] = "Token token=#{user.id}.#{user.auth_token}"
32
+ Timecop.freeze(4.hours.since) do
33
+ get :index
34
+ assert_response 401
35
+ assert_nil assigns(:current_user)
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+
3
+ class UserTest < ActiveSupport::TestCase
4
+ test 'ensures an api key' do
5
+ user = User.create
6
+ assert_not_nil user.api_key
7
+ end
8
+
9
+ test 'renew an api key' do
10
+ user = User.create
11
+ Timecop.freeze(4.hours.since) do
12
+ old_key = user.api_key.access_token
13
+ user.renew_api_key
14
+ assert_not_equal old_key, user.api_key.access_token
15
+ assert !user.api_key.expired?
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,6 @@
1
+ require 'test_helper'
2
+
3
+ class SimpleTokenAuthTest < ActiveSupport::TestCase
4
+ test "sets generate authentication strategy" do
5
+ end
6
+ end
@@ -0,0 +1,17 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ require 'timecop'
8
+
9
+ Rails.backtrace_cleaner.remove_silencers!
10
+
11
+ # Load support files
12
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
13
+
14
+ # Load fixtures from the engine
15
+ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
16
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
17
+ end
metadata ADDED
@@ -0,0 +1,204 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simple_token_auth
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Lin He
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 4.1.6
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.1.6
27
+ - !ruby/object:Gem::Dependency
28
+ name: sqlite3
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: timecop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: |
56
+ Simple and safe token authentication library that uses Rails' `authenticate_or_request_with_http_token` method
57
+ email:
58
+ - he9lin@gmail.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - lib/generators/active_record/simple_token_auth_generator.rb
64
+ - lib/generators/simple_token_auth/install_generator.rb
65
+ - lib/generators/simple_token_auth/simple_token_auth_generator.rb
66
+ - lib/generators/templates/api_key.rb
67
+ - lib/generators/templates/migration.rb
68
+ - lib/generators/templates/simple_token_auth.rb
69
+ - lib/simple_token_auth/authenticate_with_token.rb
70
+ - lib/simple_token_auth/configuration.rb
71
+ - lib/simple_token_auth/helpers.rb
72
+ - lib/simple_token_auth/token_authenticatable.rb
73
+ - lib/simple_token_auth/version.rb
74
+ - lib/simple_token_auth.rb
75
+ - lib/tasks/simple_token_auth_tasks.rake
76
+ - MIT-LICENSE
77
+ - Rakefile
78
+ - test/dummy/app/assets/javascripts/application.js
79
+ - test/dummy/app/assets/javascripts/users.js
80
+ - test/dummy/app/assets/stylesheets/application.css
81
+ - test/dummy/app/assets/stylesheets/users.css
82
+ - test/dummy/app/controllers/application_controller.rb
83
+ - test/dummy/app/controllers/users_controller.rb
84
+ - test/dummy/app/helpers/application_helper.rb
85
+ - test/dummy/app/models/api_key.rb
86
+ - test/dummy/app/models/user.rb
87
+ - test/dummy/app/views/layouts/application.html.erb
88
+ - test/dummy/bin/bundle
89
+ - test/dummy/bin/rails
90
+ - test/dummy/bin/rake
91
+ - test/dummy/config/application.rb
92
+ - test/dummy/config/boot.rb
93
+ - test/dummy/config/database.yml
94
+ - test/dummy/config/environment.rb
95
+ - test/dummy/config/environments/development.rb
96
+ - test/dummy/config/environments/production.rb
97
+ - test/dummy/config/environments/test.rb
98
+ - test/dummy/config/initializers/assets.rb
99
+ - test/dummy/config/initializers/backtrace_silencers.rb
100
+ - test/dummy/config/initializers/cookies_serializer.rb
101
+ - test/dummy/config/initializers/filter_parameter_logging.rb
102
+ - test/dummy/config/initializers/inflections.rb
103
+ - test/dummy/config/initializers/mime_types.rb
104
+ - test/dummy/config/initializers/session_store.rb
105
+ - test/dummy/config/initializers/simple_token_auth.rb
106
+ - test/dummy/config/initializers/wrap_parameters.rb
107
+ - test/dummy/config/locales/en.yml
108
+ - test/dummy/config/routes.rb
109
+ - test/dummy/config/secrets.yml
110
+ - test/dummy/config.ru
111
+ - test/dummy/db/development.sqlite3
112
+ - test/dummy/db/migrate/20141015200820_create_users.rb
113
+ - test/dummy/db/migrate/20141203034209_simple_token_auth_migration.rb
114
+ - test/dummy/db/schema.rb
115
+ - test/dummy/db/test.sqlite3
116
+ - test/dummy/log/development.log
117
+ - test/dummy/log/test.log
118
+ - test/dummy/public/404.html
119
+ - test/dummy/public/422.html
120
+ - test/dummy/public/500.html
121
+ - test/dummy/public/favicon.ico
122
+ - test/dummy/Rakefile
123
+ - test/dummy/README.rdoc
124
+ - test/simple_token_auth/integration_test.rb
125
+ - test/simple_token_auth/user_test.rb
126
+ - test/simple_token_auth_test.rb
127
+ - test/test_helper.rb
128
+ homepage: https://bitbucket.org/he9lin/simple_token_auth
129
+ licenses:
130
+ - MIT
131
+ metadata: {}
132
+ post_install_message:
133
+ rdoc_options: []
134
+ require_paths:
135
+ - lib
136
+ required_ruby_version: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ required_rubygems_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ requirements: []
147
+ rubyforge_project:
148
+ rubygems_version: 2.0.14
149
+ signing_key:
150
+ specification_version: 4
151
+ summary: Simple and safe token authentication library that uses Rails' `authenticate_or_request_with_http_token`
152
+ method
153
+ test_files:
154
+ - test/dummy/app/assets/javascripts/application.js
155
+ - test/dummy/app/assets/javascripts/users.js
156
+ - test/dummy/app/assets/stylesheets/application.css
157
+ - test/dummy/app/assets/stylesheets/users.css
158
+ - test/dummy/app/controllers/application_controller.rb
159
+ - test/dummy/app/controllers/users_controller.rb
160
+ - test/dummy/app/helpers/application_helper.rb
161
+ - test/dummy/app/models/api_key.rb
162
+ - test/dummy/app/models/user.rb
163
+ - test/dummy/app/views/layouts/application.html.erb
164
+ - test/dummy/bin/bundle
165
+ - test/dummy/bin/rails
166
+ - test/dummy/bin/rake
167
+ - test/dummy/config/application.rb
168
+ - test/dummy/config/boot.rb
169
+ - test/dummy/config/database.yml
170
+ - test/dummy/config/environment.rb
171
+ - test/dummy/config/environments/development.rb
172
+ - test/dummy/config/environments/production.rb
173
+ - test/dummy/config/environments/test.rb
174
+ - test/dummy/config/initializers/assets.rb
175
+ - test/dummy/config/initializers/backtrace_silencers.rb
176
+ - test/dummy/config/initializers/cookies_serializer.rb
177
+ - test/dummy/config/initializers/filter_parameter_logging.rb
178
+ - test/dummy/config/initializers/inflections.rb
179
+ - test/dummy/config/initializers/mime_types.rb
180
+ - test/dummy/config/initializers/session_store.rb
181
+ - test/dummy/config/initializers/simple_token_auth.rb
182
+ - test/dummy/config/initializers/wrap_parameters.rb
183
+ - test/dummy/config/locales/en.yml
184
+ - test/dummy/config/routes.rb
185
+ - test/dummy/config/secrets.yml
186
+ - test/dummy/config.ru
187
+ - test/dummy/db/development.sqlite3
188
+ - test/dummy/db/migrate/20141015200820_create_users.rb
189
+ - test/dummy/db/migrate/20141203034209_simple_token_auth_migration.rb
190
+ - test/dummy/db/schema.rb
191
+ - test/dummy/db/test.sqlite3
192
+ - test/dummy/log/development.log
193
+ - test/dummy/log/test.log
194
+ - test/dummy/public/404.html
195
+ - test/dummy/public/422.html
196
+ - test/dummy/public/500.html
197
+ - test/dummy/public/favicon.ico
198
+ - test/dummy/Rakefile
199
+ - test/dummy/README.rdoc
200
+ - test/simple_token_auth/integration_test.rb
201
+ - test/simple_token_auth/user_test.rb
202
+ - test/simple_token_auth_test.rb
203
+ - test/test_helper.rb
204
+ has_rdoc: