Fix: defer env var reading to request time (ES module hoisting bug)
This commit is contained in:
parent
ba4f9f7377
commit
748cf8cb4c
13
index.js
13
index.js
@ -19,7 +19,18 @@ app.use(express.static(path.join(__dirname, 'public')));
|
|||||||
app.use('/auth', discordRoutes);
|
app.use('/auth', discordRoutes);
|
||||||
|
|
||||||
app.get('/health', (req, res) => {
|
app.get('/health', (req, res) => {
|
||||||
res.json({ status: 'ok', service: 'thw-auth', timestamp: new Date().toISOString() });
|
res.json({
|
||||||
|
status: 'ok',
|
||||||
|
service: 'thw-auth',
|
||||||
|
timestamp: new Date().toISOString(),
|
||||||
|
env: {
|
||||||
|
hasClientId: !!process.env.DISCORD_CLIENT_ID,
|
||||||
|
hasClientSecret: !!process.env.DISCORD_CLIENT_SECRET,
|
||||||
|
hasRedirectUri: !!process.env.DISCORD_REDIRECT_URI,
|
||||||
|
redirectUri: process.env.DISCORD_REDIRECT_URI,
|
||||||
|
nodeEnv: process.env.NODE_ENV,
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.listen(PORT, () => {
|
app.listen(PORT, () => {
|
||||||
|
|||||||
@ -7,9 +7,17 @@ const router = Router();
|
|||||||
|
|
||||||
const DISCORD_API = 'https://discord.com/api';
|
const DISCORD_API = 'https://discord.com/api';
|
||||||
|
|
||||||
const DISCORD_CLIENT_ID = process.env.DISCORD_CLIENT_ID;
|
function getDiscordClientId() {
|
||||||
const DISCORD_CLIENT_SECRET = process.env.DISCORD_CLIENT_SECRET;
|
return process.env.DISCORD_CLIENT_ID;
|
||||||
const DISCORD_REDIRECT_URI = process.env.DISCORD_REDIRECT_URI;
|
}
|
||||||
|
|
||||||
|
function getDiscordClientSecret() {
|
||||||
|
return process.env.DISCORD_CLIENT_SECRET;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getDiscordRedirectUri() {
|
||||||
|
return process.env.DISCORD_REDIRECT_URI;
|
||||||
|
}
|
||||||
|
|
||||||
const WHITELIST = new Set([
|
const WHITELIST = new Set([
|
||||||
'1207017997173137481'
|
'1207017997173137481'
|
||||||
@ -23,8 +31,8 @@ router.get('/discord', (req, res) => {
|
|||||||
const next = req.query.next || '/';
|
const next = req.query.next || '/';
|
||||||
const safeNext = next.startsWith('/') && !next.startsWith('//') ? next : '/';
|
const safeNext = next.startsWith('/') && !next.startsWith('//') ? next : '/';
|
||||||
const params = new URLSearchParams({
|
const params = new URLSearchParams({
|
||||||
client_id: DISCORD_CLIENT_ID,
|
client_id: getDiscordClientId(),
|
||||||
redirect_uri: DISCORD_REDIRECT_URI,
|
redirect_uri: getDiscordRedirectUri(),
|
||||||
response_type: 'code',
|
response_type: 'code',
|
||||||
scope: 'identify',
|
scope: 'identify',
|
||||||
state: safeNext,
|
state: safeNext,
|
||||||
@ -47,11 +55,11 @@ router.get('/discord/callback', async (req, res) => {
|
|||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
||||||
body: new URLSearchParams({
|
body: new URLSearchParams({
|
||||||
client_id: DISCORD_CLIENT_ID,
|
client_id: getDiscordClientId(),
|
||||||
client_secret: DISCORD_CLIENT_SECRET,
|
client_secret: getDiscordClientSecret(),
|
||||||
grant_type: 'authorization_code',
|
grant_type: 'authorization_code',
|
||||||
code,
|
code,
|
||||||
redirect_uri: DISCORD_REDIRECT_URI,
|
redirect_uri: getDiscordRedirectUri(),
|
||||||
}).toString(),
|
}).toString(),
|
||||||
});
|
});
|
||||||
if (!tokenRes.ok) {
|
if (!tokenRes.ok) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user