我们有一个iOS应用,使用Google oAuth通过嵌入式浏览器向用户询问Google日历的权限。用户通过应用程序登录并授予其日历的权限,oAuth授权的刷新令牌和日历ID存储在加密数据库中。 使用此刷新令牌和日历ID - 他们的日历项目将显示在单独的Web应用程序上(无需再次请求客户端凭据)。在今年4月20日嵌入式浏览器中的Google授权请求被阻止之前,这种情况很有用。在此之前,我们使用了单个oAuth客户端ID并使用了客户端ID& iOS和Web应用程序中的秘密。但是,在4月20日之后,我们不得不创建一个单独的iOS客户端密钥。现在的问题是,虽然在iOS应用程序中我们可以使用以下代码询问用户日历权限:
OIDAuthorizationRequest *request = [[OIDAuthorizationRequest alloc] initWithConfiguration:configuration
clientId:GoogleCustomKey
scopes:@[OIDScopeOpenID,
OIDScopeProfile, OIDScopeEmail, @"https://www.googleapis.com/auth/calendar",
@"https://www.googleapis.com/auth/calendar.readonly",
@"https://www.googleapis.com/auth/tasks",
@"https://www.googleapis.com/auth/tasks.readonly"]
redirectURL:[NSURL URLWithString:GoogleRedirectUri]
responseType:OIDResponseTypeCode
additionalParameters:nil];
但是现在我们无法再使用Web应用程序上的刷新令牌显示用户日历。在Web应用程序中,我们得到了#34;未经授权的访问"调试Web应用程序代码时出错。但根据Google的文档,允许跨客户端授权https://developers.google.com/identity/protocols/CrossClientAuth。 我们不确定我们缺少什么?感谢。