私はあなたが最初のオプション（JWTSのオプション）を意味し、あなたがすでに必要なすべてのユニットをインストールしていると仮定します。この場合、Expressライブラリのみを使用します。
 
//この例で使用されているライブラリは、node.jsでサーバーを起動するために使用されます
const express = require（ 'express'）;
const app = express（）;
// Webトークンを使用するためのライブラリ
const jwt = require（ 'jssonwebtoken'）

//投稿にexpressまたはput-タイプのリクエストを使用するミドルウェア
app.use（express.urlencoded（{extended：false}））;
app.use（express.json（））;

//最も安全なことは、ある環境変数であなたの秘密を持つことであり、
//ソースコードでは、この例ではここに割り当てます。
//秘密は使用されるチェーンまたはハッシュです
// JWT暗号化のキーとして
const secret = "mi_secreto_inseguro";

app.get（ '/'、（req、res）=> {
  res.send（ 'hello world！'）;
}）;

//認証データのルートを投稿します
app.post（ '/auth'、（req、res）=> {
  const {username、password} = req.body;

  //これがあなたのユーザーデータベースのあなたの相談手順です
  //ユーザーとパスワードの検証。
  //認証が正しいと仮定すると、
  //トークンに追加したい情報、この場合はそれだけです
  // ユーザー名
  const content = {username：username};

  const AccessToken = genaccesStoken（content）;

  res.header（ 'Authorization'、AccessToken）.JSON（{
    メッセージ：「認証されたユーザー！」
    トークン：AccessToken
  }）
}）;

//アクセストークンを生成および返す機能
function genaccesstoken（content）{
  return jwt.sign（content、secret、{expirein： '5m'}）;
}

//トークンの検証のための関数
validateToken関数（Req、res、next）{
  //ヘッダーまたはURLのクエリからトークンを受け取り、
  //終了したら（||から）後者を削除できます
  //対応するテストを行う。
  const AccessToken = req.headers ['Authorization'] ||Req.Query.AccessToken;
  if（！accesstoken）res.send（ 'アクセスを拒否する！トークンが受信されない。'）;

  jwt.verify（accesstoken、secret、（er、content）=> {
    if（err）{
      res.send（ 'アクセスを拒否しました。誤ったトークンまたは期限切れのトークン。'）;
    } それ以外 {
      次 （）;
    }
  }）;
}

//認証フォームのルートを取得します覚えておいてください
//前に決定したルートを「アクション」として持っています
app.get（ '/login'、（req、res）=> {
  res.send（ `
    <！doctype html>
    <html lang = "in">
    <irad>
      <metatet = "utf-8">
      <title> login </title>
    </ head>
    <body>
      <form action = "/auth" method = "post">
        ユーザー名：<入力タイプ= "テキスト" name = "user" /> <br>
        パスワード：<入力タイプ= "パスワード" name = "password" /> <br>
        <入力型= "submit" value = "login" />
      </por
    </body>
    </html>
    `）;
}）;

app.get（ '/api'、validatetoken、（req、res）=> {
  Res.Json（{{{
    「exlpo」：{
      「ここ」：「JSON形式で顧客の応答を提示できます」
    }
  }）;
}）;

app.then（3000、（）=> {
  console.log（ 'スターターが開始...'）;
}）;
Asumiré que te refieres a la primera opción (la de los JWTs) y que ya tendrás instaladas todas tus dependencias necesarias. En este caso usaré solo las bibliotecas express.js para hacer un servidor sencillo a modo de ejemplo y jsonwebtoken.js para la implementación de los JWT.
 
// Biblioteca usada en este ejemplo para iniciar un servidor en node.js
const express = require('express');
const app = express();
// Biblioteca para el uso de Jason Web Tokens
const jwt = require('jsonwebtoken')

// Middleware que utiliza express para las solicitudes tipo POST o PUT
app.use(express.urlencoded({extended: false}));
app.use(express.json());

// Lo más seguro es tener tu SECRETO en alguna variable de entorno y no
// en tu código fuente, para este ejemplo la asignaremos aquí mismo.
// El SECRETO es una cadena o hash que se que se utiliza
// como llave en la encriptación de tu JWT
const SECRET = "mi_secreto_inseguro";

app.get('/', (req, res) => {
  res.send('Hola mundo!');
});

// Ruta POST para los datos de de autenticación
app.post('/auth', (req, res) => {
  const {username, password} = req.body;

  // Aquí va tu procedimiento de consulta en tu base de datos de usuarios
  // así como tu validación de usuario y contraseña.
  // Asumiendo que la autenticación fue correcta creemos un objeto con
  // la información que quieras agregar a tu token, en este caso solo es
  // el nombre de usuario
  const content = {username: username};

  const accessToken = genAccessToken(content);

  res.header('authorization', accessToken).json({
    message: '¡Usuario autenticado!',
    token: accessToken
  })
});

// Función que genera y retorna un token de acceso
function genAccessToken(content){
  return jwt.sign(content, SECRET, {expiresIn: '5m'});
}

// Función para la validación de un token
function validateToken(req, res, next){
  // Recibir token ya sea de headers o una query por url,
  // puedes remover esta última (a partir del ||) una vez hayas terminado
  // de hacer las pruebas correspondientes.
  const accessToken = req.headers['authorization'] || req.query.accessToken;
  if(!accessToken) res.send('Acceso denegado! Token no recibido.');

  jwt.verify(accessToken, SECRET, (err, content) => {
    if(err){
      res.send('Acceso denegado. Token incorrecto o expirado.');
    } else {
      next();
    }
  });
}

// Ruta get para el formulario de autenticación recuerda que debe
// tener como "action" la ruta que determinaste antes
app.get('/login', (req, res) => {
  res.send(`
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Login</title>
    </head>
    <body>
      <form action="/auth" method="post">
        Nombre de usuario: <input type="text" name="user" /><br>
        Contraseña: <input type="password" name="password" /><br>
        <input type="submit" value="Iniciar sesión" />
      </form>
    </body>
    </html>
    `);
});

app.get('/api', validateToken, (req, res) => {
  res.json({
    "ejemlpo": {
      "aquí": "puedes presentar tus respuestas al cliente en formato JSON"
    }
  });
});

app.listen(3000, () => {
  console.log('Servidor iniciado...');
});