我正在开发一个项目,其中后台 crons 创建发票,我想将它们添加到我在后端创建的 Quickbook 帐户中,所以问题是我想仅使用客户端 ID 和秘密参与来访问 api。
如何在无需用户交互且仅通过客户端 ID 和密码的情况下验证我的 Quickbook Intuit api 访问?
你不能。但你也不需要。您在使用时误解了 OAuth v2 的工作原理refresh token
型补助金。
OAuth v2 的方式refresh token
赠款作品是这样的——
- 开发商经历了one-timeUI流程获取
client ID
and client secret
,并定义回调 URL -https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0#download-the-oauth-library
- 拥有该物品的人
QuickBooks Online
帐户经过one-time and 只有一次基于 UI 的连接过程,交换client ID
and client secret
for an authorization code
,然后对于access token
and refresh token
- https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0#step-1-prepare-authorization-request
- 你的代码stores开放认证
access
and refresh tokens
.
现在,您可以运行您的cron
随时随地工作,使用存储的access
and refresh tokens
.
在某个时候,你会得到一个401
Intuit 的回应 - 这意味着您的access token
已过期(仅1小时有效)。当这个情况发生时:
- 进行 API 调用以刷新
access token
- https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0#refresh-the-token
-
Store新的
access token
和新的refresh token
(您可能会或可能不会取回新的刷新令牌,因此您应该只存储每次取回的内容)
- 再次调用API,就会成功
根据需要随时重复您的 cron 进程。
重申一下 - 基于 UI 的身份验证过程是one-time and 仅一次。在那之后one-time您存储令牌的进程,并且可以在需要时从后台/cron 进程进行调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)