himetani's blog

備忘録など。

AngularJSとExpressを使って、簡単な認証機能を実装その1

AngularJSとExpressを使って認証機能を作っているので、その作業過程を書く。

そもそも、認証を実装するときにどうすればいいかわからないので整理。

認証の方式
  • セッションIDを使う
  • HTTP認証(Basic認証、ダイジェスト認証)
  • SSLクライアント認証

今回は、もっとも一般的だと思うセッションIDによる管理を実装する。

クライアントサイドでセッションを管理する方法は、三つあるようだ。

  • cookie
  • POSTのhiddenパラメータ
  • URL
ルーティング

AngularJSのようなSPAでアプリケーションを作ると、ルーティングもフロントエンドで行っているので、認証もフロントエンドで行う必要がある。

詳しくは以下のリンクを参照。
VickeV.com

AngularJSでは、サーバからのHTTPレスポンスを受け取ったときの動作を設定することで認証機能を実装することができる。

gist.github.com


AngularJSの設定の中で、$httpProvider.interceptorを設定すればよい(10行目から20行目)。

この設定をしておくと、HTTPレスポンスを受け取ったときに401であれば自動的にログインページに遷移させることができる。

参考
https://www.ipa.go.jp/security/vuln/event/documents/20060228_3.pdf