Mojolicious +mod_perlに関する飲み会に参加しました
さて、認証回りのお話がでて、コードをお見せしましたが、 若干みずらいかとおもって、ここに公開いたします。
秘伝の?たれではありませんが・・・ 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をセッションに 入れるくらいなので・・・