この一週間のこと。 先週までにDiscord のOAuth 2.0の仕組みを使ってDiscordの外のアプリケーションのサインアップ、ログインをサーバーを用意せずに無料で使えるリソースで作ってみる、っていうのをやってた。 先週、動くものができた。できたけど、動くものを作ってみたかっただけで自分では使い道がない。作る途中で出会った小さなtipsがいくつかあって、それを誰かに話したいと思っていた。 このブログや、zennやqiitaなどに書いてみようとも思っていた。んで、いざ動くものができてみたら、もう興味を失ってしまって、何もできなくなってしまった。いつもの突然のブロッキング現象だ。 メモは書きながら作業していたけど、ここでは、今思いつくだけのことを確認をとらずに書き出してみる。

  • discordはopenid connectに対応していないので、oauthのアクセストークンで@me apiにアクセスできることをもって認証とする
    • なので、アプリケーションにはサーバーサイドの処理が必要
      • サーバーサイドでの Authorization Code Flow でアクセストークンを受け取る
  • discordの OAuth2.0 エンドポイントは undocumented だけど PKCE に対応している
    • PKCE を利用すれば、client secret は不要
  • IDaaSとしてのFirebase Authentication
    • SMS確認機能を使わないなら無料
    • 無料プランでもユーザー数無制限
    • REST API は identity tool kit という名前が付いていて
    • SDKも identity tool kit という名前だったのが最近 Firebase Authに変更されていた
    • API の認証はサービスアカウントの秘密鍵の署名でできる
      • これは認証APIでアクセストークンを取得しなくてもいい、ということ
  • Firebase Functionsは従量制課金のプランでないと使えない
  • ...