1
0
Fork 0
mirror of https://git.sr.ht/~cadence/cloudtube synced 2026-05-26 12:32:25 +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