GTMOAuth2ViewControllerTouch
ログインに使用するアプリケーションがあります。
当初、スコープは を使用してhttps://www.googleapis.com/auth/userinfo.email
いたため、ユーザーはすでにこの権限でログインしています。
の新しい許可を求めたいhttps://www.googleapis.com/auth/calendar
したがって、キーチェーンから認証オブジェクトを取得するとき:
GTMOAuth2Authentication *auth = [GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:keychainItemName
clientID:clientID
clientSecret:clientSecret];
この新しいアクセス許可はauth
オブジェクトのスコープ内にありません。スコープを拡張するためにもう一度提示しようとしましGTMOAuth2ViewControllerTouch
たが、ユーザーは資格情報を再度入力する必要があります。
このコントローラーは、この新しい許可の承認を求めるだけだと思います。
どうすればこの動作を達成できますか? google-api-objectivec-clientで可能ですか
アップデート:
GTMOAuth2ViewControllerTouch
のswapInCookies
&swapOutCookies
メソッドを使用することで、さらに近づくことができました。
新規インストールの場合、これらのメソッドは同じコントローラー (サインイン用の webview) を再度開き、2 回目は許可を求めるだけで、ユーザーは自分の資格情報を再度入力する必要がなくなります。
しかし、現在の問題は、ログインが完了したときに現在のアプリが機能swapOutCookies
しないため、Web ビューにスワップされる Cookie がないため、ユーザーが既にログインしているはずのときにログインを要求することです。