フロントエンドカンファレンス関西 2026
田中博悠 / tanahiro2010
OAuthの実装解説ではありません
Google OAuthの実装方法なら、検索すれば出てきます PKCEの仕組みなら、公式ドキュメントがあります
「その処理どっちでやる?」
という話です
React
↓
invoke
Rust
OS
React と Rust
どちらに処理を置くべきか?
正解はありません
アプリによって
守るべきものが違うから
実際に私が開発したアプリを題材に
考えてみます
ある日
学校から相談を受けました
「Google Classroomを見ない生徒が多い」
「それは見ればいいのでは?」
と思いました
意外と理由がありました
スマホ
→ 通知が来る
Surface
→ 通知がほぼ来ない
Classroomを開かない
課題に気付かない
提出が遅れる
通知を集約するアプリを作ることになりました
Google APIを叩いて
表示するだけ
開発を始めてすぐに気付きます
これ
どこで処理するんだ?
「高校生がGoogle Classroomを見ない」
Surfaceにはスマホみたいな通知がない
課題を見逃す
未読通知集約アプリ
その処理
どっちでやる?
Google OAuthを実装したい ということで3つの案を
特徴
良い点
気になった点
PKCE デスクトップアプリ向け
中継サーバー Web側に認証を任せる
◎ ...... とても高い 〇 ...... 高い △ ...... 普通 × ...... 低い
実はそこが本題ではない
認証情報
どこに置く?
最初はそう思った
理由
扱うデータが強い
強いて言うならボタンクリックだけ
ユーザー入力はなくても、外部入力は存在するから
Google系統APIから取得した
などが
ユーザー入力がなくても安全とは限らない
認証情報流出
Googleアカウント連携悪用
僕のソフト的にReadonlyスコープしかないとはいえ、 プライベートな情報を扱っている可能性はたくさんある。
ファイルアクセス悪用
端末への影響
悩んだのはさっき言った
に加え、
だった
実装場所ではなく
この機能が突破されたら
何が起きる?
より厳しく考えてみる
許容できるリスクもある
完璧な設計
ではなく
適切な設計
Reactは便利
Rustは安全
両方使う
「壊れたら何が起きる?」
で考える
質問歓迎です