読者です 読者をやめる 読者になる 読者になる

初代Masteries

きっとモヒカンにもなれないお前たちに告げる!!!

Nephia::Plugin::PlackSessionを作りました.

perl nephia module

https://github.com/papix/Nephia-Plugin-PlackSession

Nephiaでいい感じにセッションを使う為のプラグイン, Nephia::Plugin::PlackSessionを作りました.
まだCPANで公開していませんので, GitHubから入れて下さい.

このプラグインを使うと, Nephiaからこんな感じでセッションを操作できます.

package MyApp;
use strict;
use warnings;
use Nephia plugins => [
    'PlackSession',
];

our $VERSION = 0.01;

path '/' => sub {
    my $req = shift;

    my $name = session->get('name') || 'John Done';

    return {
        template => 'index.html',
        name     => $name,
    };
};

path '/set' => sub {
    my $req = req;

    session->set(name => $req->param('name'));
    return res {
        redirect('/');
    }
};

1;

また, セッションを使う雛形を生成できるflavorも用意しています.

$ nephia-setup MyApp --flavor=PlackSession
$ nephia-setup MyApp --flavor=PlackSession::DBI

'PlackSession::DBI'では, セッションのストアにメモリではなくデータベースを利用するようになります.
この場合, 必要なMySQL/SQLite用のSQLファイルも生成したりします.

ひとまずセッション周りはこのプラグインで対応できるので, 後はCSRF対策にNephia::Plugin::CSRFDefenderを作りたいですねー...
あとはNephiaデフォルトのセッション機能として, もっと軽い(?)ものをNephia::Plugin::SessionとしてNephiaに同梱したいですが...
ぶっちゃけ, 自分にできるかなあ? という気もしていますが, こういうのはやってみないとわからないですね! というわけで, やってみます!

Nephiaがもっといい感じのWAFになるように, @ytnobodyさんや@mackee_wさんも頑張っていますので, 自分も楽しみつつ頑張っていこうと思います!