§3 SDKユーティリティ:保存・復元・マスキング

SDK には、ライセンスキーの 保存・読み込み・表示時の安全なマスキング を行うためのユーティリティが含まれています。
これらを利用することで、ユーザーが誤ってキーを漏洩したり、画面共有・ライブ配信などでキーが見えてしまうリスクを減らせます。


保存方針

ライセンスキーは、次のどちらかに保存することが推奨されます。

保存場所用途特徴
optionsプラグイン単体利用サイト全体で共通のライセンス
user_metaユーザーごとに異なる利用権SaaS・クラウド連携系に向く

多くの WordPressプラグインoptions 保存を使います。

保存例(options)

AppCotton_SDK::save_license_key('yourplugin_license_key', $license_key);
保存先: wp_options.yourplugin_license_key

復元(読み込み)

$license_key = AppCotton_SDK::get_license_key('yourplugin_license_key');

キーが保存されていなければ null を返します。


マスキング(キーを UI 表示する際)

ユーザーにライセンスキーを見せるときは、丸見えにする必要はありません。
mask() を使うと、次のように末尾だけ表示されます:

$masked = AppCotton_SDK::mask('ABCD-1234-5678-XYZ');
echo $masked;

表示例

ABCD-****-****-XYZ
利点説明
不用意な漏洩を防ぐスクリーン共有 / 動画収録中でも安全
本人確認が可能「末尾4桁」を照合すれば同一キーだと特定できる
サポート対応が楽になる「最後の4文字教えてください」と案内できる

UI表示の実用例

$license_key = AppCotton_SDK::get_license_key('yourplugin_license_key');

if ($license_key) {
    printf(
        '<p>現在のライセンスキー: <code>%s</code></p>',
        esc_html( AppCotton_SDK::mask($license_key) )
    );
} else {
    echo '<p>ライセンスキーは登録されていません。</p>';
}

保存時のバリデーション

保存時には自動で以下の処理が行われます:

処理説明
余計な空白を除去trim()
許可文字種を制限A-Z / 0-9 / - のみ
空文字なら削除delete_option() or delete_user_meta()
AppCotton_SDK::save_license_key('yourplugin_license_key', $_POST['license_key']);

サニタイズは SDK に任せてOK です。


まとめ

• ライセンスキーは options または user_meta に保存できる
• save / get / delete を SDK が一元管理
• UI表示時は mask() を使用して安全に表示
• マスキングにより誤共有・漏洩を防止する
• 保存時は SDK が自動でサニタイズ処理を行う