问题标签 [gtm-oauth2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
443 浏览

ios - 使用 GTMOAuth2SignIn 无头获取令牌

我想为我所有的服务方法编写集成测试。这些方法使用 OAuth2 保护,iOS 客户端使用 gtm-oauth2 库。

我可以编写哪些代码来使用 OCUnit 测试用例中的用户名/密码凭据获取访问令牌?

这样做的任何人都可以节省我浏览 Google 代码的时间吗?

0 投票
1 回答
289 浏览

ios - Use observer to signal semaphore?

I use the following method to attempt to synchronously obtain an OAuth access token within 10 seconds, otherwise return nil. It works fine, however as an exercise I would like to convert my code to use a semaphore.

The Runloop version

Semaphore Version

The semaphore version of the code goes a little something like this:

Gotcha!!! GTMOAuth2 sometimes returns immediately

  • When GTMOAuth2 needs to hit the network it calls back via a delegate method. In this method I signal my semaphore.
  • Sometimes GTMOAuth2 is able to return immediately. The problem is the method returns void.

How can I signal my semaphore in the latter case? If I add an observer to the authentication.assessToken will it be fired?

0 投票
2 回答
819 浏览

ios - 使用 GTMOAuth2 在登录时检索 gmail 地址

我正在使用 GTMOAuth2 通过我的企业应用程序在 iOS 上登录。场景是只有帐户 @mycompanyname.com 的用户可以登录。

问题是我正在调用文档提供的方法,但我无法检索用户用于登录的电子邮件帐户。

登录时调用如下:

在我的 GTMOAuth2 委托方法中,我这样做是为了尝试检索电子邮件地址:

}

问题是我无法获取尝试登录的用户的正确电子邮件地址,以便能够准确检查电子邮件地址并仅在之后初始化应用程序。

我已经对错误进行了检查,并且全部使用@gmail.com 地址登录,这解释了为什么代码很长。

请帮忙!提前致谢!

0 投票
1 回答
2394 浏览

ios - Google OAuth 登录错误:凭据无效

我有一个 iPad 应用程序,它允许用户使用 OAuth2 登录到他们的 Gmail 帐户。至此,登录过程和电子邮件获取成功。但是,当应用程序关闭并在(长时间)后重新打开时,会产生“无效凭据”错误,即使之前使用相同凭据的登录成功。

登录流程:1) 用户使用 OAuth 2 登录到 gmail。2) GTMOAuth2Authentication 对象提供的用户电子邮件地址和 oAuthToken 保存到核心数据中以供将来登录。3) IMAP 会话是使用保存的电子邮件地址和 OAuthToken 创建的。

这是相关代码

谷歌登录

使用 MailCore2 创建 IMAP 会话

再一次,上面的代码工作正常,除非应用程序有一段时间没有被使用过。我不确定是否需要刷新 OAuthToken,所以我尝试在启动应用程序时执行以下操作:

但我仍然得到同样的错误。我不知道为什么 OAuth 令牌停止工作或如何解决这个问题。由于用户能够保存多个帐户,我想知道是否需要将每个帐户的刷新令牌保存在核心数据中,并在访问令牌停止工作时使用它?

0 投票
2 回答
1500 浏览

ios - GTM OAuth 不下载刷新令牌 - iOS

我正在使用 Google 的 GTMOAuth for iOS/Mac SDK,以便能够连接 YouTube API 和 Instagram API 等 API。一切正常,但是当用户进行身份验证时,我只能获取访问令牌。这一切都很好,但是一段时间后访问令牌过期并且用户必须重新登录,这很糟糕。

我的问题是,当用户进行身份验证时,我只得到一个访问令牌,没有别的......

谢谢你的帮助:)

0 投票
2 回答
701 浏览

ios - 如何在 GTMOAuth2ViewControllerTouch 视图中预填充电子邮件字段

如何在 GTMOAuth2ViewControllerTouch 视图中预填充电子邮件字段?

可能吗 ?有没有人试过这个?

我正在使用标准方法来创建视图控制器类并以模态方式显示 gtm 视图

self.gtmVC = [[GTMOAuth2ViewControllerTouch alloc] initWithAuthentication:googleAuth authorizationURL:[GTMOAuth2SignIn googleAuthorizationURL] keychainItemName:kKeychainItemName delegate:self finishedSelector:@selector(viewController:finishedWithAuth:error:)];

0 投票
1 回答
425 浏览

objective-c - 使用 Instagram API 进行身份验证时,Mac OSX 上的 gtm-oauth2 崩溃

我正在 Mac OSX 上构建一个供个人使用的小型 Instagram 客户端。我目前正在使用 gtm-oauth2 从 Instagram 获取 oauth2 令牌。我正在按照源提供的指南来获取此令牌。我有 90% 的工作。webView 加载了身份验证详细信息,我可以输入我的帐户,然后出现权限屏幕,询问我是否要授予我的应用程序访问权限。我遇到的问题是,在进行身份验证后,无论我“允许”还是“取消”,应用程序都会崩溃,没有堆栈跟踪或其他信息。我得到的关于异常的唯一信息是“线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x4c1)”,看起来该线程正在做与 WebCore::ResourceLoader 相关的事情,但它是一堆 ASM,所以我' 我不知道这个电话实际发生在哪里。也许我没有正确调用 windowController?我的代码包含在下面。

如果我在 windowController:finishedWithAuth:error: 方法中插入断点,则应用程序正在到达它。但是,它在我运行后仍然崩溃,这对我来说似乎是某种导致错误的异步操作。希望我只是在这里遗漏了一些简单的东西;我无法想象 Google 的 OAuth 项目存在重大缺陷。

0 投票
1 回答
463 浏览

grails - 适用于 IOS 的 GTM OAuth 无法与 Grails OAuth 2 提供程序一起使用

我目前正在开发一个 IOS 应用程序,我想使用 OAuth 通过我们现有的 Grails 系统对这个应用程序进行身份验证。grails 系统使用以下链接中的插件设置了 OAuth2 提供程序:

OAuth 提供程序已设置,它确实可以工作,因为我已经测试了如下所示的 URL,并且在授予访问权限后,我确实获得了预期的授权代码:

我遇到的问题是,当我使用谷歌的 IOS 的 GTM OAuth 插件时,我已将其设置如下:

问题是当我运行上面的代码时,它会将我重定向到系统并登录,然后页面出现让我授予对这个应用程序的访问权限,我点击“授权”,应用程序向我显示一个警报视图错误500。

所以我回到 Grails 系统并查看日志以查看发生了什么,我注意到应用程序传入的 url 是:

并且来自系统的错误 500 消息如下所示:

现在,上面的错误会向我暗示,由于某种原因,用户名以某种方式被用作客户端 ID,我不知道为什么,因为用户名和密码正在 grails 系统上“测试”。

任何人都可以就为什么会发生这种情况提供任何建议吗?

提前致谢


***编辑* ****


我已经调试了发送的 HTTP 请求,下面是发送来获取令牌的 RAW 请求:

0 投票
1 回答
731 浏览

ios - 同一应用程序的不同 oauth2 本机/Web 客户端 ID

我正在从本机 iOS 应用程序(使用 gtm-oauth2)和我的网络应用程序访问 Google API,每个应用程序都有不同的客户端 ID。

当我尝试使用由最初生成的客户端 ID 创建的刷新令牌刷新访问令牌时,我收到授权错误。

我不希望用户被要求允许多次访问我的应用程序。

是否可以让两个客户端 ID 互换工作?或者有没有办法在 iOS 平台上使用 Web 的客户端 ID(使用 gtm-oauth2 或不使用)?

0 投票
0 回答
493 浏览

ios - 使用 UIWebView 下载谷歌驱动文件

我想从谷歌驱动器下载或导出文件。

  1. 用户在 UIWebView 上登录到谷歌驱动器
  2. 谷歌驱动器打开,用户选择任何特定文件,我得到一个特定选定文件的下载链接。
  3. 我在以下代码中使用该链接代替@“Google Drive file Url”:

-(BOOL)webView:(UIWebView *)awebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{

}