首页 > 解决方案 > 没有 OAuth2 的 Xero API 身份验证

问题描述

场景

所以我正在构建一个应用程序,它应该向用户显示我的Xero帐户中的数据。用户不应该能够通过 OAuth2 登录到我的 Web 应用程序,这就是为什么我需要独立于用户登录的持久性身份验证令牌。Xero 当前的 API 身份验证实现不允许这样做,并且令牌会在 30 分钟内过期,所以我需要一种方法在后台或使用任何类型的持久令牌(我在他们的文档中看到的不可用)授权

我将LaravelXero Laravel包一起使用,而这个在其核心中使用XeroPHP包作为依赖项。目前我正在使用 Postman 来执行刷新令牌请求,并且我正在手动添加令牌(当然是出于测试目的)。但是,当它投入生产时,情况不应该如此。所以我需要一种方法来为整个应用程序全局“存储”或刷新令牌,并且只使用我的帐户作为 Xero 的授权。

问题总结

我的 Web 应用程序需要从我的Xero 帐户中获取数据(特别是发票数据),并且将在 GUI 中读取此数据的用户(因为我为此目的使用本机 Laravel Auth)不需要 OAuth 令牌化。

如果没有 OAuth2(如果有任何方法),我应该如何实现这一点,或者如果只有我的帐户是应用程序的“全局”帐户,我该如何做到这一点?

标签: phplaravelxero-api

解决方案


其他评论是正确的,有一个初始必需步骤让您代表您调用 API 端点的用户授权您的 API 应用程序。


一旦您获得了他们的有效 token_set(access_token、refresh_token、expiry 等),您就可以安全地存储它并继续代表他们进行 offline_access api 调用。请注意,您必须以编程方式至少每 60 天刷新一次 token_set 以使其保持有效。

我还建议查看 Xero 支持的库以帮助快速入门:

感谢@droopsnoot 链接了解释其工作原理的视频:


推荐阅读