Skip to content

Commit eea9f61

Browse files
committed
Debug session persistence issue
- Add session store configuration with same_site: lax - Add debug logging to callback and birthday actions - Add session expiry handling in birthday action - Skip global auth filter for UsersController to avoid conflicts
1 parent 63d144d commit eea9f61

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

app/controllers/sessions_controller.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ def callback
1313

1414
# Store user ID in session
1515
session[:user_id] = user.id
16+
Rails.logger.info "Set session[:user_id] = #{user.id} for user #{user.username}"
1617

1718
# Redirect to birthday form if not provided, otherwise to dashboard
1819
if user.birthday_provided?

app/controllers/users_controller.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
class UsersController < ApplicationController
2+
skip_before_action :require_login_for_authenticated_routes
23
before_action :require_login
34

45
def birthday
6+
Rails.logger.info "Birthday action: session[:user_id] = #{session[:user_id]}, logged_in? = #{logged_in?}"
7+
8+
# Handle case where user just completed OAuth but session isn't persisting
9+
unless logged_in?
10+
redirect_to root_path, alert: "Session expired. Please log in again."
11+
return
12+
end
13+
514
redirect_to user_dashboard_path if current_user.birthday_provided?
615
end
716

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Configure session store for production
2+
Rails.application.config.session_store :cookie_store,
3+
key: '_pyramid_scheme_session',
4+
same_site: :lax,
5+
secure: Rails.env.production?, # Only use secure cookies in production if HTTPS
6+
httponly: true

0 commit comments

Comments
 (0)