Skip to content

Commit 4a1774c

Browse files
committed
pass query like before, but instead of passing url (can be modified) pass id which internally points to url in cache
1 parent 1dff4af commit 4a1774c

2 files changed

Lines changed: 19 additions & 11 deletions

File tree

src/auth.js

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import * as express from "express"
2+
import { v4 as uuidv4 } from "uuid"
23

34
import session from "express-session"
45
import { RedisStore } from "connect-redis"
@@ -91,7 +92,7 @@ function Init() {
9192
cookie: {
9293
domain: redirectURL.hostname,
9394
secure: true,
94-
sameSite: "none",
95+
sameSite: "lax",
9596
maxAge: 1000 * 60 * 60,
9697
},
9798
})
@@ -101,12 +102,15 @@ function Init() {
101102
router.use(passport.session())
102103

103104
router.get("/", async (req, res) => {
104-
const key = `service=${req.sessionID}`
105-
106-
const serviceUrl = await GetFromCache(key)
107-
108-
logger.dev("ServiceURL: " + serviceUrl)
109-
logger.dev("Key: " + key)
105+
if (req.query.session_id) {
106+
res.cookie("session_id", req.query.session_id, {
107+
domain: redirectURL.hostname,
108+
httpOnly: true,
109+
secure: true,
110+
sameSite: "lax",
111+
maxAge: 1000 * 60 * 60,
112+
})
113+
}
110114

111115
if (req.hostname !== redirectURL.hostname) {
112116
const originalHost = req.headers["x-forwarded-host"] || req.get("host")
@@ -115,11 +119,11 @@ function Init() {
115119

116120
const originalUrl = `${originalProto}://${originalHost}${originalUri}`
117121

118-
await WriteToCache(key, originalUrl)
122+
const sessionID = uuidv4()
119123

120-
logger.dev("Cached " + originalUrl + " under " + key)
124+
await WriteToCache(`service=${sessionID}`, originalUrl)
121125

122-
return res.redirect(`${redirectURL.origin}/?`)
126+
return res.redirect(`${redirectURL.origin}/?session_id=${sessionID}`)
123127
}
124128

125129
if (!req.isAuthenticated()) {

src/wol.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { ENV } from "./env.js"
77
import request from "./utils/request.js"
88

99
import * as wss from "./wss.js"
10+
import { GetFromCache } from "./db.js"
1011

1112
const router = express.Router()
1213

@@ -317,7 +318,10 @@ async function startProcessing(req, res) {
317318
})
318319
}
319320

320-
const originalUrl = req.cookies.serviceUrl
321+
const sessionID = req.cookies.session_id
322+
323+
const originalUrl = await GetFromCache(`service=${sessionID}`)
324+
321325
if (!originalUrl) {
322326
return res.json({
323327
error: true,

0 commit comments

Comments
 (0)