Closed6

Next.js + Vercel で Basic 認証をかける

Basic 認証を行い、認証が通ったら /out 配下の静的アセットを serve する Node.js スクリプトをプロジェクトルートに作成

app.js
const protect = require('static-auth');
const safeCompare = require('safe-compare');

const app = protect(
  '/',
  (username, password) =>
    safeCompare(username, process.env.USERNAME || 'admin') &&
    safeCompare(password, process.env.PASSWORD || 'admin'),
  {
    directory: `${__dirname}/out`,
    onAuthFailed: (res) => {
      res.end('Authentication failed');
    },
  }
);

module.exports = app;

必要に応じて、環境変数 USERNAMEPASSWORD を設定

任意のパスから app.js を実行させたいので、プロジェクトルートに配置した vercel.jsonbuildsroutesを追加

vercel.json
{
  "builds": [
    {
      "src": "app.js",
      "use": "@vercel/node"
    }
  ],
  "routes": [{ "src": "/.*", "dest": "app.js" }]
}
このスクラップは2021/01/21にクローズされました
作成者以外のコメントは許可されていません