ドメイン解除と再認証フロー

AppCotton では、ライセンスに紐づくドメイン(利用サイト)を ユーザー自身が解除して再利用 できる仕組みを提供しています。
これにより、以下のような現実的な運用ニーズに対応します。

  • サイト移転
  • テスト環境 → 本番環境への切り替え
  • クライアント納品後の権利移転
  • 制作会社が複数案件をローテーション管理する場合

1. 解除できる条件

条件内容
ライセンスが active であること期限切れや取り消しでは操作不可
対象ドメインが active 状態で登録されていること解除対象が存在している必要がある
上限(activation_limit)に達している必要はないいつでも解除可能

2. 解除の影響

解除を行うと、対象のアクティベーションレコードは以下のように更新されます:

status: active → deactivated
last_checked_at: 現在時刻

同時に、ライセンスに紐づく 利用可能なドメイン枠 が 1つ増えます。

項目変更前変更後
使用中のサイト数例:3/32/3
新しいサイトでの認証❌ 不可✅ 可能

3. ユーザーによる解除操作

操作手順(マイページ)

マイページ → ライセンス一覧
↓
対象ライセンスを選択
↓
「ドメイン管理」
↓
一覧から不要なドメインを選んで「解除」

解除後、画面上で次のように表示が変わります:

example.com → 解除済み
残り利用可能数:1

4. 再認証(新しいドメインで使用する場合)

解除後、ユーザーは新しいサイトにライセンスキーを入力するだけで再認証できます。

再認証時の流れ

新サイトから validate API 呼び出し
↓
ライセンスは active か?
↓
使用中サイト数 < activation_limit か?
↓
新ドメインをアクティベーションとして登録
↓
利用可能

APIレスポンス例(成功)

{
  "status": "active",
  "message": "ライセンス認証に成功しました。",
  "remaining_slots": 1
}

5. 典型的なユーザーストーリー

ケース:テスト環境 → 本番環境

localhost (開発環境) でアクティベーション
↓
納品時に localhost をマイページから解除
↓
client-site.com で再認証 → 正常利用開始

ケース:クライアント切り替え

client-a.com → active
client-b.com → 新規

上限1サイトのライセンス
↓
client-a.com をマイページから解除
↓
client-b.com で認証 → OK

6. 解除が禁止されるケース

ステータス理由対応
revoked権利自体が取り消されているため管理者が新しいライセンスを発行する
expired期限切れのため更新・再課金後に解除可能

7. UI 表現の推奨設計

状態ボタン表示備考
active ドメイン「解除する」ボタン確認ダイアログ推奨
deactivated ドメイン(表示のみ)誤操作防止のため非活性
上限に達したとき注意メッセージ + 解除を誘導誘導が重要

推奨メッセージ:

利用中のサイト数が上限に達しています。
不要なサイトを解除することで、このサイトで利用できるようになります。

8. まとめ

• ドメイン解除はユーザーが自力で行える(サポート不要)
• 解除すると利用可能枠が回復し、新しいサイトで再認証可能
• 状態は wp_appcotton_license_activations で管理される
• revoked / expired の場合は解除できない
• エラーメッセージと誘導リンクが UX の決め手になる