matthiasrousseau/guzzle-atlassian-connect-middleware

为 Guzzle 定制的 Atlassian Connect 身份验证中间件

1.1.2 2020-02-17 14:33 UTC

README

build Scrutinizer Code Quality

此中间件的目的在于将 Atlassian Connect 身份验证实现为 Guzzle 中间件。因此,您应该阅读 Atlassian Connect 文档 来理解此库中使用的术语。

简要说明:

这是什么

如您所见,Atlassian 的身份验证系统相当复杂,即使是仅对他们的任何产品进行读取访问也是如此。我们创建了这个 Guzzle 中间件,以便帮助我们在一个 Atlassian 产品上进行身份验证。

这并不是什么

  • 一个完整的 Atlassian [name-your-product] 客户端。

使用方法

请参阅此存储库根目录下的 index.php。

实际测试

您想要认证的 Atlassian 产品需要使用某种形式的 webhook 来与您的应用程序进行通信,因此我们创建了最基本的应用程序来展示如何实现。

使用 docker-compose

$ docker-compose up -d

使用主机名而不是端口

如果您已经启动了环境,您已经有了一个正在运行的代理来将 ngrok.dev 和 atlassian-connect.dev 重定向到正确的容器。您只需将这两个域名放入您的 hosts 文件或使用类似 dnsmasq on OSX 的解决方案,但请确保将其重定向到您的 docker-machine IP。

要查找您的 docker machine ip,请使用

$ docker-machine ip [machine-name]

获取您的开发实例

Atlassian 更改了在 Confluence/Jira 上工作的方式,现在要创建插件,您必须获取一个 开发者账户 并创建自己的实例。创建环境的所有步骤都在 文档页面 上定义。

一旦您有权访问自己的 Atlassian Cloud 实例并将其置于开发者模式,我们就可以继续并让实例与我们联系。

将我们的本地应用程序暴露给世界

我们尝试认证的 Atlassian 应用必须向我们发送一些信息,因此我们需要将我们的应用程序暴露在互联网上。这就是为什么我们有一个运行 ngrok 容器的原因。ngrok 是一个应用程序,它将在我们的环境和他们的服务器之间创建隧道,使我们能够从任何地方访问。

现在你应该有一个运行在 ngrok.dev 的 ngrok 容器。连接后,你应该能看到隧道 URL,如果你打开它,还能看到所有隧道流量。

安装我们演示应用程序的 URL 是 https://[your-tunnel-id].eu.ngrok.io/descriptor.json

注意:每次重启 ngrok 容器时,隧道 ID 都会改变,所以每次你都应该重新安装你的插件。我知道,这很糟糕。

代理超时

我们已经设置了 10 分钟的代理超时,这样我们就可以一行一行地操作,不会出现问题;)