kym_test.kymg.win

ダッシュボード

ログイン

Status

こんにちは、ゲストさん

データベースに接続できませんでした。

アプリケーション

test.kymg.win.kymg.win

このシェルは認証状態をヘッダーで共有し、CSRF保護されたログアウトのみを提供します。

認証技術仕様

リクエストフロー

  1. index.php → Func_App() が全 Func_* をロードし、Func_App_HandleJwtRedirect()?kym_token= を受け取った際に Secure/Lax Cookie へ保存します。
  2. Func_App()Func_Session_GetAuthState() を呼び出し、結果を auth_state に載せた上でルーティング・描画を進めます。
  3. 描画後は Func_Page_Main() がヘッダー・オフキャンバスへ同じ auth_state を共有し、各 UI スロットから再読込なしで状態を参照できます。

JWT / セッション

  • Func_Auth_VerifyJwt() は Base64URL デコード、HS256 署名、exp/iatAUTH_JWT_CLOCK_SKEW で猶予)、iss=AUTH_JWT_EXPECTED_ISSaud=AUTH_JWT_EXPECTED_AUD を順にチェックします。
  • 検証シークレットは Func_Auth_GetJwtSecret()kym_auth.auth_settings_ms から jwt_secret を取得し、失敗時のみ AUTH_SHARED_SECRET にフォールバックします。
  • 成功した payload は is_authenticated / user へ整形され静的にキャッシュされるため、同一リクエスト内での追加検証は発生しません。

CSRF / ログアウト

  • Func_Csrf_GenToken() が hidden input を発行し、ログアウト POST は Func_Csrf_ValidToken() を通過しない限り破棄されます。
  • Func_View_Logout()Func_Session_ClearAuthState()kym_token Cookie を即失効させ、PHP セッション ID も再発行します。
  • ヘッダー/オフキャンバスのボタンは auth_state を唯一のデータソースとしているため、ログアウト後の再描画だけで反映されます。

JavaScript / UI 制御

  • body には class="layout-shell is-authenticated|is-guest"data-auth-state="authenticated|guest" が必ず付与されます。
  • ボタンやリンクをログイン必須にする場合は .requires-auth を付与すると、CSS と JS 双方で一括制御できます。
  • 追加の権限制御が必要な場合でも document.body.dataset.authState だけを参照すれば整合性を保てます。
  • トーストやモーダルなどの即時フィードバックは、同じ状態値を見て挙動を切り替えるように統一してください。
実装例
const isAuthenticated = document.body.dataset.authState === 'authenticated';
                const saveBtn = document.querySelector('[data-feature="save"]');
                if (!isAuthenticated && saveBtn) {
                    saveBtn.classList.add('requires-auth');
                    saveBtn.addEventListener('click', (event) => {
                        event.preventDefault();
                        alert('ログインすると保存できます');
                    }, { once: true });
                }

UI 側ではこの状態値以外に権限ロジックを持たせず、サーバーの auth_state を単一ソース・オブ・トゥルースにしてください。

モジュール 1

ダミーカード 1

この領域はスクロール挙動の確認用に配置したダミーコンテンツです。任意のメトリクスやログイン後の情報をここに展開できます。

モジュール 2

ダミーカード 2

この領域はスクロール挙動の確認用に配置したダミーコンテンツです。任意のメトリクスやログイン後の情報をここに展開できます。

モジュール 3

ダミーカード 3

この領域はスクロール挙動の確認用に配置したダミーコンテンツです。任意のメトリクスやログイン後の情報をここに展開できます。

モジュール 4

ダミーカード 4

この領域はスクロール挙動の確認用に配置したダミーコンテンツです。任意のメトリクスやログイン後の情報をここに展開できます。

モジュール 5

ダミーカード 5

この領域はスクロール挙動の確認用に配置したダミーコンテンツです。任意のメトリクスやログイン後の情報をここに展開できます。

モジュール 6

ダミーカード 6

この領域はスクロール挙動の確認用に配置したダミーコンテンツです。任意のメトリクスやログイン後の情報をここに展開できます。

モジュール 7

ダミーカード 7

この領域はスクロール挙動の確認用に配置したダミーコンテンツです。任意のメトリクスやログイン後の情報をここに展開できます。

モジュール 8

ダミーカード 8

この領域はスクロール挙動の確認用に配置したダミーコンテンツです。任意のメトリクスやログイン後の情報をここに展開できます。

Navigation