# Parâmetros de assinatura do Discourse em webhooks

**URL:** <https://meta.discourse.org/t/discourse-signing-parameters-in-webhooks/134415>\
**Category:** Feature\
**Created:** [26 Novembro , 2019 05:11 UTC](https://meta.discourse.org/t/discourse-signing-parameters-in-webhooks/134415 "2019-11-26T05:11:13Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)\
**Post date:** [26 Novembro , 2019 17:02 UTC](https://meta.discourse.org/t/discourse-signing-parameters-in-webhooks/134415/2 "2019-11-26T17:02:25Z")

</div>

> [@EGreg](#):
>
> ou pelo menos uma chave secreta simétrica,

A chave secreta do Webhook se aproxima do que você está procurando? Veja como o plugin [WP Discourse](https://github.com/discourse/wp-discourse) a verifica em relação à Chave Secreta do Webhook definida no WordPress:

```php
public function verify_discourse_webhook_request( $data ) {
	$options = $this->get_options();
	// O X-Discourse-Event-Signature consiste em 'sha256=' . hash HMAC do payload bruto.
	// É gerado calculando `hash_hmac( 'sha256', $payload, $secret )`.
	$sig = substr( $data->get_header( 'X-Discourse-Event-Signature' ), 7 );
	if ( $sig ) {
		$payload = $data->get_body();
		// Chave usada para verificar a solicitação - uma chave correspondente precisa ser definida no webhook do Discourse.
		$secret = ! empty( $options['webhook-secret'] ) ? $options['webhook-secret'] : '';

		if ( ! $secret ) {

			return new \WP_Error( 'discourse_webhook_configuration_error', 'A chave secreta do webhook não foi definida.' );
		}

		if ( hash_hmac( 'sha256', $payload, $secret ) === $sig ) {

			return $data;
		} else {

			return new \WP_Error( 'discourse_webhook_authentication_error', 'Erro na solicitação do Webhook do Discourse: as assinaturas não correspondem.' );
		}
	}

	return new \WP_Error( 'discourse_webhook_authentication_error', 'Erro na solicitação do Webhook do Discourse: o X-Discourse-Event-Signature não foi definido para a solicitação.' );
}

```

---

_[View the full topic](https://meta.discourse.org/t/discourse-signing-parameters-in-webhooks/134415)._
