joomla/oauth1

Joomla OAuth1 包

3.0.0 2023-10-08 13:31 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version License

使用 OAuth1 包

OAuth1 包支持 OAuth 1.0 和 1.0a 协议版本。客户端简化了授权的 RESTful HTTP 请求。您可以在 http://tools.ietf.org/html/rfc5849 找到 OAuth RFC。

客户端是抽象的,必须扩展并实现两个抽象方法。这些方法是 verifyCredentials 和 validateResponse

  • verifyCredentials 用于检查现有的访问令牌是否仍然有效。服务器可能有不同的测试访问令牌有效性的方式,例如 Twitter 有一个特定的 URL 用于此。访问令牌可能无效的几个原因包括:令牌在一段时间后过期,用户更改密码使访问令牌无效,用户取消授权您的应用,用户登出。
  • validateResponse 方法用于检查响应代码。该方法抽象,因为服务器可能有不同的响应错误体。

默认情况下,客户端将充当 OAuth 1.0a 客户端。如果您需要一个 OAuth 1.0 客户端,则必须将构造函数 $version 参数设置为 '1.0'。客户端需要额外的选项,这可以通过注入到 Registry 对象中来实现

use Joomla\Oauth1\Client;
use Joomla\Registry\Registry;

$options = new Registry;
$options->set('consumer_key', $key);
$options->set('consumer_secret', $secret);
$options->set('callback', $my_url);
$options->set('accessTokenURL', $accessToken);
$options->set('authenticateURL', $authenticate);
$options->set('authoriseURL', $authorise);
$options->set('requestTokenURL', $requestToken);

// Call the Client constructor.
parent::__construct($this->options);

默认情况下,您必须在应用程序中手动设置和发送头信息,但如果您希望客户端自动完成此操作,则可以将 Registry 选项 'sendheaders' 设置为 true。

$options->set('sendheaders', true);

现在您可以认证用户,并请求用户授权您的应用程序以获取访问令牌,但如果您已存储访问令牌,则可以设置它,如果它仍然有效,则您的应用程序将使用它。

// Set the stored access token.
$oauth->setToken($token);

$access_token = $oauth->authenticate();

当调用 authenticate() 方法时,您的存储访问令牌仅在它有效时才会使用,如果没有访问令牌或存储的令牌无效,则将创建一个新的。该方法将返回将用于的有效访问令牌。

现在您可以使用 oauthRequest 方法执行授权请求。

更完整的示例

请参阅 Twitter 和 LinkedIn 包的示例,以了解更多关于 OAuth1 包的信息。

TODO:在此包合并后,在此处添加 Twitter 和 LinkedIn 包的链接。

更多信息

以下资源包含更多信息

通过 Composer 安装

"joomla/oauth1": "~3.0" 添加到 composer.json 中的 require 块,然后运行 composer install

{
	"require": {
		"joomla/oauth1": "~3.0"
	}
}

或者,您可以直接在命令行中运行以下命令

composer require joomla/oauth1 "~3.0"