diff --git a/src/api/Server.ts b/src/api/Server.ts
index 472ab1d6f..40d2b6dcb 100644
--- a/src/api/Server.ts
+++ b/src/api/Server.ts
@@ -18,15 +18,15 @@
import {
Config,
+ ConnectionConfig,
+ ConnectionLoader,
Email,
- initDatabase,
- initEvent,
JSONReplacer,
- registerRoutes,
Sentry,
WebAuthn,
- ConnectionConfig,
- ConnectionLoader,
+ initDatabase,
+ initEvent,
+ registerRoutes,
} from "@spacebar/util";
import { Request, Response, Router } from "express";
import { Server, ServerOptions } from "lambert-server";
@@ -141,6 +141,10 @@ export class SpacebarServer extends Server {
res.sendFile(path.join(PUBLIC_ASSETS_FOLDER, "index.html")),
);
+ app.get("/verify", (req, res) =>
+ res.sendFile(path.join(PUBLIC_ASSETS_FOLDER, "verify.html")),
+ );
+
this.app.use(ErrorHandler);
Sentry.errorHandler(this.app);
diff --git a/src/api/routes/auth/verify/index.ts b/src/api/routes/auth/verify/index.ts
index 49f742778..32c3f3058 100644
--- a/src/api/routes/auth/verify/index.ts
+++ b/src/api/routes/auth/verify/index.ts
@@ -85,7 +85,7 @@ router.post(
user = userTokenData.user;
} catch {
throw FieldErrors({
- password: {
+ token: {
message: req.t("auth:password_reset.INVALID_TOKEN"),
code: "INVALID_TOKEN",
},
diff --git a/src/connections/BattleNet/index.ts b/src/connections/BattleNet/index.ts
index 4fdfccb16..8f44944cf 100644
--- a/src/connections/BattleNet/index.ts
+++ b/src/connections/BattleNet/index.ts
@@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
-
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
-
+
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
@@ -47,13 +47,15 @@ export default class BattleNetConnection extends Connection {
settings: BattleNetSettings = new BattleNetSettings();
init(): void {
- const settings =
- ConnectionLoader.getConnectionConfig<BattleNetSettings>(
- this.id,
- this.settings,
- );
+ this.settings = ConnectionLoader.getConnectionConfig<BattleNetSettings>(
+ this.id,
+ this.settings,
+ );
- if (settings.enabled && (!settings.clientId || !settings.clientSecret))
+ if (
+ this.settings.enabled &&
+ (!this.settings.clientId || !this.settings.clientSecret)
+ )
throw new Error(`Invalid settings for connection ${this.id}`);
}
diff --git a/src/connections/Discord/index.ts b/src/connections/Discord/index.ts
index 731086f1a..e5508f482 100644
--- a/src/connections/Discord/index.ts
+++ b/src/connections/Discord/index.ts
@@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
-
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
-
+
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
@@ -43,12 +43,15 @@ export default class DiscordConnection extends Connection {
settings: DiscordSettings = new DiscordSettings();
init(): void {
- const settings = ConnectionLoader.getConnectionConfig<DiscordSettings>(
+ this.settings = ConnectionLoader.getConnectionConfig<DiscordSettings>(
this.id,
this.settings,
);
- if (settings.enabled && (!settings.clientId || !settings.clientSecret))
+ if (
+ this.settings.enabled &&
+ (!this.settings.clientId || !this.settings.clientSecret)
+ )
throw new Error(`Invalid settings for connection ${this.id}`);
}
diff --git a/src/connections/EpicGames/index.ts b/src/connections/EpicGames/index.ts
index e5b2d3367..cedfcd0a6 100644
--- a/src/connections/EpicGames/index.ts
+++ b/src/connections/EpicGames/index.ts
@@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
-
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
-
+
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
@@ -53,13 +53,15 @@ export default class EpicGamesConnection extends Connection {
settings: EpicGamesSettings = new EpicGamesSettings();
init(): void {
- const settings =
- ConnectionLoader.getConnectionConfig<EpicGamesSettings>(
- this.id,
- this.settings,
- );
+ this.settings = ConnectionLoader.getConnectionConfig<EpicGamesSettings>(
+ this.id,
+ this.settings,
+ );
- if (settings.enabled && (!settings.clientId || !settings.clientSecret))
+ if (
+ this.settings.enabled &&
+ (!this.settings.clientId || !this.settings.clientSecret)
+ )
throw new Error(`Invalid settings for connection ${this.id}`);
}
diff --git a/src/connections/Facebook/index.ts b/src/connections/Facebook/index.ts
index 2bf26f34f..bcb90b4c6 100644
--- a/src/connections/Facebook/index.ts
+++ b/src/connections/Facebook/index.ts
@@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
-
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
-
+
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
@@ -52,12 +52,15 @@ export default class FacebookConnection extends Connection {
settings: FacebookSettings = new FacebookSettings();
init(): void {
- const settings = ConnectionLoader.getConnectionConfig<FacebookSettings>(
+ this.settings = ConnectionLoader.getConnectionConfig<FacebookSettings>(
this.id,
this.settings,
);
- if (settings.enabled && (!settings.clientId || !settings.clientSecret))
+ if (
+ this.settings.enabled &&
+ (!this.settings.clientId || !this.settings.clientSecret)
+ )
throw new Error(`Invalid settings for connection ${this.id}`);
}
diff --git a/src/connections/GitHub/index.ts b/src/connections/GitHub/index.ts
index 25e5f89f3..78bf510e7 100644
--- a/src/connections/GitHub/index.ts
+++ b/src/connections/GitHub/index.ts
@@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
-
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
-
+
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
@@ -42,12 +42,15 @@ export default class GitHubConnection extends Connection {
settings: GitHubSettings = new GitHubSettings();
init(): void {
- const settings = ConnectionLoader.getConnectionConfig<GitHubSettings>(
+ this.settings = ConnectionLoader.getConnectionConfig<GitHubSettings>(
this.id,
this.settings,
);
- if (settings.enabled && (!settings.clientId || !settings.clientSecret))
+ if (
+ this.settings.enabled &&
+ (!this.settings.clientId || !this.settings.clientSecret)
+ )
throw new Error(`Invalid settings for connection ${this.id}`);
}
diff --git a/src/connections/Reddit/index.ts b/src/connections/Reddit/index.ts
index 149cce02f..0db237312 100644
--- a/src/connections/Reddit/index.ts
+++ b/src/connections/Reddit/index.ts
@@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
-
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
-
+
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
@@ -54,12 +54,15 @@ export default class RedditConnection extends Connection {
settings: RedditSettings = new RedditSettings();
init(): void {
- const settings = ConnectionLoader.getConnectionConfig<RedditSettings>(
+ this.settings = ConnectionLoader.getConnectionConfig<RedditSettings>(
this.id,
this.settings,
);
- if (settings.enabled && (!settings.clientId || !settings.clientSecret))
+ if (
+ this.settings.enabled &&
+ (!this.settings.clientId || !this.settings.clientSecret)
+ )
throw new Error(`Invalid settings for connection ${this.id}`);
}
diff --git a/src/connections/Spotify/index.ts b/src/connections/Spotify/index.ts
index ece404d83..4eb126021 100644
--- a/src/connections/Spotify/index.ts
+++ b/src/connections/Spotify/index.ts
@@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
-
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
-
+
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
@@ -63,12 +63,16 @@ export default class SpotifyConnection extends RefreshableConnection {
* So to prevent spamming the spotify api we disable the ability to refresh.
*/
this.refreshEnabled = false;
- const settings = ConnectionLoader.getConnectionConfig<SpotifySettings>(
+
+ this.settings = ConnectionLoader.getConnectionConfig<SpotifySettings>(
this.id,
this.settings,
);
- if (settings.enabled && (!settings.clientId || !settings.clientSecret))
+ if (
+ this.settings.enabled &&
+ (!this.settings.clientId || !this.settings.clientSecret)
+ )
throw new Error(`Invalid settings for connection ${this.id}`);
}
diff --git a/src/connections/Twitch/index.ts b/src/connections/Twitch/index.ts
index 9a6cea358..953669a1d 100644
--- a/src/connections/Twitch/index.ts
+++ b/src/connections/Twitch/index.ts
@@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
-
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
-
+
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
@@ -55,12 +55,15 @@ export default class TwitchConnection extends RefreshableConnection {
settings: TwitchSettings = new TwitchSettings();
init(): void {
- const settings = ConnectionLoader.getConnectionConfig<TwitchSettings>(
+ this.settings = ConnectionLoader.getConnectionConfig<TwitchSettings>(
this.id,
this.settings,
);
- if (settings.enabled && (!settings.clientId || !settings.clientSecret))
+ if (
+ this.settings.enabled &&
+ (!this.settings.clientId || !this.settings.clientSecret)
+ )
throw new Error(`Invalid settings for connection ${this.id}`);
}
diff --git a/src/connections/Twitter/index.ts b/src/connections/Twitter/index.ts
index 62fd7da18..eba8ceb50 100644
--- a/src/connections/Twitter/index.ts
+++ b/src/connections/Twitter/index.ts
@@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
-
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
-
+
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
@@ -55,12 +55,15 @@ export default class TwitterConnection extends RefreshableConnection {
settings: TwitterSettings = new TwitterSettings();
init(): void {
- const settings = ConnectionLoader.getConnectionConfig<TwitterSettings>(
+ this.settings = ConnectionLoader.getConnectionConfig<TwitterSettings>(
this.id,
this.settings,
);
- if (settings.enabled && (!settings.clientId || !settings.clientSecret))
+ if (
+ this.settings.enabled &&
+ (!this.settings.clientId || !this.settings.clientSecret)
+ )
throw new Error(`Invalid settings for connection ${this.id}`);
}
diff --git a/src/connections/Xbox/index.ts b/src/connections/Xbox/index.ts
index 935ff7ab7..84066def1 100644
--- a/src/connections/Xbox/index.ts
+++ b/src/connections/Xbox/index.ts
@@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
-
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
-
+
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
@@ -62,12 +62,15 @@ export default class XboxConnection extends Connection {
settings: XboxSettings = new XboxSettings();
init(): void {
- const settings = ConnectionLoader.getConnectionConfig<XboxSettings>(
+ this.settings = ConnectionLoader.getConnectionConfig<XboxSettings>(
this.id,
this.settings,
);
- if (settings.enabled && (!settings.clientId || !settings.clientSecret))
+ if (
+ this.settings.enabled &&
+ (!this.settings.clientId || !this.settings.clientSecret)
+ )
throw new Error(`Invalid settings for connection ${this.id}`);
}
diff --git a/src/connections/Youtube/index.ts b/src/connections/Youtube/index.ts
index 844803cf0..38edbb0de 100644
--- a/src/connections/Youtube/index.ts
+++ b/src/connections/Youtube/index.ts
@@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
-
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
-
+
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
@@ -62,12 +62,15 @@ export default class YoutubeConnection extends Connection {
settings: YoutubeSettings = new YoutubeSettings();
init(): void {
- const settings = ConnectionLoader.getConnectionConfig<YoutubeSettings>(
+ this.settings = ConnectionLoader.getConnectionConfig<YoutubeSettings>(
this.id,
this.settings,
);
- if (settings.enabled && (!settings.clientId || !settings.clientSecret))
+ if (
+ this.settings.enabled &&
+ (!this.settings.clientId || !this.settings.clientSecret)
+ )
throw new Error(`Invalid settings for connection ${this.id}`);
}
diff --git a/src/util/util/email/index.ts b/src/util/util/email/index.ts
index d765f5ff5..e3382794b 100644
--- a/src/util/util/email/index.ts
+++ b/src/util/util/email/index.ts
@@ -141,8 +141,9 @@ export const Email: {
*/
generateLink: async function (type, id, email) {
const token = (await generateToken(id, email)) as string;
+ // puyodead1: this is set to api endpoint because the verification page is on the server since no clients have one, and not all 3rd party clients will have one
const instanceUrl =
- Config.get().general.frontPage || "http://localhost:3001";
+ Config.get().api.endpointPublic || "http://localhost:3001";
const link = `${instanceUrl}/${type}#token=${token}`;
return link;
},
|