|
@@ -57,7 +57,11 @@ class _AppModule extends CoreClass {
|
|
})
|
|
})
|
|
.catch(console.error);
|
|
.catch(console.error);
|
|
|
|
|
|
- const corsOptions = { ...config.get("cors"), credentials: true };
|
|
|
|
|
|
+ const appUrl = `${config.get("url.secure") ? "https" : "http"}://${config.get("url.host")}`;
|
|
|
|
+
|
|
|
|
+ const corsOptions = JSON.parse(JSON.stringify(config.get("cors")));
|
|
|
|
+ corsOptions.origin.push(appUrl);
|
|
|
|
+ corsOptions.credentials = true;
|
|
|
|
|
|
app.use(cors(corsOptions));
|
|
app.use(cors(corsOptions));
|
|
app.options("*", cors(corsOptions));
|
|
app.options("*", cors(corsOptions));
|
|
@@ -67,11 +71,7 @@ class _AppModule extends CoreClass {
|
|
* @param {string} err - custom error message
|
|
* @param {string} err - custom error message
|
|
*/
|
|
*/
|
|
function redirectOnErr(res, err) {
|
|
function redirectOnErr(res, err) {
|
|
- res.redirect(
|
|
|
|
- `${config.get("url.secure") ? "https" : "http"}://${config.get(
|
|
|
|
- "url.host"
|
|
|
|
- )}?err=${encodeURIComponent(err)}`
|
|
|
|
- );
|
|
|
|
|
|
+ res.redirect(`${appUrl}?err=${encodeURIComponent(err)}`);
|
|
}
|
|
}
|
|
|
|
|
|
if (config.get("apis.github.enabled")) {
|
|
if (config.get("apis.github.enabled")) {
|
|
@@ -84,7 +84,10 @@ class _AppModule extends CoreClass {
|
|
null
|
|
null
|
|
);
|
|
);
|
|
|
|
|
|
- const redirectUri = `${config.get("apis.github.redirect_uri")}`;
|
|
|
|
|
|
+ const redirectUri =
|
|
|
|
+ config.get("apis.github.redirect_uri").length > 0
|
|
|
|
+ ? config.get("apis.github.redirect_uri")
|
|
|
|
+ : `${appUrl}/backend/auth/github/authorize/callback`;
|
|
|
|
|
|
app.get("/auth/github/authorize", async (req, res) => {
|
|
app.get("/auth/github/authorize", async (req, res) => {
|
|
if (this.getStatus() !== "READY") {
|
|
if (this.getStatus() !== "READY") {
|
|
@@ -98,7 +101,7 @@ class _AppModule extends CoreClass {
|
|
|
|
|
|
const params = [
|
|
const params = [
|
|
`client_id=${config.get("apis.github.client")}`,
|
|
`client_id=${config.get("apis.github.client")}`,
|
|
- `redirect_uri=${config.get("apis.github.redirect_uri")}`,
|
|
|
|
|
|
+ `redirect_uri=${redirectUri}`,
|
|
`scope=user:email`
|
|
`scope=user:email`
|
|
].join("&");
|
|
].join("&");
|
|
return res.redirect(`https://github.com/login/oauth/authorize?${params}`);
|
|
return res.redirect(`https://github.com/login/oauth/authorize?${params}`);
|
|
@@ -116,7 +119,7 @@ class _AppModule extends CoreClass {
|
|
|
|
|
|
const params = [
|
|
const params = [
|
|
`client_id=${config.get("apis.github.client")}`,
|
|
`client_id=${config.get("apis.github.client")}`,
|
|
- `redirect_uri=${config.get("apis.github.redirect_uri")}`,
|
|
|
|
|
|
+ `redirect_uri=${redirectUri}`,
|
|
`scope=user:email`,
|
|
`scope=user:email`,
|
|
`state=${req.cookies[SIDname]}`
|
|
`state=${req.cookies[SIDname]}`
|
|
].join("&");
|
|
].join("&");
|
|
@@ -226,11 +229,7 @@ class _AppModule extends CoreClass {
|
|
value: { userId: user._id }
|
|
value: { userId: user._id }
|
|
});
|
|
});
|
|
|
|
|
|
- res.redirect(
|
|
|
|
- `${config.get("url.secure") ? "https" : "http"}://${config.get(
|
|
|
|
- "url.host"
|
|
|
|
- )}/settings?tab=security`
|
|
|
|
- );
|
|
|
|
|
|
+ res.redirect(`${appUrl}/settings?tab=security`);
|
|
}
|
|
}
|
|
],
|
|
],
|
|
next
|
|
next
|
|
@@ -447,9 +446,7 @@ class _AppModule extends CoreClass {
|
|
`User "${userId}" successfully authorized with GitHub.`
|
|
`User "${userId}" successfully authorized with GitHub.`
|
|
);
|
|
);
|
|
|
|
|
|
- res.redirect(
|
|
|
|
- `${config.get("url.secure") ? "https" : "http"}://${config.get("url.host")}/`
|
|
|
|
- );
|
|
|
|
|
|
+ res.redirect(appUrl);
|
|
})
|
|
})
|
|
.catch(err => redirectOnErr(res, err.message));
|
|
.catch(err => redirectOnErr(res, err.message));
|
|
}
|
|
}
|
|
@@ -512,11 +509,7 @@ class _AppModule extends CoreClass {
|
|
|
|
|
|
this.log("INFO", "VERIFY_EMAIL", `Successfully verified email.`);
|
|
this.log("INFO", "VERIFY_EMAIL", `Successfully verified email.`);
|
|
|
|
|
|
- return res.redirect(
|
|
|
|
- `${config.get("url.secure") ? "https" : "http"}://${config.get(
|
|
|
|
- "url.host"
|
|
|
|
- )}?toast=Thank you for verifying your email`
|
|
|
|
- );
|
|
|
|
|
|
+ return res.redirect(`${appUrl}?toast=Thank you for verifying your email`);
|
|
}
|
|
}
|
|
);
|
|
);
|
|
});
|
|
});
|