bmwcarit/silex-jira-oauth-provider

一个允许使用Atlassian JIRA进行OAuth认证的Silex服务提供程序

v1.0.1 2015-10-27 16:28 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:12:32 UTC


README

Silex JIRA OAuth提供程序提供了一个简单的机制,使您的应用程序能够使用[Atlassian JIRA REST API](https://developer.atlassian.com/display/JIRADEV/JIRA+REST+APIs)而无需传输密码。而不是使用基本认证,它使用JIRA的OAuth界面创建一个访问令牌。然后可以使用Guzzle HTTP客户端在JIRA中检索、修改和创建问题。

先决条件

为了使提供程序正常工作,您需要以下内容

安装

您可以通过Composer安装silex jira oauth提供程序

composer require bmwcarit/silex-jira-oauth-provider "dev-master"

由于提供程序包含必要的bug修复,因此当前使用guzzlehttp/oauth-provider的dev-master版本。为了能够使用Composer提取此版本,您需要将项目的最小稳定性设置为"dev"

{
    "minimum-stability": "dev"
}

使用方法

在您可以使用提供程序之前,您需要将其配置并注册到您的silex应用程序中。以下代码显示了必要的最常见配置选项

$app->register(new JiraOAuthServiceProvider(array(
	'base_url' => 'https://www.yourcorp.com/jira/',
	'private_key' => __DIR__ . '/jira.pem',
	'consumer_key' => 'yoursecretkey',
)));

一旦提供程序被注册,您的应用程序将在/jira上挂载一个新的控制器。要开始认证过程,只需打开名为jira-connect的路由。您可以在代码中重定向

$app->redirect($app['url_generator']->generate('jira-connect'));

或者您可以在twig模板中添加链接。

<a href="{{ path('jira-connect') }}">Click here to authenticate with Jira</a>

认证成功后,提供程序将重定向到名为home的路由,如果它不存在,则重定向到silex应用程序的/

您可以通过添加包含路由名称或URL的重定向参数来更改此行为,提供程序应在成功认证后重定向到该参数。例如

$app->redirect($app['url_generator']->generate('jira-connect',
										array('redirect' => 'yourroute')));

或者在您的twig模板中

<a href="{{ path('jira-connect', {redirect: 'yourroute'}) }}">
	Click here to authenticate with Jira</a>

认证成功后,您可以使用可用的Guzzle HTTP客户端和[Atlassian JIRA REST API](https://developer.atlassian.com/display/JIRADEV/JIRA+REST+APIs)。例如

$app['jira.oauth.client']->get('rest/api/2/priority');

配置选项

  • base_url: 您的Atlassian JIRA服务器的基URL。(默认值:https://:8181/
  • oauth_base_url: oauth插件的路径。Atlassian JIRA默认在此处提供OAuth API。(默认值:plugins/servlet/oauth/
  • private_key: 认证您的应用程序与Atlassian JIRA的私钥文件的路径。(默认值:''
  • consumer_key: 包含用于认证您的应用程序与Atlassian JIRA的消费者密钥的字符串。(默认值:''
  • url_prefix.request_token: 请求新令牌的URL前缀。该前缀通过base_urloauth_base_url构造。此选项的默认值已与JIRA的默认值匹配。(默认值: request-token
  • url_prefix.authorization: 构造授权令牌的URL的前缀。该前缀通过base_urloauth_base_url构造。此选项的默认值已与JIRA的默认值匹配。(默认值: authorize?oauth_token=%s
  • url_prefix.access_token: 请求访问令牌的URL前缀。该前缀通过base_urloauth_base_url构造。此选项的默认值已与JIRA的默认值匹配。(默认值: access-token
  • route_name.callback: 处理来自Atlassian JIRA的回调的路由名称。当用户允许应用程序访问JIRA时,回调将被传输到JIRA,用户将被重定向到此URL。(默认值: jira-callback
  • route_name.default_redirect: 成功认证后重定向用户的路由名称。此路由仅在未在jira-connect路由上设置重定向参数时使用。(默认值: home
  • automount: 如果设置为true,则提供者将自动将jira-connectjira-callback路由挂载到/jira下。如果您将其设置为false,请确保您自己挂载控制器。为此,请简单地调用$app->mount('/yourpath', $app['jira.controller.provider']);默认值: true

许可证

silex-jira-oauth-provider遵循MIT许可证。

致谢

最初的工作基于Stan Lemon的[JIRA OAuth PHP示例](https://bitbucket.org/atlassian_tutorial/atlassian-oauth-examples/src/d625161454d1ca97b4515c6147b093fac9a68f7e/php/LICENSE?at=default