以下のようなサンプルを作りました
- ポート 8080 で待ち受ける
- レスポンスはJSON文字列
- GET
/api/current
は認証なしで、現在のタイムスタンプを返す
- GET
/api/auth/user
は認証ありで、認証されてるユーザー情報を返す
- 認証がダメならステータスコード401を返す
認証と言ってもここではヘッダ x-api-key
の値が abc
であるかチェックしてるだけだし、ユーザー情報もただの固定値です
必要なものインストール
ソースコード
無理やり1つのファイルに収めてます
動かしてみる
以下コマンドで起動します
curlで叩いてみます
GET /api/current
GET /api/auth/user (x-api-keyが正しい)
GET /api/auth/user (x-api-keyなし)
ちゃんと401でエラーになってます
備考
特定のパス以下とかじゃなくて、単純に特定のメソッドだけ認証したかったら、Router.get()
とかの第二引数にミドルウェアを渡せばいいらしい
参考にさせていただいた記事など
サルでも分かるExpressでのjsonAPIサーバーの作り方 - Qiita
Express のレスポンス関連メソッド「res.end()」「res.send()」「res.json()」の違い - Corredor
Express 4 への移行