facebook twitter hatena line email

Gcp/Firebase/CloudFunctions/Basic認証

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

hostingでbasic認証の作り方

以下コマンドでfunctionsを作成する

firebase init functions

function/index.js

const functions = require('firebase-functions')
const express = require('express')
const basicAuth = require('basic-auth-connect')
const app = express()

app.all('/*', basicAuth(function(user, password) {
  return user === 'user1' && password === 'testtest';
}));
app.use(express.static(__dirname + '/static/'))
exports.app = functions.https.onRequest(app)

firebase.json

{
  "hosting": {
    "public": "public",
    "rewrites": [
      {
        "source": "**",
        "function": "app"
      }
    ],
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  }
}

プロジェクト直下にpublicディレクトリを作成

functions直下にstaticディレクトリを作成し、index.htmlなどのコンテンツを追加

cd functions
npm install --save express
npm install --save basic-auth-connect

デプロイする

firebase deploy

指定のファイルだけ認証したい場合(httpで直接アクセスすれば認証がかかってる)

app.all('/att.html', basicAuth(function(user, password) {

問題なく認証がかかってた。

参考

https://qiita.com/567000/items/65f55eda8d7c6df09138

https://qiita.com/ohana/items/f334c096727740f0df4a