前回に引き続き,
掲示板の概要
今回作成するアプリケーションは,
ここまでのおさらい
前回,
アプリケーションの作成(続き)
ログイン処理
次にログイン処理を作っていきましょう。今回はOpenIDを使用したログイン処理を実装します。
Arkではログイン処理などはプラグインとして用意されています。今回は認証プラグインとセッションプラグインを使用してログイン処理を作成します。
プラグインを使うにはアプリケーションクラス
use_plugins qw{
Session
Session::State::Cookie
Session::Store::Memory
Authentication
Authentication::Credential::OpenID
Authentication::Store::Null
};
これでセッションと認証のプラグインをロードできます。ロードしたプラグインを見てみましょう。
まずセッションプラグインは,
Session | セッションプラグイン |
---|---|
Session::State::Cookie | cookieにセッションIDを登録する |
Session::Store::Memory | メモリにセッションデータを持つ |
を使用します。たとえば,
認証プラグインもセッションと同様に,
今回はOpenID認証を使用しているため,
もちろん,
プラグインの準備ができましたので,
$ ark.pl controller Login
というコマンドでひな形を生成します。
URL的には/loginでログイン,
sub login :Path :Args(0) {
my ($self, $c) = @_;
if (my $user = $c->authenticate) {
# login 成功
$c->redirect( $c->uri_for('/') );
}
}
sub logout :Global {
my ($self, $c) = @_;
$c->logout;
$c->redirect( $c->uri_for('/') );
}
また,
<p>OpenID でログイン</p>
<form method="get">
<p>
<label for="openid_identifier">OpenID URI:</label>
<input type="text" id="openid_identifier" name="openid_identifier" />
</p>
<p><input type="submit" value="login"/></p>
</form>
これでログイン処理は完成です。