lecoffre-back-mini/logs/backend.out
NicolasCantu 125e9ac923 fix(idnot): resolve callback 502 error - add /authorized-client route
- Add GET /authorized-client route in backend (same handler as /idnot/callback)
- Update nginx lecoffreio.4nkweb.com config to proxy /authorized-client to backend
- Add nginx effective config snapshot
- Document resolution in docs/

Resolves: idnot callback 502 error on lecoffreio.4nkweb.com/authorized-client
Test: Route now returns 500 'State expired' (expected for old state) instead of 502

[skip ci]
2025-09-24 22:12:51 +02:00

129 lines
7.1 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[dotenv@17.2.2] injecting env (42) from .env -- tip: 📡 auto-backup env with Radar: https://dotenvx.com/radar
[INFO] 2025-09-24T20:11:27.763Z Initializing Signer service
Server started on port 8080
✅ Connected to SDK Signer server
[INFO] 2025-09-24T20:11:27.802Z Signer connected
[INFO] 2025-09-24T20:11:27.802Z Signer connected
[INFO] 2025-09-24T20:11:27.803Z Signer service initialized
[IdNotCallback] incoming request {
originalUrl: '/authorized-client?code=test&state=test',
method: 'GET',
query: {
code_present: true,
code_length: 4,
state_present: true,
state_length: 4
},
headers: {
host: 'localhost:8080',
'x-forwarded-for': undefined,
'x-forwarded-proto': undefined
}
}
❌ [ERROR] 2025-09-24T20:11:30.449Z Unhandled error
────────────────────────────────────────────────────────────────────────────────
{
error: {
message: 'Invalid state format',
name: 'Error',
stack: 'Error: Invalid state format\n' +
' at Object.verifyState (/home/ank/dev/lecoffre-back-mini/dist/services/state.service.js:70:19)\n' +
' at /home/ank/dev/lecoffre-back-mini/dist/handlers/idnot-callback.handl'... 1454 more characters
},
request: {
body: {},
ip: '::1',
method: 'GET',
url: '/authorized-client?code=test&state=test',
userAgent: 'curl/7.74.0'
},
requestId: 'req_1758744690445_bnzxksyst'
}
❌ [ERROR] 2025-09-24T20:11:30.454Z HTTP GET /authorized-client?code=test&state=test - 500
────────────────────────────────────────────────────────────────────────────────
{
duration: 8,
request: {
ip: '::1',
method: 'GET',
url: '/authorized-client?code=test&state=test',
userAgent: 'curl/7.74.0'
},
requestId: 'req_1758744690445_bnzxksyst',
response: {
statusCode: 500
}
}
Server error: Device not paired
Full error response: {
"type": "ERROR",
"error": "Device not paired",
"messageId": "msg_1758744717783_97sau1bq8"
}
❌ [ERROR] 2025-09-24T20:11:57.802Z Signer WebSocket error
────────────────────────────────────────────────────────────────────────────────
{
error: 'Device not paired'
}
❌ [ERROR] 2025-09-24T20:11:57.803Z Signer connection error
────────────────────────────────────────────────────────────────────────────────
{
error: 'Device not paired'
}
⚠️ [WARN] 2025-09-24T20:11:57.803Z Signer disconnected - reconnecting...
⚠️ [WARN] 2025-09-24T20:11:57.803Z Signer disconnected
⚠️ [WARN] 2025-09-24T20:11:57.804Z Signer health check failed - connection may be stale
────────────────────────────────────────────────────────────────────────────────
{
error: 'Server error for GET_PAIRING_ID: Device not paired'
}
[IdNotCallback] incoming request {
originalUrl: '/authorized-client?code=eyzP3g1U9rR_eU8posVgD-XrJHNyhgcf7Act7o2BLu24p1Z5BvQc_29RVrF8CKkZhjKsvXLxN9cUISi34ZVArPLYyM01CYe3Uz5NGYg8xS5yzwP2JHkO-jUXIgHEIvZh0tHXACthl0LW1SZ2oZDvMNzOsutgMM6K51SOkgdQaE73YL4TaMD7xemsEvduXR31EoturtACt49vF2_UMcEcUawDDGuuzRobwEpsiMbCP92fc_9i_TRlEwB-1Zx4wP0R4Gv_J0S544ceyPhEMFZcQN0Xn2fkpdpyd27_c3tUug-AENpFit25EBfy6dk2JyifWaKGLJVqqTjzemNbcGtw6Cx-xE8_Warl3MjVks0eRDpnHSzPWKvNfceCr82W7j_19OodAZk8yMSOA4PPeeyytvL5AG_iHklhQ7z3YnP3XrKbIYWMeRFwvSlrHUe5ubEKwma24OlK269veQW_4R1mokvl9iNgFt6xQ8T398SQend9AdAEC75WKl0PKFraVI69jyF1DoqzQrZKqESsk1oLpvSLYslklSNQKsKB8cxx4qz2H_HPlf0izqhwlu_Kyn_WHhMcqxvNSGGdZ2en_dT2nweT3Q8kEXN1mItZIZugSIU&state=eyJuZXh0X3VybCI6Imh0dHBzOi8vZGV2NC40bmt3ZWIuY29tL2F1dGhvcml6ZWQtY2xpZW50Iiwibm9uY2UiOiJjOGYwYTliNWQxMDE0NmRkNThlZGQ4NDk1ZjBlNjM2YSIsInRzIjoxNzU4NzQ0NDgyOTQwfQ.TsvjFvbs3N72YvzsHv2aapYyyn2M8kxPZgDbZz9AY6M',
method: 'HEAD',
query: {
code_present: true,
code_length: 619,
state_present: true,
state_length: 202
},
headers: {
host: 'lecoffreio.4nkweb.com',
'x-forwarded-for': '31.33.24.235',
'x-forwarded-proto': 'https'
}
}
❌ [ERROR] 2025-09-24T20:12:18.286Z Unhandled error
────────────────────────────────────────────────────────────────────────────────
{
error: {
message: 'State expired',
name: 'Error',
stack: 'Error: State expired\n' +
' at Object.verifyState (/home/ank/dev/lecoffre-back-mini/dist/services/state.service.js:81:19)\n' +
' at /home/ank/dev/lecoffre-back-mini/dist/handlers/idnot-callback.handlers.js:'... 1447 more characters
},
request: {
body: {},
ip: '::ffff:127.0.0.1',
method: 'HEAD',
url: '/authorized-client?code=eyzP3g1U9rR_eU8posVgD-XrJHNyhgcf7Act7o2BLu24p1Z5BvQc_29RVrF8CKkZhjKsvXLxN9cUISi34ZVArPLYyM01CYe3Uz5NGYg8xS5yzwP2JHkO-jUXIgHEIvZh0tHXACthl0LW1SZ2oZDvMNzOsutgMM6K51SOkgdQaE73YL4T'... 652 more characters,
userAgent: 'curl/7.74.0'
},
requestId: 'req_1758744738283_abyo6gg8a'
}
❌ [ERROR] 2025-09-24T20:12:18.287Z HTTP HEAD /authorized-client?code=eyzP3g1U9rR_eU8posVgD-XrJHNyhgcf7Act7o2BLu24p1Z5BvQc_29RVrF8CKkZhjKsvXLxN9cUISi34ZVArPLYyM01CYe3Uz5NGYg8xS5yzwP2JHkO-jUXIgHEIvZh0tHXACthl0LW1SZ2oZDvMNzOsutgMM6K51SOkgdQaE73YL4TaMD7xemsEvduXR31EoturtACt49vF2_UMcEcUawDDGuuzRobwEpsiMbCP92fc_9i_TRlEwB-1Zx4wP0R4Gv_J0S544ceyPhEMFZcQN0Xn2fkpdpyd27_c3tUug-AENpFit25EBfy6dk2JyifWaKGLJVqqTjzemNbcGtw6Cx-xE8_Warl3MjVks0eRDpnHSzPWKvNfceCr82W7j_19OodAZk8yMSOA4PPeeyytvL5AG_iHklhQ7z3YnP3XrKbIYWMeRFwvSlrHUe5ubEKwma24OlK269veQW_4R1mokvl9iNgFt6xQ8T398SQend9AdAEC75WKl0PKFraVI69jyF1DoqzQrZKqESsk1oLpvSLYslklSNQKsKB8cxx4qz2H_HPlf0izqhwlu_Kyn_WHhMcqxvNSGGdZ2en_dT2nweT3Q8kEXN1mItZIZugSIU&state=eyJuZXh0X3VybCI6Imh0dHBzOi8vZGV2NC40bmt3ZWIuY29tL2F1dGhvcml6ZWQtY2xpZW50Iiwibm9uY2UiOiJjOGYwYTliNWQxMDE0NmRkNThlZGQ4NDk1ZjBlNjM2YSIsInRzIjoxNzU4NzQ0NDgyOTQwfQ.TsvjFvbs3N72YvzsHv2aapYyyn2M8kxPZgDbZz9AY6M - 500
────────────────────────────────────────────────────────────────────────────────
{
duration: 4,
request: {
ip: '::ffff:127.0.0.1',
method: 'HEAD',
url: '/authorized-client?code=eyzP3g1U9rR_eU8posVgD-XrJHNyhgcf7Act7o2BLu24p1Z5BvQc_29RVrF8CKkZhjKsvXLxN9cUISi34ZVArPLYyM01CYe3Uz5NGYg8xS5yzwP2JHkO-jUXIgHEIvZh0tHXACthl0LW1SZ2oZDvMNzOsutgMM6K51SOkgdQaE73YL4T'... 652 more characters,
userAgent: 'curl/7.74.0'
},
requestId: 'req_1758744738283_abyo6gg8a',
response: {
statusCode: 500
}
}