- 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]
129 lines
7.1 KiB
Plaintext
129 lines
7.1 KiB
Plaintext
[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
|
||
}
|
||
}
|