From 5dd59efe3d249dd0e271948fb73977a324fd6768 Mon Sep 17 00:00:00 2001 From: Philipp Fischbeck Date: Wed, 28 Aug 2019 11:14:32 +0200 Subject: [PATCH] Fix persistent devise login --- app/controllers/users/omniauth_callbacks_controller.rb | 1 + config/initializers/devise.rb | 6 +++--- db/migrate/20190828084343_add_remember_token_to_users.rb | 5 +++++ db/schema.rb | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 db/migrate/20190828084343_add_remember_token_to_users.rb diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index 3efde20..113ad2f 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -4,6 +4,7 @@ class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController def sign_in_with(provider_name) @user = User.from_omniauth(request.env["omniauth.auth"]) @user.remember_me! + @user.remember_me = true sign_in_and_redirect @user, event: :authentication set_flash_message(:notice, :success, kind: provider_name) if is_navigational_format? end diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 6ab5068..2ba9cdf 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -126,17 +126,17 @@ Devise.setup do |config| # ==> Configuration for :rememberable # The time the user will be remembered without asking for credentials again. - # config.remember_for = 2.weeks + config.remember_for = 2.weeks # Invalidates all the remember me tokens when the user signs out. config.expire_all_remember_me_on_sign_out = true # If true, extends the user's remember period when remembered via cookie. - # config.extend_remember_period = false + config.extend_remember_period = true # Options to be passed to the created cookie. For instance, you can set # secure: true in order to force SSL only cookies. - # config.rememberable_options = {} + config.rememberable_options = { secure: Rails.env.production? } # ==> Configuration for :validatable # Range for password length. diff --git a/db/migrate/20190828084343_add_remember_token_to_users.rb b/db/migrate/20190828084343_add_remember_token_to_users.rb new file mode 100644 index 0000000..2e40b83 --- /dev/null +++ b/db/migrate/20190828084343_add_remember_token_to_users.rb @@ -0,0 +1,5 @@ +class AddRememberTokenToUsers < ActiveRecord::Migration[5.2] + def change + add_column :users, :remember_token, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 0be06c1..a3248a5 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2019_02_04_164033) do +ActiveRecord::Schema.define(version: 2019_08_28_084343) do create_table "problems", force: :cascade do |t| t.datetime "created_at" @@ -39,6 +39,7 @@ ActiveRecord::Schema.define(version: 2019_02_04_164033) do t.datetime "created_at", null: false t.datetime "updated_at", null: false t.string "name" + t.string "remember_token" end end