ログインしたユーザーだけが使える画面があります。リクエストは Authorization ヘッダーに "Bearer <トークン>" の形でトークンを載せて送られてきます。この認証ガードは、その トークンからユーザー情報を取り出して次の段階へ渡す必要があります。 JwtAuthGuard.verify(token) を完成させてください。 トークンはドット(.)で区切られた三つの部分から成り、真ん中の部分が { userId, role } を 収めたユーザー情報です。そこから userId と role を取り出して返すと、ガードがそれを req.user に載せます。秘密鍵は環境変数 JWT_SECRET にあります。 Note: トークンが無い、または Bearer 形式でない場合はすでに 401 で弾かれます(ガードの 上の方にあります)。発行(ログイン)・有効期限・更新はこの課題の範囲外です。
NestJS の認証ガードを完成させる問題です。Authorization ヘッダーに "Bearer <トークン>" の形で入ってきたトークンからユーザー情報(userId, role)を取り出して req.user に載せ、 トークンが無ければ 401 で弾きます。トークンライブラリを使わず Node の組み込みツール だけを使い、秘密鍵は環境変数 JWT_SECRET から読みます。
この問題は「外から入ってきたトークンをどこまで信じてよいか」を扱います。トークンは ユーザーが自分で持ち込む値なので、その中身をそのまま信じると、誰が中身を書き換えて 送ってきたのか分かりません。こうしたコードを検証するときは「正しいトークンが通るか」 だけを見ず、「中身を書き換えたトークンを送っても通るか」を自分で確かめる習慣が大切 です。通ってはいけないトークンが通る瞬間こそが本当の試金石です。