1
0
mirror of https://github.com/spacebarchat/server.git synced 2024-11-25 11:43:07 +01:00

Fix identify throwing on invalid token instead of closing with auth failed close code

This commit is contained in:
Madeline 2023-09-02 21:05:27 +10:00
parent 2fc3c5dbd4
commit 09f5b4f0bb
No known key found for this signature in database
GPG Key ID: 1958E017C36F2E47

View File

@ -60,6 +60,14 @@ import { check } from "./instanceOf";
// TODO: user sharding
// TODO: check privileged intents, if defined in the config
const tryGetUserFromToken = async (...args: Parameters<typeof checkToken>) => {
try {
return (await checkToken(...args)).user;
} catch (e) {
return null;
}
};
export async function onIdentify(this: WebSocket, data: Payload) {
if (this.user_id) {
// we've already identified
@ -74,7 +82,7 @@ export async function onIdentify(this: WebSocket, data: Payload) {
this.capabilities = new Capabilities(identify.capabilities || 0);
const { user } = await checkToken(identify.token, {
const user = await tryGetUserFromToken(identify.token, {
relations: ["relationships", "relationships.to", "settings"],
select: [...PrivateUserProjection, "relationships"],
});