joomla / oauth1
Joomla OAuth1 包
Requires
- php: ^8.1.0
- joomla/application: ^3.0
- joomla/http: ^3.0
- joomla/input: ^3.0
- joomla/registry: ^3.0
- joomla/session: ^3.0
- joomla/uri: ^3.0
Requires (Dev)
- joomla/event: ^3.0
- joomla/test: ^3.0
- phan/phan: ^5.4.2
- phpstan/phpstan: ^1.10.7
- phpunit/phpunit: ^9.5.28
- squizlabs/php_codesniffer: ^3.7.2
This package is auto-updated.
Last update: 2024-09-03 21:58:17 UTC
README
使用 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"