devise_jwt_auth 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.
Files changed (179) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +13 -0
  3. data/README.md +99 -0
  4. data/Rakefile +42 -0
  5. data/app/controllers/devise_jwt_auth/application_controller.rb +80 -0
  6. data/app/controllers/devise_jwt_auth/concerns/resource_finder.rb +44 -0
  7. data/app/controllers/devise_jwt_auth/concerns/set_user_by_jwt_token.rb +111 -0
  8. data/app/controllers/devise_jwt_auth/confirmations_controller.rb +88 -0
  9. data/app/controllers/devise_jwt_auth/omniauth_callbacks_controller.rb +291 -0
  10. data/app/controllers/devise_jwt_auth/passwords_controller.rb +217 -0
  11. data/app/controllers/devise_jwt_auth/refresh_token_controller.rb +41 -0
  12. data/app/controllers/devise_jwt_auth/registrations_controller.rb +203 -0
  13. data/app/controllers/devise_jwt_auth/sessions_controller.rb +131 -0
  14. data/app/controllers/devise_jwt_auth/unlocks_controller.rb +99 -0
  15. data/app/models/devise_jwt_auth/concerns/active_record_support.rb +16 -0
  16. data/app/models/devise_jwt_auth/concerns/confirmable_support.rb +27 -0
  17. data/app/models/devise_jwt_auth/concerns/mongoid_support.rb +19 -0
  18. data/app/models/devise_jwt_auth/concerns/tokens_serialization.rb +19 -0
  19. data/app/models/devise_jwt_auth/concerns/user.rb +117 -0
  20. data/app/models/devise_jwt_auth/concerns/user_omniauth_callbacks.rb +28 -0
  21. data/app/validators/devise_jwt_auth_email_validator.rb +23 -0
  22. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  23. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  24. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  25. data/app/views/devise_jwt_auth/omniauth_external_window.html.erb +38 -0
  26. data/config/locales/da-DK.yml +52 -0
  27. data/config/locales/de.yml +51 -0
  28. data/config/locales/en.yml +57 -0
  29. data/config/locales/es.yml +51 -0
  30. data/config/locales/fr.yml +51 -0
  31. data/config/locales/he.yml +52 -0
  32. data/config/locales/it.yml +48 -0
  33. data/config/locales/ja.yml +48 -0
  34. data/config/locales/ko.yml +51 -0
  35. data/config/locales/nl.yml +32 -0
  36. data/config/locales/pl.yml +50 -0
  37. data/config/locales/pt-BR.yml +48 -0
  38. data/config/locales/pt.yml +50 -0
  39. data/config/locales/ro.yml +48 -0
  40. data/config/locales/ru.yml +52 -0
  41. data/config/locales/sq.yml +48 -0
  42. data/config/locales/sv.yml +52 -0
  43. data/config/locales/uk.yml +61 -0
  44. data/config/locales/vi.yml +52 -0
  45. data/config/locales/zh-CN.yml +48 -0
  46. data/config/locales/zh-HK.yml +50 -0
  47. data/config/locales/zh-TW.yml +50 -0
  48. data/lib/devise_jwt_auth.rb +14 -0
  49. data/lib/devise_jwt_auth/blacklist.rb +2 -0
  50. data/lib/devise_jwt_auth/controllers/helpers.rb +161 -0
  51. data/lib/devise_jwt_auth/controllers/url_helpers.rb +10 -0
  52. data/lib/devise_jwt_auth/engine.rb +96 -0
  53. data/lib/devise_jwt_auth/errors.rb +8 -0
  54. data/lib/devise_jwt_auth/rails/routes.rb +118 -0
  55. data/lib/devise_jwt_auth/token_factory.rb +51 -0
  56. data/lib/devise_jwt_auth/url.rb +44 -0
  57. data/lib/devise_jwt_auth/version.rb +5 -0
  58. data/lib/generators/devise_jwt_auth/USAGE +31 -0
  59. data/lib/generators/devise_jwt_auth/install_generator.rb +91 -0
  60. data/lib/generators/devise_jwt_auth/install_generator_helpers.rb +98 -0
  61. data/lib/generators/devise_jwt_auth/install_mongoid_generator.rb +46 -0
  62. data/lib/generators/devise_jwt_auth/install_views_generator.rb +18 -0
  63. data/lib/generators/devise_jwt_auth/templates/devise_jwt_auth.rb +74 -0
  64. data/lib/generators/devise_jwt_auth/templates/devise_jwt_auth_create_users.rb.erb +51 -0
  65. data/lib/generators/devise_jwt_auth/templates/user.rb.erb +9 -0
  66. data/lib/generators/devise_jwt_auth/templates/user_mongoid.rb.erb +56 -0
  67. data/lib/tasks/devise_token_auth_tasks.rake +6 -0
  68. data/test/controllers/custom/custom_confirmations_controller_test.rb +25 -0
  69. data/test/controllers/custom/custom_omniauth_callbacks_controller_test.rb +33 -0
  70. data/test/controllers/custom/custom_passwords_controller_test.rb +79 -0
  71. data/test/controllers/custom/custom_refresh_token_controller_test.rb +36 -0
  72. data/test/controllers/custom/custom_registrations_controller_test.rb +59 -0
  73. data/test/controllers/custom/custom_sessions_controller_test.rb +39 -0
  74. data/test/controllers/demo_group_controller_test.rb +150 -0
  75. data/test/controllers/demo_mang_controller_test.rb +286 -0
  76. data/test/controllers/demo_user_controller_test.rb +650 -0
  77. data/test/controllers/devise_jwt_auth/confirmations_controller_test.rb +194 -0
  78. data/test/controllers/devise_jwt_auth/omniauth_callbacks_controller_test.rb +462 -0
  79. data/test/controllers/devise_jwt_auth/passwords_controller_test.rb +881 -0
  80. data/test/controllers/devise_jwt_auth/refresh_token_controller_test.rb +84 -0
  81. data/test/controllers/devise_jwt_auth/registrations_controller_test.rb +944 -0
  82. data/test/controllers/devise_jwt_auth/sessions_controller_test.rb +510 -0
  83. data/test/controllers/devise_jwt_auth/unlocks_controller_test.rb +197 -0
  84. data/test/controllers/overrides/confirmations_controller_test.rb +47 -0
  85. data/test/controllers/overrides/omniauth_callbacks_controller_test.rb +53 -0
  86. data/test/controllers/overrides/passwords_controller_test.rb +65 -0
  87. data/test/controllers/overrides/refresh_token_controller_test.rb +37 -0
  88. data/test/controllers/overrides/registrations_controller_test.rb +47 -0
  89. data/test/controllers/overrides/sessions_controller_test.rb +35 -0
  90. data/test/dummy/README.rdoc +28 -0
  91. data/test/dummy/app/active_record/confirmable_user.rb +11 -0
  92. data/test/dummy/app/active_record/lockable_user.rb +7 -0
  93. data/test/dummy/app/active_record/mang.rb +5 -0
  94. data/test/dummy/app/active_record/only_email_user.rb +7 -0
  95. data/test/dummy/app/active_record/scoped_user.rb +9 -0
  96. data/test/dummy/app/active_record/unconfirmable_user.rb +9 -0
  97. data/test/dummy/app/active_record/unregisterable_user.rb +9 -0
  98. data/test/dummy/app/active_record/user.rb +6 -0
  99. data/test/dummy/app/controllers/application_controller.rb +18 -0
  100. data/test/dummy/app/controllers/auth_origin_controller.rb +7 -0
  101. data/test/dummy/app/controllers/custom/confirmations_controller.rb +13 -0
  102. data/test/dummy/app/controllers/custom/omniauth_callbacks_controller.rb +13 -0
  103. data/test/dummy/app/controllers/custom/passwords_controller.rb +39 -0
  104. data/test/dummy/app/controllers/custom/refresh_token_controller.rb +20 -0
  105. data/test/dummy/app/controllers/custom/registrations_controller.rb +39 -0
  106. data/test/dummy/app/controllers/custom/sessions_controller.rb +29 -0
  107. data/test/dummy/app/controllers/demo_group_controller.rb +15 -0
  108. data/test/dummy/app/controllers/demo_mang_controller.rb +14 -0
  109. data/test/dummy/app/controllers/demo_user_controller.rb +27 -0
  110. data/test/dummy/app/controllers/overrides/confirmations_controller.rb +37 -0
  111. data/test/dummy/app/controllers/overrides/omniauth_callbacks_controller.rb +16 -0
  112. data/test/dummy/app/controllers/overrides/passwords_controller.rb +45 -0
  113. data/test/dummy/app/controllers/overrides/refresh_token_controller.rb +22 -0
  114. data/test/dummy/app/controllers/overrides/registrations_controller.rb +29 -0
  115. data/test/dummy/app/controllers/overrides/sessions_controller.rb +36 -0
  116. data/test/dummy/app/helpers/application_helper.rb +1058 -0
  117. data/test/dummy/app/models/concerns/favorite_color.rb +19 -0
  118. data/test/dummy/app/mongoid/confirmable_user.rb +52 -0
  119. data/test/dummy/app/mongoid/lockable_user.rb +38 -0
  120. data/test/dummy/app/mongoid/mang.rb +46 -0
  121. data/test/dummy/app/mongoid/only_email_user.rb +33 -0
  122. data/test/dummy/app/mongoid/scoped_user.rb +50 -0
  123. data/test/dummy/app/mongoid/unconfirmable_user.rb +44 -0
  124. data/test/dummy/app/mongoid/unregisterable_user.rb +47 -0
  125. data/test/dummy/app/mongoid/user.rb +49 -0
  126. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  127. data/test/dummy/config.ru +18 -0
  128. data/test/dummy/config/application.rb +48 -0
  129. data/test/dummy/config/application.yml.bk +0 -0
  130. data/test/dummy/config/boot.rb +11 -0
  131. data/test/dummy/config/environment.rb +7 -0
  132. data/test/dummy/config/environments/development.rb +46 -0
  133. data/test/dummy/config/environments/production.rb +84 -0
  134. data/test/dummy/config/environments/test.rb +50 -0
  135. data/test/dummy/config/initializers/assets.rb +10 -0
  136. data/test/dummy/config/initializers/backtrace_silencers.rb +9 -0
  137. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  138. data/test/dummy/config/initializers/devise.rb +290 -0
  139. data/test/dummy/config/initializers/devise_jwt_auth.rb +55 -0
  140. data/test/dummy/config/initializers/figaro.rb +3 -0
  141. data/test/dummy/config/initializers/filter_parameter_logging.rb +6 -0
  142. data/test/dummy/config/initializers/inflections.rb +18 -0
  143. data/test/dummy/config/initializers/mime_types.rb +6 -0
  144. data/test/dummy/config/initializers/omniauth.rb +11 -0
  145. data/test/dummy/config/initializers/session_store.rb +5 -0
  146. data/test/dummy/config/initializers/wrap_parameters.rb +16 -0
  147. data/test/dummy/config/routes.rb +57 -0
  148. data/test/dummy/config/spring.rb +3 -0
  149. data/test/dummy/db/migrate/20140715061447_devise_token_auth_create_users.rb +58 -0
  150. data/test/dummy/db/migrate/20140715061805_devise_token_auth_create_mangs.rb +57 -0
  151. data/test/dummy/db/migrate/20140829044006_add_operating_thetan_to_user.rb +8 -0
  152. data/test/dummy/db/migrate/20140916224624_add_favorite_color_to_mangs.rb +7 -0
  153. data/test/dummy/db/migrate/20141222035835_devise_token_auth_create_only_email_users.rb +55 -0
  154. data/test/dummy/db/migrate/20141222053502_devise_token_auth_create_unregisterable_users.rb +56 -0
  155. data/test/dummy/db/migrate/20150708104536_devise_token_auth_create_unconfirmable_users.rb +56 -0
  156. data/test/dummy/db/migrate/20160103235141_devise_token_auth_create_scoped_users.rb +56 -0
  157. data/test/dummy/db/migrate/20160629184441_devise_token_auth_create_lockable_users.rb +56 -0
  158. data/test/dummy/db/migrate/20190924101113_devise_token_auth_create_confirmable_users.rb +49 -0
  159. data/test/dummy/db/schema.rb +198 -0
  160. data/test/dummy/lib/migration_database_helper.rb +43 -0
  161. data/test/dummy/tmp/generators/app/models/user.rb +9 -0
  162. data/test/dummy/tmp/generators/config/initializers/devise_jwt_auth.rb +74 -0
  163. data/test/dummy/tmp/generators/config/routes.rb +4 -0
  164. data/test/dummy/tmp/generators/db/migrate/20200206224309_devise_jwt_auth_create_users.rb +51 -0
  165. data/test/factories/users.rb +41 -0
  166. data/test/lib/devise_jwt_auth/blacklist_test.rb +11 -0
  167. data/test/lib/devise_jwt_auth/token_factory_test.rb +115 -0
  168. data/test/lib/devise_jwt_auth/url_test.rb +26 -0
  169. data/test/lib/generators/devise_jwt_auth/install_generator_test.rb +219 -0
  170. data/test/lib/generators/devise_jwt_auth/install_generator_with_namespace_test.rb +224 -0
  171. data/test/lib/generators/devise_jwt_auth/install_views_generator_test.rb +25 -0
  172. data/test/models/concerns/mongoid_support_test.rb +31 -0
  173. data/test/models/concerns/tokens_serialization_test.rb +72 -0
  174. data/test/models/confirmable_user_test.rb +35 -0
  175. data/test/models/only_email_user_test.rb +29 -0
  176. data/test/models/user_test.rb +110 -0
  177. data/test/support/controllers/routes.rb +43 -0
  178. data/test/test_helper.rb +91 -0
  179. metadata +503 -0
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ include MigrationDatabaseHelper
4
+
5
+ class DeviseJwtAuthCreateScopedUsers < ActiveRecord::Migration[4.2]
6
+ def change
7
+ create_table(:scoped_users) do |t|
8
+ ## Required
9
+ t.string :provider, null: false
10
+ t.string :uid, null: false, default: ''
11
+
12
+ ## Database authenticatable
13
+ t.string :encrypted_password, null: false, default: ''
14
+
15
+ ## Recoverable
16
+ t.string :reset_password_token
17
+ t.datetime :reset_password_sent_at
18
+ t.boolean :allow_password_change, default: false
19
+
20
+ ## Rememberable
21
+ t.datetime :remember_created_at
22
+
23
+ ## Confirmable
24
+ t.string :confirmation_token
25
+ t.datetime :confirmed_at
26
+ t.datetime :confirmation_sent_at
27
+ t.string :unconfirmed_email # Only if using reconfirmable
28
+
29
+ ## Lockable
30
+ # t.integer :failed_attempts, :default => 0, :null => false # Only if lock strategy is :failed_attempts
31
+ # t.string :unlock_token # Only if unlock strategy is :email or :both
32
+ # t.datetime :locked_at
33
+
34
+ ## User Info
35
+ t.string :name
36
+ t.string :nickname
37
+ t.string :image
38
+ t.string :email
39
+
40
+ ## Tokens
41
+ if json_supported_database?
42
+ t.json :tokens
43
+ else
44
+ t.text :tokens
45
+ end
46
+
47
+ t.timestamps
48
+ end
49
+
50
+ add_index :scoped_users, :email
51
+ add_index :scoped_users, [:uid, :provider], unique: true
52
+ add_index :scoped_users, :reset_password_token, unique: true
53
+ # add_index :scoped_users, :confirmation_token, :unique => true
54
+ # add_index :scoped_users, :unlock_token, :unique => true
55
+ end
56
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ include MigrationDatabaseHelper
4
+
5
+ class DeviseJwtAuthCreateLockableUsers < ActiveRecord::Migration[4.2]
6
+ def change
7
+ create_table(:lockable_users) do |t|
8
+ ## Required
9
+ t.string :provider, null: false
10
+ t.string :uid, null: false, default: ''
11
+
12
+ ## Database authenticatable
13
+ t.string :encrypted_password, null: false, default: ''
14
+
15
+ ## Recoverable
16
+ # t.string :reset_password_token
17
+ # t.datetime :reset_password_sent_at
18
+ # t.boolean :allow_password_change, :default => false
19
+
20
+ ## Rememberable
21
+ # t.datetime :remember_created_at
22
+
23
+ ## Confirmable
24
+ # t.string :confirmation_token
25
+ # t.datetime :confirmed_at
26
+ # t.datetime :confirmation_sent_at
27
+ # t.string :unconfirmed_email # Only if using reconfirmable
28
+
29
+ ## Lockable
30
+ t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
31
+ t.string :unlock_token # Only if unlock strategy is :email or :both
32
+ t.datetime :locked_at
33
+
34
+ ## User Info
35
+ t.string :name
36
+ t.string :nickname
37
+ t.string :image
38
+ t.string :email
39
+
40
+ ## Tokens
41
+ if json_supported_database?
42
+ t.json :tokens
43
+ else
44
+ t.text :tokens
45
+ end
46
+
47
+ t.timestamps
48
+ end
49
+
50
+ add_index :lockable_users, :email
51
+ add_index :lockable_users, [:uid, :provider], unique: true
52
+ # add_index :lockable_users, :reset_password_token, :unique => true
53
+ # add_index :lockable_users, :confirmation_token, :unique => true
54
+ add_index :lockable_users, :unlock_token, unique: true
55
+ end
56
+ end
@@ -0,0 +1,49 @@
1
+ class DeviseJwtAuthCreateConfirmableUsers < ActiveRecord::Migration[5.2]
2
+ def change
3
+
4
+ create_table(:confirmable_users) do |t|
5
+ ## Required
6
+ t.string :provider, :null => false, :default => "email"
7
+ t.string :uid, :null => false, :default => ""
8
+
9
+ ## Database authenticatable
10
+ t.string :encrypted_password, :null => false, :default => ""
11
+
12
+ ## Recoverable
13
+ t.string :reset_password_token
14
+ t.datetime :reset_password_sent_at
15
+ t.boolean :allow_password_change, :default => false
16
+
17
+ ## Rememberable
18
+ t.datetime :remember_created_at
19
+
20
+ ## Confirmable
21
+ t.string :confirmation_token
22
+ t.datetime :confirmed_at
23
+ t.datetime :confirmation_sent_at
24
+ t.string :unconfirmed_email # Only if using reconfirmable
25
+
26
+ ## Lockable
27
+ # t.integer :failed_attempts, :default => 0, :null => false # Only if lock strategy is :failed_attempts
28
+ # t.string :unlock_token # Only if unlock strategy is :email or :both
29
+ # t.datetime :locked_at
30
+
31
+ ## User Info
32
+ t.string :name
33
+ t.string :nickname
34
+ t.string :image
35
+ t.string :email
36
+
37
+ ## Tokens
38
+ t.text :tokens
39
+
40
+ t.timestamps
41
+ end
42
+
43
+ add_index :confirmable_users, :email, unique: true
44
+ add_index :confirmable_users, [:uid, :provider], unique: true
45
+ add_index :confirmable_users, :reset_password_token, unique: true
46
+ add_index :confirmable_users, :confirmation_token, unique: true
47
+ # add_index :confirmable_users, :unlock_token, unique: true
48
+ end
49
+ end
@@ -0,0 +1,198 @@
1
+ # This file is auto-generated from the current state of the database. Instead
2
+ # of editing this file, please use the migrations feature of Active Record to
3
+ # incrementally modify your database, and then regenerate this schema definition.
4
+ #
5
+ # This file is the source Rails uses to define your schema when running `rails
6
+ # db:schema:load`. When creating a new database, `rails db:schema:load` tends to
7
+ # be faster and is potentially less error prone than running all of your
8
+ # migrations from scratch. Old migrations may fail to apply correctly if those
9
+ # migrations use external dependencies or application code.
10
+ #
11
+ # It's strongly recommended that you check this file into your version control system.
12
+
13
+ ActiveRecord::Schema.define(version: 2019_09_24_101113) do
14
+
15
+ create_table "confirmable_users", force: :cascade do |t|
16
+ t.string "provider", default: "email", null: false
17
+ t.string "uid", default: "", null: false
18
+ t.string "encrypted_password", default: "", null: false
19
+ t.string "reset_password_token"
20
+ t.datetime "reset_password_sent_at"
21
+ t.boolean "allow_password_change", default: false
22
+ t.datetime "remember_created_at"
23
+ t.string "confirmation_token"
24
+ t.datetime "confirmed_at"
25
+ t.datetime "confirmation_sent_at"
26
+ t.string "unconfirmed_email"
27
+ t.string "name"
28
+ t.string "nickname"
29
+ t.string "image"
30
+ t.string "email"
31
+ t.text "tokens"
32
+ t.datetime "created_at", null: false
33
+ t.datetime "updated_at", null: false
34
+ t.index ["confirmation_token"], name: "index_confirmable_users_on_confirmation_token", unique: true
35
+ t.index ["email"], name: "index_confirmable_users_on_email", unique: true
36
+ t.index ["reset_password_token"], name: "index_confirmable_users_on_reset_password_token", unique: true
37
+ t.index ["uid", "provider"], name: "index_confirmable_users_on_uid_and_provider", unique: true
38
+ end
39
+
40
+ create_table "lockable_users", force: :cascade do |t|
41
+ t.string "provider", null: false
42
+ t.string "uid", default: "", null: false
43
+ t.string "encrypted_password", default: "", null: false
44
+ t.integer "failed_attempts", default: 0, null: false
45
+ t.string "unlock_token"
46
+ t.datetime "locked_at"
47
+ t.string "name"
48
+ t.string "nickname"
49
+ t.string "image"
50
+ t.string "email"
51
+ t.text "tokens"
52
+ t.datetime "created_at"
53
+ t.datetime "updated_at"
54
+ t.index ["email"], name: "index_lockable_users_on_email"
55
+ t.index ["uid", "provider"], name: "index_lockable_users_on_uid_and_provider", unique: true
56
+ t.index ["unlock_token"], name: "index_lockable_users_on_unlock_token", unique: true
57
+ end
58
+
59
+ create_table "mangs", force: :cascade do |t|
60
+ t.string "email"
61
+ t.string "encrypted_password", default: "", null: false
62
+ t.string "reset_password_token"
63
+ t.datetime "reset_password_sent_at"
64
+ t.string "reset_password_redirect_url"
65
+ t.boolean "allow_password_change", default: false
66
+ t.datetime "remember_created_at"
67
+ t.string "confirmation_token"
68
+ t.datetime "confirmed_at"
69
+ t.datetime "confirmation_sent_at"
70
+ t.string "unconfirmed_email"
71
+ t.string "name"
72
+ t.string "nickname"
73
+ t.string "image"
74
+ t.string "provider"
75
+ t.string "uid", default: "", null: false
76
+ t.text "tokens"
77
+ t.datetime "created_at"
78
+ t.datetime "updated_at"
79
+ t.string "favorite_color"
80
+ t.index ["confirmation_token"], name: "index_mangs_on_confirmation_token", unique: true
81
+ t.index ["email"], name: "index_mangs_on_email"
82
+ t.index ["reset_password_token"], name: "index_mangs_on_reset_password_token", unique: true
83
+ t.index ["uid", "provider"], name: "index_mangs_on_uid_and_provider", unique: true
84
+ end
85
+
86
+ create_table "only_email_users", force: :cascade do |t|
87
+ t.string "provider", null: false
88
+ t.string "uid", default: "", null: false
89
+ t.string "encrypted_password", default: "", null: false
90
+ t.string "name"
91
+ t.string "nickname"
92
+ t.string "image"
93
+ t.string "email"
94
+ t.text "tokens"
95
+ t.datetime "created_at"
96
+ t.datetime "updated_at"
97
+ t.index ["email"], name: "index_only_email_users_on_email"
98
+ t.index ["uid", "provider"], name: "index_only_email_users_on_uid_and_provider", unique: true
99
+ end
100
+
101
+ create_table "scoped_users", force: :cascade do |t|
102
+ t.string "provider", null: false
103
+ t.string "uid", default: "", null: false
104
+ t.string "encrypted_password", default: "", null: false
105
+ t.string "reset_password_token"
106
+ t.datetime "reset_password_sent_at"
107
+ t.boolean "allow_password_change", default: false
108
+ t.datetime "remember_created_at"
109
+ t.string "confirmation_token"
110
+ t.datetime "confirmed_at"
111
+ t.datetime "confirmation_sent_at"
112
+ t.string "unconfirmed_email"
113
+ t.string "name"
114
+ t.string "nickname"
115
+ t.string "image"
116
+ t.string "email"
117
+ t.text "tokens"
118
+ t.datetime "created_at"
119
+ t.datetime "updated_at"
120
+ t.index ["email"], name: "index_scoped_users_on_email"
121
+ t.index ["reset_password_token"], name: "index_scoped_users_on_reset_password_token", unique: true
122
+ t.index ["uid", "provider"], name: "index_scoped_users_on_uid_and_provider", unique: true
123
+ end
124
+
125
+ create_table "unconfirmable_users", force: :cascade do |t|
126
+ t.string "provider", null: false
127
+ t.string "uid", default: "", null: false
128
+ t.string "encrypted_password", default: "", null: false
129
+ t.string "reset_password_token"
130
+ t.datetime "reset_password_sent_at"
131
+ t.boolean "allow_password_change", default: false
132
+ t.datetime "remember_created_at"
133
+ t.string "name"
134
+ t.string "nickname"
135
+ t.string "image"
136
+ t.string "email"
137
+ t.text "tokens"
138
+ t.datetime "created_at"
139
+ t.datetime "updated_at"
140
+ t.index ["email"], name: "index_unconfirmable_users_on_email"
141
+ t.index ["reset_password_token"], name: "index_unconfirmable_users_on_reset_password_token", unique: true
142
+ t.index ["uid", "provider"], name: "index_unconfirmable_users_on_uid_and_provider", unique: true
143
+ end
144
+
145
+ create_table "unregisterable_users", force: :cascade do |t|
146
+ t.string "provider", null: false
147
+ t.string "uid", default: "", null: false
148
+ t.string "encrypted_password", default: "", null: false
149
+ t.string "reset_password_token"
150
+ t.datetime "reset_password_sent_at"
151
+ t.boolean "allow_password_change", default: false
152
+ t.datetime "remember_created_at"
153
+ t.string "confirmation_token"
154
+ t.datetime "confirmed_at"
155
+ t.datetime "confirmation_sent_at"
156
+ t.string "unconfirmed_email"
157
+ t.string "name"
158
+ t.string "nickname"
159
+ t.string "image"
160
+ t.string "email"
161
+ t.text "tokens"
162
+ t.datetime "created_at"
163
+ t.datetime "updated_at"
164
+ t.index ["email"], name: "index_unregisterable_users_on_email"
165
+ t.index ["reset_password_token"], name: "index_unregisterable_users_on_reset_password_token", unique: true
166
+ t.index ["uid", "provider"], name: "index_unregisterable_users_on_uid_and_provider", unique: true
167
+ end
168
+
169
+ create_table "users", force: :cascade do |t|
170
+ t.string "email"
171
+ t.string "encrypted_password", default: "", null: false
172
+ t.string "reset_password_token"
173
+ t.datetime "reset_password_sent_at"
174
+ t.string "reset_password_redirect_url"
175
+ t.boolean "allow_password_change", default: false
176
+ t.datetime "remember_created_at"
177
+ t.string "confirmation_token"
178
+ t.datetime "confirmed_at"
179
+ t.datetime "confirmation_sent_at"
180
+ t.string "unconfirmed_email"
181
+ t.string "name"
182
+ t.string "nickname"
183
+ t.string "image"
184
+ t.string "provider"
185
+ t.string "uid", default: "", null: false
186
+ t.text "tokens"
187
+ t.datetime "created_at"
188
+ t.datetime "updated_at"
189
+ t.integer "operating_thetan"
190
+ t.string "favorite_color"
191
+ t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
192
+ t.index ["email"], name: "index_users_on_email"
193
+ t.index ["nickname"], name: "index_users_on_nickname", unique: true
194
+ t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
195
+ t.index ["uid", "provider"], name: "index_users_on_uid_and_provider", unique: true
196
+ end
197
+
198
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ # polyfill Rails >= 5 versioned migrations
4
+
5
+ unless ActiveRecord::Migration.respond_to?(:[])
6
+ module ActiveRecord
7
+ class Migration
8
+ def self.[](_version)
9
+ self
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ module MigrationDatabaseHelper
16
+ def json_supported_database?
17
+ (postgres? && postgres_correct_version?) || (mysql? && mysql_correct_version?)
18
+ end
19
+
20
+ def postgres?
21
+ database_name == 'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter'
22
+ end
23
+
24
+ def postgres_correct_version?
25
+ database_version > '9.3'
26
+ end
27
+
28
+ def mysql?
29
+ database_name == 'ActiveRecord::ConnectionAdapters::MysqlAdapter'
30
+ end
31
+
32
+ def mysql_correct_version?
33
+ database_version > '5.7.7'
34
+ end
35
+
36
+ def database_name
37
+ ActiveRecord::Base.connection.class.name
38
+ end
39
+
40
+ def database_version
41
+ ActiveRecord::Base.connection.select_value('SELECT VERSION()')
42
+ end
43
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ class User < ActiveRecord::Base
4
+ # Include default devise modules. Others available are:
5
+ # :confirmable, :lockable, :timeoutable and :omniauthable
6
+ devise :database_authenticatable, :registerable,
7
+ :recoverable, :rememberable, :trackable, :validatable
8
+ include DeviseJwtAuth::Concerns::User
9
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ DeviseJwtAuth.setup do |config|
4
+ # By default, you will only receive an access token when authenticating a
5
+ # user. To receive new access tokens, you should either reauthenticate or
6
+ # use the HTTP only refresh cookie that is sent during the authentication
7
+ # process and make refresh token requests.
8
+ # self.send_new_access_token_on_each_request = false
9
+
10
+ # By default, refresh token HTTP Only cookies last for 2 weeks. These tokens
11
+ # are used for requesting shorter-lived acccess tokens.
12
+ # self.refresh_token_lifespan = 2.weeks
13
+
14
+ # By default, access tokens last for 15 minutes. These tokens are used to
15
+ # access protected resources. When these tokens expire, you need to
16
+ # reauthenticate the user or use a refresh token cookie to get a new access
17
+ # token.
18
+ # self.access_token_lifespan = 15.minutes
19
+
20
+ # This is the name of the HTTP Only cookie that will be sent to the client
21
+ # for the purpose of requesting new access tokens.
22
+ # self.refresh_token_name = 'refresh-token'
23
+
24
+ # This is the name of the token that will be sent in the JSON responses used
25
+ # for accessing protected resources. NEVER store this token in a cookie or
26
+ # any form of local storage on the client. Save it in memory as a javascript
27
+ # variable or in some kind of context manager like Redux. Send it in your
28
+ # request headers when you want to be authenticated.
29
+ # self.access_token_name = 'access-token'
30
+
31
+ # This is the refresh token encryption key. You should set this in an
32
+ # environment variable or secret key base that isn't store in a repository.
33
+ # Also, its a good idea to NOT use the same key for access tokens.
34
+ self.refresh_token_encryption_key = 'your-refresh-token-secret-key-here'
35
+
36
+ # This is the refresh token encryption key. You should set this in an
37
+ # environment variable or secret key base that isn't store in a repository.
38
+ # Also, its a good idea to NOT use the same key for access tokens.
39
+ self.access_token_encryption_key = 'your-access-token-secret-key-here'
40
+
41
+ # This route will be the prefix for all oauth2 redirect callbacks. For
42
+ # example, using the default '/omniauth', the github oauth2 provider will
43
+ # redirect successful authentications to '/omniauth/github/callback'
44
+ # config.omniauth_prefix = "/omniauth"
45
+
46
+ # By default sending current password is not needed for the password update.
47
+ # Uncomment to enforce current_password param to be checked before all
48
+ # attribute updates. Set it to :password if you want it to be checked only if
49
+ # password is updated.
50
+ # config.check_current_password_before_update = :attributes
51
+
52
+ # By default we will use callbacks for single omniauth.
53
+ # It depends on fields like email, provider and uid.
54
+ # config.default_callbacks = true
55
+
56
+ # By default, only Bearer Token authentication is implemented out of the box.
57
+ # If, however, you wish to integrate with legacy Devise authentication, you can
58
+ # do so by enabling this flag. NOTE: This feature is highly experimental!
59
+ # config.enable_standard_devise_support = false
60
+
61
+ # By default DeviseJwtAuth will not send confirmation email, even when including
62
+ # devise confirmable module. If you want to use devise confirmable module and
63
+ # send email, set it to true. (This is a setting for compatibility)
64
+ # config.send_confirmation_email = true
65
+
66
+ # TODO: Document these settings
67
+ # self.default_confirm_success_url = nil
68
+ # self.default_password_reset_url = nil
69
+ # self.redirect_whitelist = nil
70
+ # self.update_token_version_after_password_reset = true
71
+ # self.bypass_sign_in = true
72
+ # self.require_client_password_reset_token = false
73
+
74
+ end