このワークフローを考えると:
サーバーA
- ユーザーが認証します。
- ユーザーは、共有シークレットを使用してランダムに生成された一意のバウチャー コードを購入し、サーバー B でアプリケーションを使用します。
サーバー B
- ユーザーが認証します。
- ユーザーがバウチャー コードを入力します。
- サーバー B は、共有シークレットを使用してコードが正当であることを検証します
- サーバー B は、アプリケーションへのアクセスを許可します。
以下に示すように、PHPで関数を実装する方法が必要ですgenerateVoucherCode
。validateVoucherCode
サーバーA
$voucher = generateVoucherCode("someSharedSecret");
サーバー B
$isValid = validateVoucherCode($userInputtedCode, "someSharedSecret");
if($isValid) {
// allow access to application
}