1
0
Fork 0
mirror of https://git.sr.ht/~cadence/cloudtube synced 2026-03-02 02:31:35 +00:00

Allow data syncing and deletion

This commit is contained in:
Cadence Ember 2020-12-29 16:21:48 +13:00
parent e0bc0d2e81
commit 2faaa2e18b
No known key found for this signature in database
GPG key ID: BC1C2C61CF521B17
10 changed files with 138 additions and 28 deletions

View file

@ -9,10 +9,7 @@ function getToken(req, responseHeaders) {
let token = cookie.token
if (!token) {
if (responseHeaders) { // we should create a token
const setCookie = responseHeaders["set-cookie"] || []
token = crypto.randomBytes(18).toString("base64").replace(/\W/g, "_")
setCookie.push(`token=${token}; Path=/; Max-Age=2147483648; HttpOnly; SameSite=Lax`)
responseHeaders["set-cookie"] = setCookie
setToken(responseHeaders)
} else {
return null
}
@ -21,6 +18,14 @@ function getToken(req, responseHeaders) {
return token
}
function setToken(responseHeaders, token) {
const setCookie = responseHeaders["set-cookie"] || []
if (!token) token = crypto.randomBytes(18).toString("base64").replace(/\W/g, "_")
setCookie.push(`token=${token}; Path=/; Max-Age=2147483648; HttpOnly; SameSite=Lax`)
responseHeaders["set-cookie"] = setCookie
return responseHeaders
}
class User {
constructor(token) {
this.token = token
@ -107,6 +112,7 @@ cleanCSRF()
setInterval(cleanCSRF, constants.caching.csrf_time).unref()
module.exports.getToken = getToken
module.exports.setToken = setToken
module.exports.generateCSRF = generateCSRF
module.exports.checkCSRF = checkCSRF
module.exports.getUser = getUser

View file

@ -78,6 +78,20 @@ function presetURLParamsBody() {
]
}
function presetEnsureParams(list) {
return [
state => {
return list.every(name => state.params.has(name))
},
() => ({
statusCode: 400,
contentType: "application/json",
content: `Some required body parameters were missing. Required parameters: ${list.join(", ")}`
})
]
}
module.exports.V = V
module.exports.presetLoad = presetLoad
module.exports.presetURLParamsBody = presetURLParamsBody
module.exports.presetEnsureParams = presetEnsureParams