@@ -33,14 +33,12 @@ export class TrolleyService {
33
33
* @returns A boolean indicating whether the signature is valid.
34
34
*/
35
35
validateSignature ( headers : Request [ 'headers' ] , bodyPayload : string ) : boolean {
36
- if ( ! headers [ TrolleyHeaders . signature ] ) {
36
+ const headerSignature = headers [ TrolleyHeaders . signature ] ?? '' ;
37
+ if ( ! headerSignature || ! headerSignature . match ( / t = \d + , v 1 = [ a - f 0 - 9 ] { 64 } / i) ) {
37
38
return false ;
38
39
}
39
40
40
- const headerSignatureValues = (
41
- headers [ TrolleyHeaders . signature ] ?? ''
42
- ) . split ( ',' ) ;
43
-
41
+ const headerSignatureValues = headerSignature . split ( ',' ) ;
44
42
const t = headerSignatureValues [ 0 ] . split ( '=' ) [ 1 ] ;
45
43
const v1 = headerSignatureValues [ 1 ] . split ( '=' ) [ 1 ] ;
46
44
@@ -59,6 +57,11 @@ export class TrolleyService {
59
57
*/
60
58
async validateUnique ( headers : Request [ 'headers' ] ) : Promise < boolean > {
61
59
const requestId = headers [ TrolleyHeaders . id ] ;
60
+
61
+ if ( ! requestId ) {
62
+ return false ;
63
+ }
64
+
62
65
const whEvent = await this . prisma . trolley_webhook_log . findUnique ( {
63
66
where : { event_id : requestId } ,
64
67
} ) ;
@@ -126,7 +129,6 @@ export class TrolleyService {
126
129
await handler ( body ) ;
127
130
await this . setEventState ( requestId , webhook_status . processed ) ;
128
131
} catch ( e ) {
129
- console . log ( e ) ;
130
132
await this . setEventState ( requestId , webhook_status . error , void 0 , {
131
133
error_message : e . message ?? e ,
132
134
} ) ;
0 commit comments