<- Back to list

Vercel にベーシック認証をサクッとつけて確認URLとして使う

Vercel

こんにちは。フロントっぽいメモ久しぶり!
職場ではわからないことが多くぎて泣きそうな2週間を経て、わからないことにだんだん慣れてきてしまっています。イタリアに移住した時に、イタリア語が喋れなくて最初パニックになったけど、何週間かしてそれば普通になったのを思い出してしまいました。イタリア語もプログラミング言語も同じで、毎日その場に身をおいてればなんとかなる!はず!!

今回の静的サイト構成

つかっているものたち

  • webpack
  • JavaScript (TS, React)
  • sass
  • pug

ディレクトリ構成

  • src/ ビルド前の sass, pug, ts
  • dist/ ビルド後の css, html, js

みたいな古の静的マークアップ構成でも、Vercel 使ってさくっとベーシック認証かけます。
今回は Vercel でベーシック認証かけるメモなのでこの辺の build まわりの流れは省略します。

前提

つくったプロジェクトを git 経由で vercel に紐づけておきます。設定で適宜 build コマンド(今回は yarn build に上書き)や public フォルダ(今回は dist という名前に上書き)を設定しておきます。

0. static-auth と safe-compare をインストール

yarn add static-auth safe-compare -D

1. プロジェクトルートに app.js を設置

const protect = require('static-auth'); const safeCompare = require('safe-compare'); const USER_NAME = process.env.USER_NAME || 'id'; const PASSWORD = process.env.PASSWORD || 'pass'; const app = protect( '/', (username, password) => safeCompare(username, USER_NAME) && safeCompare(password, PASSWORD), { directory: `${__dirname}/dist`, // dist 配下のファイルを静的コンテンツとして配信する onAuthFailed: (res) => { res.end('Authentication failed') }, } ) module.exports = app

idpass 箇所を好きなものに変えます。環境変数に入れる場合は vercel の環境変数に設定します。

2. プロジェクトルートに vercel.json を設置

{ "builds": [ { "src": "app.js", "use": "@vercel/node" } ], "routes": [ { "src": "/.*", "dest": "app.js" } ] }

これだけです!

参考にしました

まったくもって参考にさせてもらいました。感謝。