2014-11-03 250 views
0

我们的应用程序已经实现oAuth以从Intuit获取访问令牌和秘密,并且一切正常。oAuth:请求令牌使当前访问令牌无效

该应用考虑到用户可能有多个QBO公司。因此,当用户试图授权访问一家公司时,我们的应用会检查该公司是否已获得授权,如果已授权,该应用可以让用户知道并且不会尝试重新授权该公司。

我们实施的方式如下。当授权过程开始时,我们发送或应用已被授权的公司列表(领域ID)。用户点击“连接到QuickBooks”按钮并按照向导。应用程序在内部获取请求令牌,并准备好发出访问令牌请求。请求令牌请求获取我们的领域ID,以便我们可以将其与已授权公司的列表进行比较。如果公司已被授权,我们不会请求访问令牌,并让用户知道该公司已被授权。

直到一个星期前,这用于工作-i.e.在这种情况下,因为应用程序不会对访问令牌发出请求,所以应用程序具有的访问令牌仍然有效。然而,现在有些东西似乎发生了变化,因此当应用程序获取请求令牌时,即使它不询问访问令牌,现有的访问令牌也不再有效,用户需要重新授权公司。

oAuth流程实施中是否发生了一些变化?

谢谢

回答

0

OAuth令牌有效期为180天(默认情况下)。所以,请检查现有令牌是否超过180天。如果是这样,请使用'reconnect api'。

参考 - https://developer.intuit.com/v2/docs/0050_quickbooks_api/0020_authentication_and_authorization/oauth_management_api#Reconnect

一个建议 -

可以实现SSO(使用向导 '与直觉登录')在你的应用程序。通过这种方式,您可以将最终用户的SSO URL与其公司的OAuth令牌相关联,同时将其保留在应用的数据库中。第一次,终端用户将通过C2QB流程生成令牌。每当最终用户登录时,您的应用程序都会使用他的SSO标识符检索他的oauth标记(如果应用程序已经建立了连接,应该显示“断开”选项而不是C2QB)。

谢谢