【发布时间】:2016-05-03 02:49:29
【问题描述】:
我有一个使用GTMOAuth2ViewControllerTouch 进行登录的应用程序。
最初范围只是使用https://www.googleapis.com/auth/userinfo.email,所以用户已经使用此权限登录。
我想申请https://www.googleapis.com/auth/calendar的新权限
所以当它从钥匙串中检索 auth 对象时:
GTMOAuth2Authentication *auth = [GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:keychainItemName
clientID:clientID
clientSecret:clientSecret];
并且这个新权限不在auth对象的范围内,我尝试再次呈现GTMOAuth2ViewControllerTouch以扩大范围,但它需要用户再次输入凭据。
我希望这个控制器只是请求批准这个新权限。
我怎样才能实现这种行为? google-api-objectivec-client可以吗
更新:
我已经能够通过使用GTMOAuth2ViewControllerTouch 的swapInCookies 和swapOutCookies 方法更接近..
对于新安装,这些方法将再次打开同一个控制器(用于登录的 web 视图),第二次它只是请求权限,使用户无法再次输入他的凭据。
但现在的问题是,当前的应用程序在登录完成时不会swapOutCookies,因此没有 cookie 可以交换到 web 视图中,所以它要求登录,而用户应该是已登录。
【问题讨论】:
标签: ios google-calendar-api google-api-objc-client