鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

Mojolicious +mod_perlに関する飲み会に参加しました

ATND

さて、認証回りのお話がでて、コードをお見せしましたが、 若干みずらいかとおもって、ここに公開いたします。

秘伝の?たれではありませんが・・・ under構文ってやつを使います。perlcodesampleさんを参考に グツグツ煮込んであります。綺麗にかけるから気に入っております。

    my $logged_in = $r->under->to(
        cb => sub {
            my $self = shift;

            if ( $self->session('user_id') ) {

                if ( !defined $self->session('id') ) {
                    my $row = $self->db->single(
                        "User",
                        {
                            site    => $self->session('site'),
                            user_id => $self->session('user_id')
                        }
                    );

                    if ( !defined $row ) {
                        $row = $self->db->insert(
                            "User",
                            {
                                site        => $self->session('site'),
                                screen_name => $self->session('screen_name'),
                                user_id     => $self->session('user_id'),
                                created_at => \"now()"
                            }
                        );
                    }
                    $self->session( 'id' => $row->id );
                }
                return 1;
            }
            else {
                $self->session(redirect_path => $self->req->url->path);
                $self->redirect_to('/login');
            }
        }
    );


    # Normal route to controller
    $r->get('/')->to('root#index');

    $logged_in->get('/register')->to('register#index');
    $logged_in->post('/register')->to('register#create');
    $logged_in->get('/register/confirm')->to('register#confirm');
    $logged_in->post('/register/confirm')->to('register#insert');
    $logged_in->get('/register/complete')->to('register#complete');

そんな感じで、Mojoliciousを盛り上げていきましょう。 Mojoliciousの案件がいっぱいできると私も転職できるかもだし!!!

まぁ、jamadanさんのプルリク送ったとか、生々しいお話がきけて さすが、Mojoliciousハッカーだなぁと感心しきり。

私は、クッキーの4kb制限は物ともせず、普通にMojoliciousセッションを 使っています。というか、そんな大きなアプリを書いてないのでIDをセッションに 入れるくらいなので・・・