0

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で可能ですか

アップデート:

GTMOAuth2ViewControllerTouchswapInCookies&swapOutCookiesメソッドを使用することで、さらに近づくことができました。

新規インストールの場合、これらのメソッドは同じコントローラー (サインイン用の webview) を再度開き、2 回目は許可を求めるだけで、ユーザーは自分の資格情報を再度入力する必要がなくなります。

しかし、現在の問題は、ログインが完了したときに現在のアプリが機能swapOutCookiesしないため、Web ビューにスワップされる Cookie がないため、ユーザーが既にログインしているはずのときにログインを要求することです。

4

1 に答える 1