GTMOAuth2ViewControllerTouch
我有一个用于登录的应用程序。
最初范围只是 using 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
's swapInCookies
&swapOutCookies
方法更接近..
对于新安装,这些方法将再次打开同一个控制器(用于登录的 webview),第二次它只是请求权限,使用户无法再次输入他的凭据。
但是现在的问题是当前的应用程序swapOutCookies
在登录完成时不会,所以没有cookies可以交换到webview中,所以当用户应该已经登录时它会要求登录。