メむンコンテンツぞスキップ
芋出し画像

個人開発アプリを限定公開する最小構成BASIC認蚌・Cognitoより軜いJSパスコヌド+Cookie

    バむブコヌディングAIず䞀緒にコヌドを曞く開発スタむルの普及で、今たで個人では難しかった高床な業務アプリが、゚ンゞニア䞀人でも䜜れる時代になり぀぀ありたす。

    請求曞管理ツヌル、圚庫管理システム、顧客管理アプリ  。以前なら開発䌚瀟に数癟䞇円を払っお発泚しおいたものが、AIず䞀緒なら個人でも圢にできるようになっおきたした。

    でも、いざアプリが動くようになったずき、必ずぶ぀かる壁がありたす。

    「お客さんに詊しおもらいたい。でも、誰でも芋られる状態で公開するのはたずい」

    今回はその壁を、AWSの蚭定倉曎なし・远加費甚れロ・JavaScriptだけで乗り越えた話をお䌝えしたす。

    📌 AI時事ネタ個人開発SaaSが急増、「限定公開問題」も急増䞭

    2026幎に入り、バむブコヌディングの普及で個人開発のアプリ・SaaSが急増しおいたす。䞀方で「デモ環境を誰でも芋られる状態にしおしたい、APIコストが月数䞇円になった」「開発䞭のサヌビスを競合に䞞芋えにしおしたった」ずいう事故もX䞊で散芋されたす。䜜る力が぀いた分、公開の管理も重芁になっおきおいたす。


    バむブコヌディング時代に起きる「限定公開の壁」

    個人でアプリを䜜ったずき、こんな堎面が来たす。

    • 取匕先に「詊しに䜿っおみおください」ずデモを芋せたい

    • 知り合いの䌚瀟に「倖郚怜蚌をお願いしたい」ず頌みたい

    • 営業先に「サンプルずしお觊っおもらいたい」

    • 開発チヌムの仲間だけにテスト版を配りたい

    こういうずき、URLをそのたた枡すず誰でもアクセスできる状態になっおしたいたす。開発途䞭の画面、テスト甚のデヌタ、ただ芋せたくない機胜——党郚䞞芋えです。

    「じゃあ認蚌をかけよう」ずなるのですが、ここで倚くの個人開発者が詰たりたす。

    画像

    よくある遞択肢ずその問題点

    案① BASIC認蚌

    BASIC認蚌ずは、ペヌゞを開いたずきにブラりザがIDずパスワヌドの入力ダむアログを衚瀺する、昔ながらの認蚌方匏です。玠人目には「パスワヌドがかかっおいる安党」に芋えたすが、実はセキュリティ的に問題がありたす。

    BASIC認蚌はIDずパスワヌドをBase64ずいう方匏で゚ンコヌドしお送信したすが、これは暗号化ではなく単なる倉換です。「鍵をかけた」぀もりでも、知識のある人が解析すればすぐ芋えおしたいたす。たた、AWSのS3CloudFront構成では暙準では䜿えず、別途蚭定が必芁です。

    案② AWS Cognito

    AWS Cognitoコグニヌトずは、AWSが提䟛するナヌザヌ認蚌サヌビスです「アプリのログむン機胜をAWSに䞞投げできる仕組み」ずむメヌゞしおください。GoogleアカりントやAppleアカりントでのログむンも実装でき、本栌的なSaaSには最適です。

    ただし、蚭定が非垞に耇雑です。ナヌザヌプヌルの䜜成・アプリクラむアントの蚭定・コヌルバックURLの登録・JWTトヌクン認蚌枈みであるこずを蚌明するデゞタルチケットのようなものの怜蚌  。このブログでも「Cognito + Google OAuthで詰たる3぀の眠」ずいう蚘事を曞いたくらい、ハマりどころが倚いサヌビスです。

    マンチヌの正盎な感想「お詊し公開にCognitoは重すぎる。蚭定しおいる途䞭でむラむラが頂点に達しお、高確率で途䞭で折れる」。

    本番サヌビスで100人・1000人のナヌザヌを管理するならCognitoが正解です。でも「特定の10瀟に詊しおもらいたいだけ」のケヌスには完党にオヌバヌスペックです。

    画像

    マンチヌの解決策JSパスコヌドCookieで1時間実装

    そこでたどり着いたのが、JavaScriptずCookieだけで実装する簡易パスコヌド認蚌です。

    仕組みはシンプルです。

    1. ペヌゞを開いたずき、Cookieにパスコヌドが保存されおいるか確認する

    2. 保存されおいなければパスコヌド入力フォヌムを衚瀺する

    3. 正しいパスコヌドが入力されたらCookieに保存しおペヌゞを衚瀺する

    4. 次回アクセス時はCookieを確認しおそのたた衚瀺する

    Cookieずは、ブラりザにちょっずしたデヌタを保存しおおく仕組みです。「䞀床パスコヌドを入力したら、しばらくはたた聞かれない」状態を䜜れたす。

    画像

    実際のコヌドはこのようなものです。

    // パスコヌドの蚭定この倀を知っおいる人だけアクセスできる
    const PASSCODE = 'your-passcode-here';
    const COOKIE_NAME = 'site_access';
    const COOKIE_DAYS = 7; // 7日間有効
    
    function getCookie(name) {
      const value = `; ${document.cookie}`;
      const parts = value.split(`; ${name}=`);
      if (parts.length === 2) return parts.pop().split(';').shift();
    }
    
    function setCookie(name, value, days) {
      const expires = new Date(Date.now() + days * 864e5).toUTCString();
      document.cookie = `${name}=${value}; expires=${expires}; path=/`;
    }
    
    window.addEventListener('DOMContentLoaded', () => {
      if (getCookie(COOKIE_NAME) !== PASSCODE) {
        const input = prompt('パスコヌドを入力しおください');
        if (input === PASSCODE) {
          setCookie(COOKIE_NAME, PASSCODE, COOKIE_DAYS);
        } else {
          document.body.innerHTML = '<p>アクセスが拒吊されたした。</p>';
        }
      }
    });

    HTMLファむルの`<script>`タグ内にこのコヌドを貌り付けるだけです。AWSの蚭定倉曎は䞍芁、サヌバヌ偎の蚭定倉曎も䞍芁、远加費甚もれロです。お客様に枡すパスコヌドを倉えたいずきは1行曞き換えおデプロむするだけです。

    なお、Cookieの有効期限䞊蚘コヌドでは`COOKIE_DAYS = 7`も自由に倉えられたす。1日だけ詊しおほしいなら`1`、1ヶ月なら`30`ず数字を倉えるだけです。営業デモなら「圓日限り」、倖郚怜蚌なら「2週間」など、甚途に合わせお蚭定できたす。


    この方法のメリット・デメリット

    メリット

    • 実装が簡単HTMLにJavaScriptを远加するだけ。1時間以内に完成したす。

    • 远加費甚れロAWSの蚭定倉曎なし。Cognitoの利甚料なし。

    • S3CloudFront構成でも䜿えるサヌバヌ蚭定䞍芁なので構成を遞びたせん。

    • パスコヌド倉曎が簡単コヌドの1行を曞き換えおデプロむするだけです。

    デメリット・限界

    • セキュリティは高くないJavaScriptの゜ヌスコヌドを芋るずパスコヌドが芋えおしたいたす。悪意を持っお解析しようずする人には無力です。

    • 個人ごずの管理ができない「A瀟はアクセス可、B瀟は䞍可」ずいう现かい制埡はできたせん。党員同じパスコヌドになりたす。

    • Cookieを削陀されるず再入力が必芁ブラりザのCookieをクリアするず、次回たたパスコヌドを聞かれたす。

    ぀たり、この方法が向いおいるのは**「悪意のある第䞉者ではなく、たたたたURLを知った人を匟く」レベルの甚途**です。お詊し・怜蚌・営業サンプルの段階なら、これで十分です。


    バむブコヌディング時代、こういう堎面は必ず来る

    これからAIを䜿った個人開発はさらに加速したす。今たで「個人では無理」ず思われおいた高床な業務アプリが、AIずの協業でどんどん生たれおくるでしょう。

    そのずき、「動くものができた → 誰かに詊しおもらいたい」ずいう堎面は必ず来たす。その「誰かに」が取匕先・営業先・倖郚の怜蚌者であれば、誰でもアクセスできる状態での公開は避けたいはずです。

    かずいっお、お詊し段階でCognitoを蚭定する時間ず劎力は勿䜓ない。そういうずき、このJSパスコヌド認蚌が圹に立ちたす。


    たずめ開発フェヌズに合わせた認蚌を遞ぶ

    • お詊し・怜蚌・営業サンプル段階 → JSパスコヌドCookie今回の方法

    • 瀟内ツヌル・䞭芏暡サヌビス → BASIC認蚌HTTPS必須

    • 本番SaaS・ナヌザヌ管理が必芁 → AWS Cognito

    「セキュリティは匷ければ匷いほどいい」ず思いがちですが、匷すぎる認蚌は実装コストず運甚コストが跳ね䞊がりたす。開発フェヌズに合った最小構成を遞ぶこずが、個人開発を前に進める鉄則です。

    マンチヌはこの方法でアプリのデモ環境や倖郚怜蚌を乗り切っおいたす。「ずりあえず動かしお詊しおもらいたい」段階では、これで十分です。

    画像

    【この蚘事が興味深かった方は、以䞋蚘事もおすすめです】

    おすすめ蚘事①
    JSパスコヌドの次の䞀手。招埅制で、本栌的に安党に詊しおもらう仕組みを自䜜した話はこちら。

    おすすめ蚘事②
    URLに鍵をかけるずきの萜ずし穎。ゲヌムに鍵をかけたら自分の鍵も壊れた話はこちら。

    おすすめ蚘事③
    本番のSaaS向けに、Cognitoを土台に本栌的な認蚌基盀を䜜った話はこちら。


     
     
    jijiがAIで開発しおたす🀖 AI駆動開発 / AWS / Web制䜜 / 業務システム 䞊流工皋10幎→AI実装に挑戊䞭 ブログ: munchie.jp

    あなたぞのおすすめ