2

私はこれで迷っています。問題は単純です: Android で、Google ユーザーを自分が所有するページとしてログインする正しい推奨方法は何ですか (たとえば、最初にログインすると、認証したいページがアプリに表示されます)。

Web ソリューションは簡単です。Google の /oauth エンドポイントは、メイン アカウントを選択する委任ページまたは続行するページに自動的にリダイレクトします。次のページには、URL にpageId=...追加の引数があります。そのため、承認はメイン アカウントではなく、その特定のページにリンクされます。

Android では、私は完全に道に迷いました。そこにあるすべての可能な公式ガイドは、非推奨であるか、推奨されていないか、単にこの単純なユースケースをあからさまに無視しており、メインアカウントの OAuth トークンを取得する場合にのみ機能し、ユーザーの場合に役立つ言葉さえありません。ユーザーのアカウントの下で独自のアイデンティティとして使用できる独自のページ。

Google Play サービスを使用して、現在 (高レベルで) 行っていること:

  1. AccountPicker.newChooseAccountIntentを介してアクティビティ インテントを開始する
  2. ユーザーがデバイスでアカウントを選択します。
  3. GoogleAuthUtil.getTokenを呼び出して OAuth トークンを取得する - これにより、ユーザーにアプリの承認を求める基本的な OAuth フローがトリガーされます - Web フローと同様に、このステップではアカウントの選択はありません!

私が見たもの:

  1. Google HTTP Api クライアント - これは、Android の AccountManager を使用し、「カスタム」ソリューションを使用して更新トークンなどを保存しないことをお勧めします。ユースケースにはまったく役に立ちません。
  2. Google サインイン - これにはサーバー エンドポイント (wtf?) が必要なようです。私はそれを使用して、興味のある OAuth スコープを追加しようとしましたが、うまくいきませんでした。ユーザーの電子メールには興味がありません。この API は、Google として認証するのではなく、ユーザーをサインアップすることを目的としているようです。

私が調べた他のアプリは、WebView を開いてユーザーにログインを強制しているように見えます。これにより、ログイン後にアカウント/ページを選択して、通常の Web フローがトリガーされます。別のログインが必要なため、これは本当に好きではありません。

この問題に関する公式の見解はありますか?

4

0 に答える 0