php - 没有 OAuth2 的 Xero API 身份验证
问题描述
场景
所以我正在构建一个应用程序,它应该向用户显示我的Xero帐户中的数据。用户不应该能够通过 OAuth2 登录到我的 Web 应用程序,这就是为什么我需要独立于用户登录的持久性身份验证令牌。Xero 当前的 API 身份验证实现不允许这样做,并且令牌会在 30 分钟内过期,所以我需要一种方法在后台或使用任何类型的持久令牌(我在他们的文档中看到的不可用)授权)
堆
我将Laravel与Xero Laravel包一起使用,而这个在其核心中使用XeroPHP包作为依赖项。目前我正在使用 Postman 来执行刷新令牌请求,并且我正在手动添加令牌(当然是出于测试目的)。但是,当它投入生产时,情况不应该如此。所以我需要一种方法来为整个应用程序全局“存储”或刷新令牌,并且只使用我的帐户作为 Xero 的授权。
问题总结
我的 Web 应用程序需要从我的Xero 帐户中获取数据(特别是发票数据),并且将在 GUI 中读取此数据的用户(因为我为此目的使用本机 Laravel Auth)不需要 OAuth 令牌化。
如果没有 OAuth2(如果有任何方法),我应该如何实现这一点,或者如果只有我的帐户是应用程序的“全局”帐户,我该如何做到这一点?
解决方案
其他评论是正确的,有一个初始必需步骤让您代表您调用 API 端点的用户授权您的 API 应用程序。
一旦您获得了他们的有效 token_set(access_token、refresh_token、expiry 等),您就可以安全地存储它并继续代表他们进行 offline_access api 调用。请注意,您必须以编程方式至少每 60 天刷新一次 token_set 以使其保持有效。
我还建议查看 Xero 支持的库以帮助快速入门:
感谢@droopsnoot 链接了解释其工作原理的视频:
推荐阅读
- python - 使用 Python 删除文件夹中 2 或 3 个文件中的每一个
- google-sheets - 根据 Google 电子表格中单元格中的值显示消息框
- typescript - 扩展推断的“this”
- java - 客户端可以通过典型 Java Web 服务器上的静态资源(css/javascript 文件)获得哪些特权或权限?
- javascript - 将来自 Axios 的 JSON 响应传递给数据对象但出现错误
- c++ - DirectInput 控制台应用程序
- c - 代码的泛化
- r - 为什么我的 xlabels 在图表之外?
- ibm-cloud-infrastructure - 如何从 Python API 获取 Softlayer 机器上的当前活动事务?
- c++ - 是否可以分别专门研究 typedef 及其基础类型?