light log

学んだこととか

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.jsondependenciesになる。

雛形作成 & デフォルトのパッケージのインストール

$ 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フォルダを作っとかないとエラーになる。

感想

いい記事みつけた。勉強になった。