Skip to content

Commit

Permalink
add scopes
Browse files Browse the repository at this point in the history
  • Loading branch information
chee committed Nov 17, 2020
1 parent 0496dc9 commit 9f35617
Showing 1 changed file with 14 additions and 9 deletions.
23 changes: 14 additions & 9 deletions index.js
Expand Up @@ -9,7 +9,7 @@ async function getSnoot(name) {
return snootid
}

async function authenticate(request, response, name) {
async function authenticate(request, response, name, scope) {
let snootid = await getSnoot(name)

if (!snootid) {
Expand All @@ -25,7 +25,7 @@ async function authenticate(request, response, name) {
<p>click this:</p>
<p><a href="/listen/${name}">listen</a></p>
<p><a href="/listen/${name}/${scope}">listen</a></p>
<p>then run this in your terminal!</p>
Expand All @@ -35,7 +35,7 @@ ssh ${name}@auth.snoot.club -p 2424
`
}

async function listen(request, response, name) {
async function listen(request, response, name, scope) {
let snootid = await getSnoot(name)

if (!snootid) {
Expand All @@ -55,10 +55,10 @@ async function listen(request, response, name) {
if (data == "success") {
clearTimeout(timeout)
let token = `${name}.${crypto.randomBytes(22).toString("base64")}`
await fs.writeFile(`/snoots/auth/sessions/${name}`, token)
await fs.writeFile(`/snoots/auth/sessions/${name}.${scope}`, token)
response.setHeader(
"Set-Cookie",
`session=${token}; Domain=snoot.club; Secure; Path=/`
`session=${token}; Domain=${scope}.snoot.club; Secure; Path=/`
)
send(response, 200, "Thanks ! Enjoy your cookie")
} else {
Expand Down Expand Up @@ -92,12 +92,17 @@ module.exports = (request, response) => {

if (parts.length == 1) {
let [name] = parts
return authenticate(request, response, name)
return authenticate(request, response, name, ".")
}

if (parts.length == 2 && parts[0] == "listen") {
let [, name] = parts
return listen(request, response, name)
if (parts.length == 2) {
let [name, scope] = parts
return authenticate(request, response, name, scope)
}

if (parts.length == 3 && parts[0] == "listen") {
let [, name, scope] = parts
return listen(request, response, name, scope)
}

return notfound(request, response)
Expand Down

0 comments on commit 9f35617

Please sign in to comment.