@@ -28,3 +28,53 @@ func TestRecoverAuthorityFromSignatureHeaders(t *testing.T) {
2828 assert .Equal (t , int32 (1 ), userId )
2929 assert .Equal (t , "0x7d273271690538cf855e5b3002a0dd8c154bb060" , wallet )
3030}
31+
32+ func TestRequireAuthMiddleware (t * testing.T ) {
33+ // Create a dummy endpoint to test the requireAuthMiddleware
34+ testApp := fiber .New ()
35+ testApp .Get ("/" , app .resolveMyIdMiddleware , app .authMiddleware , app .requireAuthMiddleware , func (c * fiber.Ctx ) error {
36+ return c .SendStatus (fiber .StatusOK )
37+ })
38+
39+ // Unauthorized when no auth headers
40+ req1 := httptest .NewRequest ("GET" , "/" , nil )
41+ res , err := testApp .Test (req1 , - 1 )
42+ assert .NoError (t , err )
43+ assert .Equal (t , fiber .StatusUnauthorized , res .StatusCode )
44+
45+ // Forbidden when not authorized
46+ req2 := httptest .NewRequest ("GET" , "/?user_id=1" , nil )
47+ // wallet: 0x681c616ae836ceca1effe00bd07f2fdbf9a082bc
48+ req2 .Header .Set ("Encoded-Data-Message" , "signature:1745543704165" )
49+ req2 .Header .Set ("Encoded-Data-Signature" , "0x4af765948dccd72026f1059a59c7a6a1172628255d7d387d1590c0fe43961c5908fc6011443805ca0dbd39156300c04dc21bbfa9adce50acea9ad29a7e2fde2a1b" )
50+ res , err = testApp .Test (req2 , - 1 )
51+ assert .NoError (t , err )
52+ assert .Equal (t , fiber .StatusForbidden , res .StatusCode )
53+
54+ // Forbidden when grant is revoked
55+ req3 := httptest .NewRequest ("GET" , "/?user_id=1" , nil )
56+ // wallet: 0xc451c1f8943b575158310552b41230c61844a1c1
57+ req3 .Header .Set ("Encoded-Data-Message" , "signature:1745542789211" )
58+ req3 .Header .Set ("Encoded-Data-Signature" , "0xffd5f92c0d253c7222cd407cf3398fac664530ef968bd4435ea698ba1daee1d73353330848b65d212eeeaae9f41e177e49078c4efa1131e5e517090626f6dd961c" )
59+ res , err = testApp .Test (req3 , - 1 )
60+ assert .NoError (t , err )
61+ assert .Equal (t , fiber .StatusForbidden , res .StatusCode )
62+
63+ // Authorized when grant is approved
64+ req4 := httptest .NewRequest ("GET" , "/?user_id=1" , nil )
65+ // wallet: 0x5f1a372b28956c8363f8bc3a231a6e9e1186ead8
66+ req4 .Header .Set ("Encoded-Data-Message" , "signature:1745544459796" )
67+ req4 .Header .Set ("Encoded-Data-Signature" , "0x1c9cb405d8437d28ff5596918551f7a45f981e81618d65ee10892313292a8c7a325af002231d115b28ca2d244b082abe1bde4a7d9610f8140d3738a9be5c4fd91b" )
68+ res , err = testApp .Test (req4 , - 1 )
69+ assert .NoError (t , err )
70+ assert .Equal (t , fiber .StatusOK , res .StatusCode )
71+
72+ // Authorized when own user
73+ req5 := httptest .NewRequest ("GET" , "/?user_id=1" , nil )
74+ // wallet: 0x7d273271690538cf855e5b3002a0dd8c154bb060
75+ req5 .Header .Set ("Encoded-Data-Message" , "signature:1744763856446" )
76+ req5 .Header .Set ("Encoded-Data-Signature" , "0xbb202be3a7f3a0aa22c1458ef6a3f2f8360fb86791c7b137e8562df0707825c11fa1db01096efd2abc5e6613c4d1e8d4ae1e2b993abdd555fe270c1b17bff0d21c" )
77+ res , err = testApp .Test (req5 , - 1 )
78+ assert .NoError (t , err )
79+ assert .Equal (t , fiber .StatusOK , res .StatusCode )
80+ }
0 commit comments