メイン

[Rails] RESTクライアントの認証を動的に切り替える。

こんにちわ。ばたっちです。

RESTアプリケーションはステートレスなので、認証が必要な場合は毎回リクエスト毎に認証が必要になります。

認証方法は HTTP Basic認証が推奨?されていて、Rails 2.0では Basic認証機能が強化(追加?)されてるようですね。

クライアント側でのリソースの参照に ActiveResourceを使う場合は、サイトのURLにユーザ名、パスワードを追加しておけばOKです。

こうしておけば、リクエスト時に Authorizationヘッダを追加してくれるんですね。

ところで、この site属性はクラススコープなので、リソース単位に一意になるんですが、複数のアカウントで切り替えたい場合(普通はないのかな?)にちょっと困ります。

ActiveResourceでは siteのURLを元に、connection属性(これもクラススコープ)を作っているようなので、これをいじればいいのかもしれません。

別の方法として、headers属性(ハッシュ、クラススコープ)というのがあって、ここにヘッダを追加しておくと、リクエスト送信時にヘッダに追加してくれるようです。

ということは、ここに Authorizationヘッダを追加してやれば、動的に認証情報を設定できるのかも。。

というわけで、以前作った MultiModelScope(see. [Rails] 複数のモデルに with_scope。)を真似て、MultiResourceScopeというのを作ってみました。

複数のリソースにまたがって、動的に認証を切り替えたいという場合に使えます。

こんなカンジに使うことを想定。

認証方法を変えられるようにしたり便利かも。A^^;

トラックバック

このエントリーのトラックバックURL:
http://pw.tech-arts.co.jp/cgi-bin/tamt32/mt-tb.cgi/78

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)