forked from OpenNeo/impress
Add OmniAuth plugin to AuthUser
This is setting us up for NeoPass, but first we're just gonna try stuff with the "developer" strategy that's built in for testing, rather than using the NeoPass dev server!
This commit is contained in:
parent
58e6b46b42
commit
08b1b9e83b
10 changed files with 26 additions and 3 deletions
2
Gemfile
2
Gemfile
|
@ -25,6 +25,8 @@ gem 'turbo-rails', '~> 2.0'
|
||||||
# For authentication.
|
# For authentication.
|
||||||
gem 'devise', '~> 4.9', '>= 4.9.2'
|
gem 'devise', '~> 4.9', '>= 4.9.2'
|
||||||
gem 'devise-encryptable', '~> 0.2.0'
|
gem 'devise-encryptable', '~> 0.2.0'
|
||||||
|
gem 'omniauth', '~> 2.1'
|
||||||
|
gem 'omniauth-rails_csrf_protection', '~> 1.0'
|
||||||
|
|
||||||
# For pagination UI.
|
# For pagination UI.
|
||||||
gem 'will_paginate', '~> 4.0'
|
gem 'will_paginate', '~> 4.0'
|
||||||
|
|
13
Gemfile.lock
13
Gemfile.lock
|
@ -164,6 +164,7 @@ GEM
|
||||||
temple (>= 0.8.2)
|
temple (>= 0.8.2)
|
||||||
thor
|
thor
|
||||||
tilt
|
tilt
|
||||||
|
hashie (5.0.0)
|
||||||
http_accept_language (2.1.1)
|
http_accept_language (2.1.1)
|
||||||
httparty (0.21.0)
|
httparty (0.21.0)
|
||||||
mini_mime (>= 1.0.0)
|
mini_mime (>= 1.0.0)
|
||||||
|
@ -214,6 +215,13 @@ GEM
|
||||||
nokogiri (1.16.2)
|
nokogiri (1.16.2)
|
||||||
mini_portile2 (~> 2.8.2)
|
mini_portile2 (~> 2.8.2)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
|
omniauth (2.1.2)
|
||||||
|
hashie (>= 3.4.6)
|
||||||
|
rack (>= 2.2.3)
|
||||||
|
rack-protection
|
||||||
|
omniauth-rails_csrf_protection (1.0.1)
|
||||||
|
actionpack (>= 4.2)
|
||||||
|
omniauth (~> 2.0)
|
||||||
openssl (3.2.0)
|
openssl (3.2.0)
|
||||||
orm_adapter (0.5.0)
|
orm_adapter (0.5.0)
|
||||||
parallel (1.24.0)
|
parallel (1.24.0)
|
||||||
|
@ -239,6 +247,9 @@ GEM
|
||||||
rack (>= 1.0, < 4)
|
rack (>= 1.0, < 4)
|
||||||
rack-mini-profiler (3.3.1)
|
rack-mini-profiler (3.3.1)
|
||||||
rack (>= 1.2.0)
|
rack (>= 1.2.0)
|
||||||
|
rack-protection (4.0.0)
|
||||||
|
base64 (>= 0.1.0)
|
||||||
|
rack (>= 3.0.0, < 4)
|
||||||
rack-session (2.0.0)
|
rack-session (2.0.0)
|
||||||
rack (>= 3.0.0)
|
rack (>= 3.0.0)
|
||||||
rack-test (2.1.0)
|
rack-test (2.1.0)
|
||||||
|
@ -382,6 +393,8 @@ DEPENDENCIES
|
||||||
memory_profiler (~> 1.0)
|
memory_profiler (~> 1.0)
|
||||||
mysql2 (~> 0.5.5)
|
mysql2 (~> 0.5.5)
|
||||||
nokogiri (~> 1.15, >= 1.15.3)
|
nokogiri (~> 1.15, >= 1.15.3)
|
||||||
|
omniauth (~> 2.1)
|
||||||
|
omniauth-rails_csrf_protection (~> 1.0)
|
||||||
parallel (~> 1.23)
|
parallel (~> 1.23)
|
||||||
rack-attack (~> 6.7)
|
rack-attack (~> 6.7)
|
||||||
rack-mini-profiler (~> 3.1)
|
rack-mini-profiler (~> 3.1)
|
||||||
|
|
|
@ -2,7 +2,7 @@ class AuthUser < AuthRecord
|
||||||
self.table_name = 'users'
|
self.table_name = 'users'
|
||||||
|
|
||||||
devise :database_authenticatable, :encryptable, :registerable, :validatable,
|
devise :database_authenticatable, :encryptable, :registerable, :validatable,
|
||||||
:rememberable, :trackable, :recoverable
|
:rememberable, :trackable, :recoverable, omniauthable: [:developer]
|
||||||
|
|
||||||
validates :name, presence: true, uniqueness: {case_sensitive: false},
|
validates :name, presence: true, uniqueness: {case_sensitive: false},
|
||||||
length: {maximum: 20}
|
length: {maximum: 20}
|
||||||
|
|
|
@ -273,7 +273,7 @@ Devise.setup do |config|
|
||||||
# ==> OmniAuth
|
# ==> OmniAuth
|
||||||
# Add a new OmniAuth provider. Check the wiki for more information on setting
|
# Add a new OmniAuth provider. Check the wiki for more information on setting
|
||||||
# up on your models and hooks.
|
# up on your models and hooks.
|
||||||
# config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo'
|
config.omniauth :developer
|
||||||
|
|
||||||
# ==> Warden configuration
|
# ==> Warden configuration
|
||||||
# If you want to use other strategies, that are not supported by Devise, or
|
# If you want to use other strategies, that are not supported by Devise, or
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
class AddOmniauthFieldsToUsers < ActiveRecord::Migration[7.1]
|
||||||
|
def change
|
||||||
|
add_column :users, :provider, :string
|
||||||
|
add_column :users, :uid, :string
|
||||||
|
end
|
||||||
|
end
|
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema[7.1].define(version: 2023_08_07_005748) do
|
ActiveRecord::Schema[7.1].define(version: 2024_03_13_200849) do
|
||||||
create_table "users", id: { type: :integer, unsigned: true }, charset: "utf8mb3", collation: "utf8mb3_general_ci", force: :cascade do |t|
|
create_table "users", id: { type: :integer, unsigned: true }, charset: "utf8mb3", collation: "utf8mb3_general_ci", force: :cascade do |t|
|
||||||
t.string "name", limit: 20, null: false
|
t.string "name", limit: 20, null: false
|
||||||
t.string "encrypted_password", limit: 64, null: false
|
t.string "encrypted_password", limit: 64, null: false
|
||||||
|
@ -29,6 +29,8 @@ ActiveRecord::Schema[7.1].define(version: 2023_08_07_005748) do
|
||||||
t.datetime "updated_at", precision: nil
|
t.datetime "updated_at", precision: nil
|
||||||
t.datetime "reset_password_sent_at", precision: nil
|
t.datetime "reset_password_sent_at", precision: nil
|
||||||
t.datetime "remember_created_at"
|
t.datetime "remember_created_at"
|
||||||
|
t.string "provider"
|
||||||
|
t.string "uid"
|
||||||
t.index ["email"], name: "index_users_on_email", unique: true
|
t.index ["email"], name: "index_users_on_email", unique: true
|
||||||
t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
|
t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
|
||||||
t.index ["unlock_token"], name: "index_users_on_unlock_token", unique: true
|
t.index ["unlock_token"], name: "index_users_on_unlock_token", unique: true
|
||||||
|
|
BIN
vendor/cache/hashie-5.0.0.gem
vendored
Normal file
BIN
vendor/cache/hashie-5.0.0.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/omniauth-2.1.2.gem
vendored
Normal file
BIN
vendor/cache/omniauth-2.1.2.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/omniauth-rails_csrf_protection-1.0.1.gem
vendored
Normal file
BIN
vendor/cache/omniauth-rails_csrf_protection-1.0.1.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/rack-protection-4.0.0.gem
vendored
Normal file
BIN
vendor/cache/rack-protection-4.0.0.gem
vendored
Normal file
Binary file not shown.
Loading…
Reference in a new issue