Express+passportでユーザ認証をやってみる
背景
前回の記事の続きを順当にやれば今回は下のブログ内容をやってみるところなんだけど、OAuthはよくわからんし、まだそれ以前にやるものあるだろうということで、今回はOAuthはパスして別のをやることにした。
Beer Locker: Building a RESTful API with Node - OAuth2 Server - Scott Smith
代わりに「Express passport」とかでググって見つかったのが以下。
User Authentication with Passport and Express 4 - Michael Herman
意図的に英語の記事ばかり選んでいるわけではないけれど、日本語で上位にヒットした記事はExpressが3.x系だったりTwitterとの認証があったりと、望んだものじゃなかったのでこれにした。更新も2015/1/31と新しい。ユニットテストまで入ってる。
ということで今回はこれをやってみる。
やってみたコードは以下。
https://github.com/yamacent/sample-Express4-passport-local
やってみる
環境
記事内の環境は以下。
Express v4.11.1
Mongoose v3.8.22
Passport v0.2.1
Passport-local: v1.0.0
Passport-local-mongoose: v1.0.0
準備
以下をやれば記事と同じpackage.jsonのdependencies
になる。
雛形作成 & デフォルトのパッケージのインストール
$ express passport-local-express4 $ cd express-local-express4 $ npm install
差分のインストール
$ npm i chai express-session mocha mongoose passport passport-local passport-local-mongoose should debug --save
ところどころの感想
MongoDBがnpmでインストールできる
$ npm install -g mongodb
知らなかった。自分はhomebrewで入れた。
確かにnpmにある。 mongodb
passport-local-mongooseがパスワードの面倒を見てくれる
Fortunately, the passport-local-mongoose package automatically takes care of salting and hashing the password for us.
便利。
手順通りやるとエラーになる
大した場所ではないが、テスト準備のところで
Run make test from the command line. If all is well, you should see - 0 passing (1ms). Now we just need to add some tests…
とあるが、先にtestフォルダを作っとかないとエラーになる。
感想
いい記事みつけた。勉強になった。