Spaces:
Sleeping
Sleeping
import Koa from "koa"; | |
import bodyParser from "koa-bodyparser"; | |
const app = new Koa(); | |
app.use(bodyParser()); | |
app.use(async (ctx) => { | |
if (ctx.request.method === "POST") { | |
const { cookie } = ctx.request.body as { cookie: string }; | |
ctx.set("Set-Cookie", [ | |
`cookie-none=${cookie.replace(/[^A-Za-z0-9]+/g, '-')}; SameSite=None; Secure`, | |
`cookie-lax=${cookie.replace(/[^A-Za-z0-9]+/g, '-')}; SameSite=Lax; Secure`, | |
`cookie-none-top-level=${cookie.replace(/[^A-Za-z0-9]+/g, '-')}; SameSite=None; Secure; Domain=hf.space`, | |
`cookie-lax-top-level=${cookie.replace(/[^A-Za-z0-9]+/g, '-')}; SameSite=Lax; Secure; Domain=hf.space`, | |
]); | |
ctx.redirect( "/"); | |
} else { | |
ctx.body = `<html> | |
<body> | |
<pre>${JSON.stringify(Object.fromEntries(Object.entries(ctx.request.headers)), null, 2)}</pre> | |
<p>Cookie SameSite=None: ${ctx.cookies.get("cookie-none")?.replace(/</g, '$lt;')}</p> | |
<p>Cookie SameSite=Lax: ${ctx.cookies.get("cookie-lax")?.replace(/</g, '$lt;')}</p> | |
<p>Cookie SameSite=None Top-Level: ${ctx.cookies.get("cookie-none-top-level")?.replace(/</g, '$lt;')}</p> | |
<p>Cookie SameSite=Lax Top-Level: ${ctx.cookies.get("cookie-lax-top-level")?.replace(/</g, '$lt;')}</p> | |
<form method="POST"> | |
<label>Cookie value<br> | |
<input type="text" name="cookie" /> | |
</label> | |
<button>Send</button> | |
</form> | |
</body> | |
</html>`; | |
} | |
}); | |
app.listen(7860); | |