Application crashes when refresh token returns an error
@compulim ci sta già lavorando.
Dal 24/7/2024.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
If tokens/refresh returns an error, the application crashes, and there is no way to catch and handle it properly.
Reproduced by:
import { DirectLine, ConnectionStatus } from 'botframework-directlinejs';
import WebSocket, { WebSocketServer } from 'ws';
import nock from 'nock';
import xhr2 from 'xhr2';
global.XMLHttpRequest = xhr2;
global.WebSocket = WebSocket;
const wss = new WebSocketServer({ port: 2222 });
wss.on('connection', function connection(ws) {
ws.on('error', console.error);
ws.send('{"activities": []}');
});
nock('https://directline.botframework.com')
.persist()
.post(uri => uri.startsWith('/v3/directline/conversations'))
.reply(
200,
JSON.stringify({
conversationId: '123',
token: '456',
streamUrl: 'ws://localhost:2222'
})
)
.post(uri => uri.includes('/refresh'))
.reply(403);
const directLine = new DirectLine({ token: '456' });
directLine.activity$
.subscribe(
(activity) => console.log('Activity received: ', activity),
(err) => console.error('**1 Error: ', err)
);
directLine.connectionStatus$
.subscribe(
(connectionStatus) => console.log('DirectLine status: ' + ConnectionStatus[connectionStatus]),
(err) => console.error('**2 Error: ', err)
);
process.on('uncaughtException', (err) => {
console.error('**3 Error: ', err);
process.exit(1);
});
If you don't want to wait 15 minutes, reduce the hardcoded value of lifetimeRefreshToken :)
Output:
DirectLine status: Connecting
DirectLine status: Online
DirectLine status: ExpiredToken
DirectLine status: ExpiredToken
**3 Error: [AjaxError: ajax error 403] {
xhr: <ref *1> XMLHttpRequest {
onloadstart: null,
onprogress: null,
onabort: null,
onerror: null,
onload: null,
ontimeout: [Function: xhrTimeout] {
request: [Object],
subscriber: [AjaxSubscriber],
progressSubscriber: undefined
},
onloadend: null,
_listeners: {},
onreadystatechange: [Function: xhrReadyStateChange] {
subscriber: [AjaxSubscriber],
progressSubscriber: undefined,
request: [Object]
},
_anonymous: undefined,
readyState: 4,
response: null,
responseText: null,
responseType: 'json',
responseURL: 'https://directline.botframework.com/v3/directline/tokens/refresh',
status: 403,
statusText: 'Forbidden',
...
- Lingua principale
- TypeScript
- Stelle
- 199
- Fork
- 133
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/BotFramework-DirectLineJS
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
microsoft/BotFramework-DirectLineJS#432 · 1 reazione ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
microsoft/BotFramework-DirectLineJS#424 · 3 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
microsoft/BotFramework-DirectLineJS#418 · 7 commenti · 7 reazioni ·
Tutte le issue di microsoft/BotFramework-DirectLineJS
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
ontola/atomic-server#1625 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
melgarafael/DeskcommCRM#1451 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
-
bug via-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
bot:ai-assisted component:compact-js status:untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
midnightntwrk/midnight-sdk#403 ·