PHP Conference Japan 2024

OAuth::generateSignature

(无版本信息可用,可能仅存在于 Git 中)

OAuth::generateSignature生成签名

描述

public OAuth::generateSignature(string $http_method, string $url, mixed $extra_parameters = ?): string|false

基于最终 HTTP 方法、URL 和参数字符串/数组生成签名。

参数

http_method

请求的 HTTP 方法

url

请求的 URL

extra_parameters

附加参数的字符串或数组。

返回值

包含生成的签名的字符串,或在失败时返回false

添加注释

用户贡献的注释 1 条注释

-2
vk221000 at gmail dot com
2 年前
<?php
/**
* 获取 Oauth 1.0 请求的签名
*
* @param string $url 要发送请求的 url。
* @param string $consumer_key 请求凭据的消费者密钥。
* @param string $consumer_secret 请求凭据的消费者密钥。
* @param string $method GET、POST 等方法。
* @param array|false $params 请求期间要发送的参数。
* @since 1.0.0
* @return string
*/
public function get_signature( $url, $consumer_key, $consumer_secret, $method = 'GET', $params = false ) {
$nonce = mt_rand();
$timestamp = time();
$oauth = new \OAuth( $consumer_key, $consumer_secret );
$oauth->setTimestamp( $timestamp );
$oauth->setNonce( $nonce );
$sig = $oauth->generateSignature( $method, $url, $params );

$header = 'OAuth ' .
'oauth_consumer_key=' . $consumer_key .
',oauth_signature_method="HMAC-SHA1"' .
',oauth_nonce="'. $nonce . '"' .
',oauth_timestamp="' . $timestamp . '"'.
',oauth_version="1.0"'.
',oauth_signature="' . urlencode( $sig ) . '"'
;
return
$header;
}
?>
To Top