[英]Session variable getting reset - not sure where it is happening
我通過將事件存儲在會話變量中,然后將它們傳遞到后續頁面的kissmetrics javascript代碼中,在我的rails應用程序上安裝Kissmetrics。 除了嘗試跟蹤創建的帳戶外,此方法非常有用。 看來,當我將帳戶創建的事件存儲在會話變量中時,它可以正常工作,但是到下一頁加載時,會話變量就消失了。 我將調試器放在其中以嘗試查找要刪除的位置,但似乎什么也沒有。 km_log_event是一種將字符串存儲在稱為km_events的會話變量中的方法。 這是我的代碼:
account_controller / create->
...
if @account.save
log_event("Account", "Created", @account.name)
km_log_event("Account Created")
redirect_to(welcome_url(:subdomain => @account.subdomain))
@user.activate!
@user.add_connection(params[:connect_to])
else
render(:action => 'new', :layout => 'signup')
end
...
session_controller /歡迎->
def welcome
if current_account.new?
# Create the session for the owner, the account is brand new
current_account.user_sessions.create(current_account.owner, true)
elsif current_account.users.last && current_account.users.last.created_at > 1.hour.ago
current_account.user_sessions.create(current_account.users.last, true)
end
redirect_to embedded_invitations_path
end
我只是不確定要在哪里刪除它,所以我無法記錄此事件。 它似乎發生在帳戶控制器中的@ account.save之后,但在歡迎操作之前。
更新:
這是我認為(這不是我的代碼庫)current_account定義的帳戶模塊。
module Accounts
def self.included(controller)
controller.helper_method :current_account
end
protected
def current_account
return @current_account if defined?(@current_account)
@current_account = Account.find_by_subdomain!(current_subdomain)
end
end
無效的csrf令牌將重置會話。 這會發生嗎?
您可以通過從控制器中刪除以下內容(通常在ApplicationController中)輕松地進行測試
protect_from_forgery
我認為這是在您嘗試在子域之間共享會話時發生的。 為此,您必須進行一些配置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.