-
Notifications
You must be signed in to change notification settings - Fork 7
Mojolicious::Sessions
Mojoliciousドキュメント 日本語訳は以下に引っ越しました。
Mojolicious::Sessions - Mojoliciousドキュメント 日本語訳
独自ドメインのページで、Giblogを使って、サイトを再構成しました。
ドキュメントの各ページのタイトルが正しく検索エンジンで表示されなかったことが課題で、それを解決することが目的です。
サイトの更新は、新しいページ行われます。
新しいサイトを検索エンジンで発見できるようになったタイミングで、このページのコンテンツは、削除されます。
Mojolicious::Sessions - 署名されたクッキーに基づくセッションマネージャー
use Mojolicious::Sessions;
my $sessions = Mojolicious::Sessions->new;
$sessions->cookie_name('myapp');
$sessions->default_expiration(86400);
Mojolicious::Sessionsはとても簡単な暗号化クッキーに基づくセッションの実装です。 すべてのデータはMojo::JSONによってシリアライズされ、 クライアント側に保存されますが、署名によって 望まない変更を防ぐことができます。
Mojolicious::Sessionsは次の属性を実装しています。
my $domain = $sessions->cookie_domain;
$sessions = $sessions->cookie_domain('.example.com');
セッションクッキーのためのドメイン。 デフォルトは定義されていません。
my $name = $sessions->cookie_name;
$sessions = $sessions->cookie_name('session');
セッションデータを保存するのに利用される署名されたクッキーの名前。 デフォルトはmojolicious
。
my $path = $sessions->cookie_path;
$sessions = $sessions->cookie_path('/foo');
セッションクッキーのためのパス。デフォルトは/
。
my $time = $sessions->default_expiration;
$sessions = $sessions->default_expiration(3600);
今から有効期限に至るまでのセッションの秒数。 デフォルトは3600
。 毎回のリクエストで有効期限のタイムアウトはリフレッシュされます。 この値を0
に設定すると、ブラウザーのウインドウが閉じられるまでセッションを永続化することができますが、 セキュリティの問題を引き起こすかもしれません。 より調節するには、セッションのexpires
の値を利用して、有効期限の日付を特定の時間にエポック秒で指定してください。
# 現在からの秒数で有効日付を指定 (リクエスト間で継続)
$c->session(expiration => 604800);
# 絶対的なエポック秒として有効日付を指定 (ひとつのリクエストに対してだけ有効)
$c->session(expires => time + 604800);
# 有効日付を過去に設定してセッション全体を削除
$c->session(expires => 1);
my $cb = $sessions->deserialize;
$sessions = $sessions->deserialize(sub {...});
セッションをデシリアライズするために使用されるコールバック。 デフォルトはMojo::JSONのj
です。
$sessions->deserialize(sub {
my $bytes = shift;
return {};
});
my $samesite = $sessions->samesite;
$sessions = $sessions->samesite('Strict');
すべてのセッションクッキーににSameSite値を設定します。デフォルトはLax
です。ご了承ください 一般的なほとんどのブラウザがこの機能をサポートしていますが、この属性は実験的なものです。 this draft以外ではまだ仕様化されていません。
# SameSite機能を無効にする
$sessions->samesite(undef);
my $bool = $sessions->secure;
$sessions = $sessions->secure($bool);
すべてのセッションクッキーにセキュアフラグを設定します。 ブラウザーはクッキーをHTTPS接続のみによって送信することができます。
my $cb = $sessions->serialize;
$sessions = $sessions->serialize(sub {...});
セッションをシリアライズするために使用されるコールバック。 デフォルトは、Mojo::JSONのencode_json
です。
$sessions->serialize(sub {
my $hash = shift;
return '';
});
Mojolicious::SessionsはMojo::Baseからすべてのメソッドを 実装しており、次のメソッドを実装しています。
$sessions->load(Mojolicious::Controller->new);
セッションデータを署名されたデータからロードします。
$sessions->store(Mojolicious::Controller->new);
署名されたクッキーにセッションのデータを保存します。
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
(Mojolicious 8.12を反映。2019年12月13日更新)
Mojolicious日本語訳は「Perlゼミ制作」です。