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:
parent
e0bc0d2e81
commit
2faaa2e18b
10 changed files with 138 additions and 28 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue