handle authentication errors in stream API

This commit is contained in:
Johann150 2022-07-18 23:32:03 +02:00
parent 0131ec4a58
commit c4e2a222f0
No known key found for this signature in database
GPG key ID: 9EE6577A2A06F8F1

View file

@ -17,10 +17,14 @@ export const initializeStreamingServer = (server: http.Server) => {
ws.on('request', async (request) => {
const q = request.resourceURL.query as ParsedUrlQuery;
// TODO: トークンが間違ってるなどしてauthenticateに失敗したら
// コネクション切断するなりエラーメッセージ返すなりする
// (現状はエラーがキャッチされておらずサーバーのログに流れて邪魔なので)
const [user, app] = await authenticate(request.httpRequest.headers.authorization, q.i);
const [user, app] = await authenticate(request.httpRequest.headers.authorization, q.i)
.catch(err => {
request.reject(403, err.message);
return [];
});
if (typeof user === 'undefined') {
return;
}
if (user?.isSuspended) {
request.reject(400);