3

新しい Google Play Services を使用してアカウントを認証する場合、まず AccountPicker を使用して、ユーザーがアカウントを選択できるようにします。ユーザーが以前にアプリケーションで認証されていない場合はUserRecoverableAuthException、「アクセスを許可」ページを表示する意図を与える がスローされます。アクセスを許可する必要があるのは 1 回だけです。ただし、テスト目的で、毎回 [アクセスを許可] ページを表示する必要があります。

では、Google Play Services のアクセス許可をクリアする方法を知っている人はいますか? または、毎回アクセス許可ページを表示する他の方法はありますか?

4

1 に答える 1

2

Google アカウント設定で、アプリケーション固有のパスワードを設定する方法があります。2 段階認証プロセスにサインアップすると、それらを作成できます。アクセス許可を一時的に取り消すには、パスワードを削除または変更します: http://support.google.com/accounts/bin/answer.py?hl=en&answer=1070455

それ以外の場合は、Google アカウント全体のパスワードを一時的に変更してください。

残念ながら、これをプログラムで簡単に行う方法はないと思います。ユーザー/管理者が、インストールされたアプリへの Google アカウントのアクセスを取り消すことができないというのは、非常に深刻なセキュリティ上の欠陥のようです。私が知る限り、Google はサーバーから認証情報を取得しており、その操作で何かが失敗すると、UserRecoverableAuthException. これは、通常、UserException.getIntent() からインテントを起動するときです。これは、次のようなリクエストでサーバーに接続します。

scope:oauth2:https://www.googleapis.com/auth/drive.readonly[
    account:<your_account>@gmail.com,
    scope:oauth2:https://www.googleapis.com/auth/drive.readonly,
    extrashash:<some_number>]

上記で要求された Auth Scope を取り消すようにサーバーに指示するためのドキュメントは見つかりませんでした。それは不可能かもしれません。ただし、 UserException.getIntent() によって返された Intent の値をキャプチャし、それを使用して、ユーザーが Google アカウントでサインインするたびに起動する新しい Intent を作成することができます。ただし、サーバーは、アプリが既に認証されていることを認識し、プロンプトなしで送信する場合があります。

于 2012-10-28T18:06:15.107 に答える