Ark::Plugin::Session::State::URIは携帯以外で無効になる
Arkのプラグイン、Session::State::URI。
ark-perl/lib/Ark/Plugin/Session/State/URI.pm at master · typester/ark-perl · GitHub
Session IDをURIにのっけて管理するためのものだけど、これはPC(携帯以外)でアクセスすると勝手に無効になるので注意。
60〜67行目あたりを抜粋。
if ($self->uri_rewrite_mobile_only) { my $agent = $self->context->can('mobile_agent') or $self->log( debug => q[Require MobileAgent plugin for this feature] ); if ($agent && $self->context->mobile_agent->is_non_mobile) { $self->uri_session_disabled(1); return; } }
uri_rewrite_mobile_onlyが真の時のみ、携帯以外のAgentで無効になるようにはなっているものの、uri_rewrite_mobile_onlyは常に真になるようなのであまり意味ない。
21〜28行目。
has uri_rewrite_mobile_only => ( is => 'rw', lazy => 1, default => sub { my $self = shift; $self->class_config->{mobile_only} || 1; }, );
携帯サイトをPCからプレビューしてて、「あるぇ、URLにSession IDが入んないぞ???」ときれいにハマった結果でした。携帯サイトつくるならおとなしくFireMobileSimulator使っときましょう。
追記:
っていうのをTwitterでつぶやいたら id:sfujiwara さんが Sessionが無効になる場合にwarningを吐くようにしてくれました。感謝。