Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Keep user logged in when mobile browser closes (Rails)

Users on mobile are being logged out when they close their browser, and I would like to keep them logged in.

I read this could be solved by using cookies but we're already doing that.

Rails.application.config.session_store :cookie_store, key: '_app_session'

Also using

devise :rememberable

Additionally I wasn't able to find a specific example of implementing cookies directly in Devise::SessionsController.

Any assistance would be very appreciated.

Update

user.rb

class User < ApplicationRecord

  devise :two_factor_authenticatable, :database_authenticatable,
         :registerable, :timeoutable, :confirmable, :invitable,
         :recoverable, :rememberable, :trackable, :omniauthable,
         omniauth_providers: [:linkedin]

  has_one_time_password(encrypted: true)

  def only_if_unconfirmed
    pending_any_confirmation { yield }
  end

  def timeout_in
    setting.custom_timeout.to_i.seconds
  end
  ...
end

Update

I'm open to modifying devise, or changing Rails configuration to make this work.

It seems from googling that the result I'm getting is default behavior.

Update

Adding gemfile.rb per request.

source 'http://rubygems.org'
ruby '2.4.0'

gem 'comfortable_mexican_sofa'
gem 'exception_notification'
gem 'ransack'
gem 'selectize-rails'
gem 'bitly', '~> 0.10.4'
gem 'yomu', '~> 0.2.4'
gem 'pg'
gem 'rails', '~> 5.0.0', '>= 5.0.0.1'
gem 'puma', '~> 3.0'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.2'
gem 'kaminari'
gem 'jquery-rails'
gem 'turbolinks', '~> 5'
gem 'jquery-turbolinks'
gem 'jbuilder', '~> 2.5'
gem 'foundation-rails'
gem 'foundation_rails_helper', git: 'https://github.com/sgruhier/foundation_rails_helper'
gem 'inky-rb', require: 'inky'
gem 'premailer-rails'
gem 'redis', '~> 3.0'
gem 'redis-rails', '~> 5'
gem 'resque'
gem 'paper_trail'
gem 'devise'
gem 'omniauth-oauth2', '~> 1.3.1'
gem 'omniauth-linkedin-oauth2'
gem 'omniauth-google-oauth2'
gem 'devise_invitable'
gem 'two_factor_authentication'
gem 'valid_email2'
gem 'geocoder'
gem 'twilio-ruby'
gem 'omnicontacts'
gem 'sparkpost_rails'
gem 'raygun4ruby'
gem 'bonsai-elasticsearch-rails'
gem 'elasticsearch-rails'
gem 'elasticsearch-model'
gem 'searchkick', git: 'https://github.com/ankane/searchkick'
gem 'ahoy_matey'
gem 'blazer'
gem 'subdomain_router'
gem 'figaro'
gem 'paperclip', git: 'https://github.com/thoughtbot/paperclip'
gem 'dropzonejs-rails'
gem 'aws-sdk'
gem 'cocoon', '~> 1.2.9'
gem 'haml-rails', '~> 0.9'
gem 'newrelic_rpm'
gem 'pdf-reader'
gem 'clearbit'
gem 'httparty'
gem 'friendly_id', '~> 5.1.0'
gem "octokit", "~> 4.0"

group :development, :test do
  gem 'pry'
  gem 'byebug', platform: :mri
  gem 'erb2haml'
  gem 'haml_lint'
  gem "letter_opener"
end

group :development do
  gem 'web-console'
  gem 'listen', '~> 3.0.5'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
  gem 'bullet'
  gem 'derailed'
end

group :test do
  gem 'rspec-rails'
  gem 'factory_girl_rails'
end

gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
gem 'heroku-deflater', :group => :production, git: 'https://github.com/romanbsd/heroku-deflater.git'
gem 'chartkick'
gem 'groupdate'
like image 259
tim_xyz Avatar asked Jun 09 '17 21:06

tim_xyz


1 Answers

Add expire_after

Rails.application.config.session_store :cookie_store, key: '_app_session', expire_after: 3.hours
like image 62
s1mpl3 Avatar answered Oct 17 '22 22:10

s1mpl3