2006年04月24日

はてな認証APIの公開について(開発者さま向け)

本日、はてなアカウントをサードパーティのアプリケーションを利用するための認証APIを公開しました。
はてラボで開発できるようになった!
ってことで早速ACCではてな認証を使えるようにしました。
今まで左上に
ようこそゲストさん
って表示していたのですが、この為に無駄ともいえる表記をしていたのです。
いやーAlpha Cliper Clipsも公開から8ヶ月でようやく想定の範囲内の実装が一通り終わりました。

はてブと認証APIの連携なんかが出てきたら、レートの高いURLを自動的にブックマークするとか色々やりたいです。
が、それらって全部Plaggerで実装できるんじゃね?

とりえず、今回実装した時に作ったソースを公開してみます。
Hatena::API::Authを思いっきりつかっています。
ACC::HatenaAuthが、はてな認証を取り扱うモジュールです。
Class::DBIを使っていてACC::DBI::hatena_authを使ってDBにアクセスします。
コールバックURL(ACC::Handlers::Login)にてユーザデータを取得しつつ内部でキャッシュをします。
Cookieで使うIDがcertっていう豪快な仕様です。今後トークンとかに対応したらトークンもcookieに出してしまうかどうするかw
で、ACC::Handlers::Logoutでログアウト処理を行います。

LoginとLogoutの$self->module->hatena_authにACC::HatenaAuthのオブジェクトが入ってる感じです。
$self->module->hatena_authをTTに渡していて

[% IF S.hatena_auth.is_login %]
<tr><td align="lefth" class="header">ようこそ[% S.hatena_auth.user.name | html %]さん</td>
<td align="right">
<a href="/logout">ログアウト</a>
</td></tr>
[% ELSE %]
<tr><td align="left">
ゲストさん、ようこそ
</td>
<td align="right">
<a href="[% S.hatena_auth.api.uri_to_login.as_string -%]">はてなログイン(α版)</a>
</td> [% END %]
みたいい記述してます。

ちなみにLoginとLogoutは、Sledge派生系の自家製フレームワークがないと動かないです。
ACC::HatenaAuthのnewとかloadは、そのフレームワークの適切な時期に呼び出してる感じです。

Posted by Yappo at 2006年04月24日 23:28 | TrackBack | 私的サービスめも
Comments
Post a comment









Remember personal info?






コメントを投稿する前に↓の場所にnospamと入力してください。