岩本隆史の日記帳(アーカイブ)

はてなダイアリーのサービス終了をうけて移行したものです。更新はしません。

RESTとセッション管理

URLにセッションIDを含めるな、とは良く言われるところです。リファラやらプロキシから漏れる可能性があるから、ということですね。

で、代わりにPOSTメソッドを使えと。hiddenにセッションID入れとけばCSRFも問題ないぜと。

でも、REST的にはPOSTはリソースの新規作成に使うべきとされている。というか、そもそもRESTとセッションは関係ないという話もある。

この辺のいかんともしがたい感をどうしようか。

いま考えているのは:

  • cookieにユーザIDとパスワードを保存しとく
  • 認証の必要な情報をGETしたいときは、JavaScriptcookieを読み込んでpostBodyに含め、「リソース取得用リソース作成URL」にPOSTする
  • 返ってきたLocationをGETする

というまどろっこしい手続き。「A Web-Centric Approach to State Transition」の応用というか、そのままというか。

cookieを使うのは自動ログイン機能を実装したいため。必要ないなら、HTMLにユーザIDとパスワードを書いとく。

でもなあ。いったんPOSTしてからGETしてね、なんてAPIを外部に公開しても、んだよ面倒くせえなあと思われそうな気もする。そういうトレードオフがあるなあ。気にするこたないか。