public function signRequest()

in src/Signature/SignatureV2.php [14:44]


    public function signRequest(
        RequestInterface $request,
        CredentialsInterface $credentials
    ) {
        $params = Psr7\parse_query($request->getBody());
        $params['Timestamp'] = gmdate('c');
        $params['SignatureVersion'] = '2';
        $params['SignatureMethod'] = 'HmacSHA256';
        $params['AWSAccessKeyId'] = $credentials->getAccessKeyId();

        if ($token = $credentials->getSecurityToken()) {
            $params['SecurityToken'] = $token;
        }

        // build string to sign
        $sign = $request->getMethod() . "\n"
            . $request->getHeaderLine('Host') . "\n"
            . '/' . "\n"
            . $this->getCanonicalizedParameterString($params);

        $params['Signature'] = base64_encode(
            hash_hmac(
                'sha256',
                $sign,
                $credentials->getSecretKey(),
                true
            )
        );

        return $request->withBody(Psr7\stream_for(http_build_query($params)));
    }