yii\authclient\OAuth1::signRequest PHP Method

signRequest() public method

Sign given request with [[signatureMethod]].
Since: 2.1 this method is public.
public signRequest ( Request $request, OAuthToken | null $token = null )
$request yii\httpclient\Request request instance.
$token OAuthToken | null OAuth token to be used for signature, if not set [[accessToken]] will be used.
    public function signRequest($request, $token = null)
    {
        $params = $request->getData();
        if (isset($params['oauth_signature_method'])) {
            // avoid double sign of request
            return;
        }
        if (empty($params)) {
            $params = $this->generateCommonRequestParams();
        } else {
            $params = array_merge($this->generateCommonRequestParams(), $params);
        }
        $url = $request->getFullUrl();
        $signatureMethod = $this->getSignatureMethod();
        $params['oauth_signature_method'] = $signatureMethod->getName();
        $signatureBaseString = $this->composeSignatureBaseString($request->getMethod(), $url, $params);
        $signatureKey = $this->composeSignatureKey($token);
        $params['oauth_signature'] = $signatureMethod->generateSignature($signatureBaseString, $signatureKey);
        $request->setData($params);
        if ($this->authorizationHeaderMethods === null || in_array(strtoupper($request->getMethod()), array_map('strtoupper', $this->authorizationHeaderMethods), true)) {
            $authorizationHeader = $this->composeAuthorizationHeader($params);
            if (!empty($authorizationHeader)) {
                $request->addHeaders($authorizationHeader);
            }
        }
    }