2
我爲我的網絡應用使用了Dancer2和YAML會話引擎。 我config.yml
包含如何訪問Dancer2的會話對象?
engines:
session:
YAML:
...
cookie_duration: 5 minutes
...
我想顯示類似「你的會議X分鐘後過期」。
如何訪問此值,即如何訪問我的路由中的$session
對象?
隨着DSL關鍵字session
我只能設置和獲取 任意值,如session username => 'Bob';
和$username = session('username');
等
請注意,我不感興趣,在得到配置值(settings('engines')->{session}{YAML}{cookie_duration}
),因爲這是一個字符串我d不得不解析,這取決於YAML是我的會話引擎。我想訪問$session->session_duration
。
從理論上講,你應該做'會話級> expires',如'session'剛剛返回會話對象時,它的使用這樣的。但是,在我的測試中,返回'undef'。但是我沒有完整的配置,可能我做錯了。如果你通過'Data :: Printer'做'p session',你會看到'session'返回的Dancer2 :: Core :: Session對象有一個'expires'方法。 cookie_duration不是服務器上的會話過期。見https://metacpan.org/pod/Dancer2::Core::Session#expires – simbabque
嘿,酷!這正是解決方案。在我的配置中,'session-> expires'返回1514648770(這是「現在+ 6個月」,我當前配置的值爲'cookie_duration')。完善。我的問題是,我不知道如何訪問該值和/或將'session()'轉換爲'$ session'。如果你寫一個(簡短的)答案,我會用upvotes來壓倒它。 ;-) – PerlDuck