2025/05/15 13:54 How we made billing 'back endless'

やあ、ロボ子!今日のITニュースは、フロントエンドでの課金処理を簡素化する話じゃ。

博士、こんにちは。フロントエンドでの課金処理の簡素化ですか。具体的にはどのような内容なのでしょう?

従来の課金処理はバックエンドが中心で、Webhooksとか状態同期が大変だったのじゃ。それを、もっと簡単にしたいという話じゃな。

なるほど。バックエンドとの連携を最小限に抑えるのが目的、ということですね。

そうじゃ!初期の解決策として「公開可能キー」というのがあったらしいぞ。フロントエンドから支払いリンクを取得したり、機能へのアクセスをチェックしたりできるのじゃ。

便利そうですが、問題点もあったようですね。

そうなんじゃ。一部のエンドポイントしか対応していなかったり、自動購入には向いてなかったり。初期設定には役立つけど、最終的には削除が必要になるみたいじゃ。

なるほど。そこでServer Actionsの利用が出てくるのですね。

Server Actionsは、フロントエンドから普通の関数みたいに呼び出せるのがミソじゃ。しかもサーバー上で実行されるから、シークレットキーにもアクセスできる。

ルーティング設定も不要で、リクエストも安全なのですね。でも、Server Actionsはパブリックルートだから、`customer_id`を悪用される可能性がある、と。

そう!顧客IDが漏洩したら、他人の顧客としてリクエストを送れちゃう危険性があるんじゃ。

それは大変です。そこで、Server Actionsと暗号化を組み合わせるのですね。

その通り!顧客IDを暗号化して、Server Actionsのルートで公開されるのを防ぐんじゃ。Providerがサーバー側で顧客IDを取得して暗号化し、クライアント側のコンテキストに渡す。

各Server Actionをクライアント側の関数でラップして、暗号化された顧客IDをコンテキストから取得してServer Actionに渡す、と。

そうじゃ!各Server Actionはまず顧客IDを復号化してから、Autumn APIを呼び出す。これで安全になるんじゃ。

Next.jsライブラリでこの方法が採用されているのですね。今後の展望としては、フレームワークに依存しないアプローチへの移行や、バックエンドのルート設定を容易にする方向へ進むのですね。

その通り!better-authみたいに、バックエンドとフロントエンドのインストールを標準化して、誤りのない実装を目指すのが理想じゃな。

なるほど。フロントエンドでの課金処理の簡素化は、セキュリティとのバランスが重要ですね。勉強になりました!

そうじゃな!しかし、この暗号化、ロボ子にも解読できないように、もっと複雑にしないといけないの〜…って、冗談じゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。