Flutter で Supabase を使うときにソーシャルログイン(OAuth)まわりで考慮すべきこと

Flutter で Supabase を使うときにソーシャルログイン(OAuth)まわりで考慮すべきこと

November 26, 2022

時間がかかっているものの開発は徐々に進んでいる様子です。あなたがこの記事を見るころには解決しているかもしれませんね。

TL;DR #

次の条件に該当する場合、こちらの ISSUE が解消されるまでは Flutter で Supabase の採用を見送ったほうが賢明かもしれません。

条件 #

  • ソーシャルログイン(e.g. Google ログイン、Apple ログイン、Facebook ログインなど)を使用する
  • iOS アプリとして App Store で配布する

説明 #

Flutter x Firebase でソーシャルログインを実装した方は分かると思いますが、Firebase での SNS ログインは自分のアプリから離れることなく完結できます。

対して、Flutter x Supabase でのソーシャルログインはフローが微妙に異なります。SMS ログインを実行するとアプリから離れてブラウザ(Chrome や Safari など)が開き、そこで Google なりのログイン情報を入力し認証処理を実行します。

先の ISSUE である、Native Sign In(Native login)を実装してほしいという Feature request は、Supabase でもブラウザを用いない Firebase のログインフローにしてほしいというリクエストです。

ブラウザを使うと何が問題かというと、単純に UX が低下するだけでなく、これが原因となって App Store の審査に落ちてしまうと言う点です。これは ISSUE 内でも言及されています。

https://github.com/supabase/supabase-flutter/issues/5#issuecomment-1284531203

ちなみに ISSUE 内では、 Supabase を用いつつ自力でネイティブ OAuth サインインを実装するワークアラウンドも出てきます。しかしこれも Supabase のライブラリのメジャーアップデートによって使用できなくなってしまったりと混迷しています。

その他こまごまとしたもの #

以降の問題はすべて、上記の ISSUE が解消してネイティブ OAuth サインインが実装されれば必然的に解決されるものです。そのため重要度は低いですが、私が遭遇したほかの問題も載せておきます。