コース一覧
    Node.js認証・本番運用
    つくる:認証完備

    Node.js認証・本番運用

    認証、認可、フロントエンド連携、本番運用を学び、Node.jsで保守可能なサービスを完成させられるようにします。

    1
    認証のきほん
    01. 認証と認可15分
    02. パスワードハッシュ15分
    03. ログインとトークン15分
    04. 保護ルート15分
    05. 本人のものだけ15分
    06. つくる:認証完備20分
    07. 第7章クイズ10分
    2
    総合制作
    01. fleama API完成20分
    02. Reactと接続する20分
    03. サーバーで常駐させる20分
    04. 自由拡張20分
    05. 完成と次のステップ15分

    つくる:認証完備

    新しいことは出てきません

    この回では、新しい知識は 1 つも出てきません。第7章で書いたものを 1 つにまとめて、登録からログイン、出品、編集までを通します。

    通しで見ると流れが分かる

    プレーンテキスト

    1. POST /register  名前とパスワードを送る → 利用者ができる
    2. POST /login     名前とパスワードを送る → トークンをもらう
    3. POST /items     トークンを添えて出品   → 自分の商品として登録される
    4. PUT  /items/:id トークンを添えて編集   → 自分のものだけ通る

    1 と 2 は似ていますが、役割が違います。登録は利用者を作る、ログインはその人だと確かめて引換券を渡すです。

    3つのコードの住み分け

    第7章で、断り方が 3 つに分かれました。

    コードいつ直せるか
    401誰だか分からないログインすれば通る
    403誰かは分かるが権限が無いログインし直しても通らない
    404対象が存在しない対象を変えれば通る

    見る順番は 401 → 404 → 403 です。認証はミドルウェアで先に済み、その後で存在を見て、最後に権限を見ます。

    守るものと開けておくもの

    すべてを守ればよいわけではありません。

    JavaScript

    app.get("/items", ...);                // 誰でも見られる
    app.post("/items", requireAuth, ...);  // 出品はログイン必須
    app.put("/items/:id", requireAuth, ...); // さらに本人だけ

    商品を見るのは誰でもできて、出品はログインした人、編集は出品者だけ。段階的に狭めていくのが自然な設計です。

    ここまでに手に入れたもの

    何をどのレッスンで
    認証と認可を分ける認証と認可
    元に戻せない形で保存するパスワードハッシュ
    引換券を発行するログインとトークン
    ミドルウェアで止める保護ルート
    出品者と突き合わせる本人のものだけ

    手を動かす

    演習では、登録からログイン、出品、編集までを備えた API を組み立てます。第7章の総仕上げです。

    要件

    1. POST /login はハッシュを照合し、通れば {"token":"token-<名前>"} を 200 で返す(失敗は 401)
    2. POST /items は requireAuth を掛け、req.user.name を出品者として 201 で返す
    3. PUT /items/:id は 404 → 403 の順に確かめ、通れば更新後の商品を 200 で返す

    ヒント

    ログインは、利用者を探して、同じ salt でハッシュ化して比べます。失敗の文言は 2 か所とも同じにします

    出品と編集には `requireAuth` を 2 つ目の引数として渡します

    編集は 404 を先に、403 を後に確かめます

    生田 陸人
    監修生田 陸人
    ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
    編集 ゆめさく編集部·公開 2026/08/10

    関連レッスン

    • 第7章クイズ

      認証と認可の理解を4択で確認します。

    • fleama API完成

      第4章で作った一覧表と突き合わせ、仕様を満たし切れるようになります。

    • 本人のものだけ

      自分の出品だけ編集できるようにし、認可チェックを書けるようになります。

    • 保護ルート

      出品と購入をログイン必須にし、トークンが要るAPIを作れるようになります。

    このレッスンに出てくる用語

    意味があいまいなまま進んだ語は、ここから読み直せます。

    • 認証「この人は本当に本人?」のチェック
    • ミドルウェアリクエストとレスポンスの間に挟まる処理関数。
    • 設計何をどう作るかを決める前工程
    • 認可「この人はこの操作していい人?」のチェック
    • パスワードDBが漏洩しても元のパスワードがわからないようにするため。
    • トークンLLM が扱う最小の文字単位
    • エンドポイント「この URL を叩くとこの機能が動く」入口の住所
    • APIアプリ間でデータをやり取りする窓口
    main.js
    エディタを読み込んでいます

    メモ

    つくる:認証完備

    ⌘S で保存