coyotte508 commited on
Commit
a45209c
·
1 Parent(s): 3980956

⚗️ Try & check storage access API

Browse files
Files changed (1) hide show
  1. server.ts +25 -4
server.ts CHANGED
@@ -11,8 +11,6 @@ app.use(async (ctx) => {
11
  ctx.set("Set-Cookie", [
12
  `cookie-none=${cookie.replace(/[^A-Za-z0-9]+/g, '-')}; SameSite=None; Secure`,
13
  `cookie-lax=${cookie.replace(/[^A-Za-z0-9]+/g, '-')}; SameSite=Lax; Secure`,
14
- `cookie-none-top-level=${cookie.replace(/[^A-Za-z0-9]+/g, '-')}; SameSite=None; Secure; Domain=hf.space`,
15
- `cookie-lax-top-level=${cookie.replace(/[^A-Za-z0-9]+/g, '-')}; SameSite=Lax; Secure; Domain=hf.space`,
16
  ]);
17
  ctx.redirect( "/");
18
  } else {
@@ -21,15 +19,38 @@ app.use(async (ctx) => {
21
  <pre>${JSON.stringify(Object.fromEntries(Object.entries(ctx.request.headers)), null, 2)}</pre>
22
  <p>Cookie SameSite=None: ${ctx.cookies.get("cookie-none")?.replace(/</g, '$lt;')}</p>
23
  <p>Cookie SameSite=Lax: ${ctx.cookies.get("cookie-lax")?.replace(/</g, '$lt;')}</p>
24
- <p>Cookie SameSite=None Top-Level: ${ctx.cookies.get("cookie-none-top-level")?.replace(/</g, '$lt;')}</p>
25
- <p>Cookie SameSite=Lax Top-Level: ${ctx.cookies.get("cookie-lax-top-level")?.replace(/</g, '$lt;')}</p>
26
  <form method="POST">
27
  <label>Cookie value<br>
28
  <input type="text" name="cookie" />
29
  </label>
30
  <button>Send</button>
31
  </form>
 
 
 
32
  </body>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  </html>`;
34
  }
35
  });
 
11
  ctx.set("Set-Cookie", [
12
  `cookie-none=${cookie.replace(/[^A-Za-z0-9]+/g, '-')}; SameSite=None; Secure`,
13
  `cookie-lax=${cookie.replace(/[^A-Za-z0-9]+/g, '-')}; SameSite=Lax; Secure`,
 
 
14
  ]);
15
  ctx.redirect( "/");
16
  } else {
 
19
  <pre>${JSON.stringify(Object.fromEntries(Object.entries(ctx.request.headers)), null, 2)}</pre>
20
  <p>Cookie SameSite=None: ${ctx.cookies.get("cookie-none")?.replace(/</g, '$lt;')}</p>
21
  <p>Cookie SameSite=Lax: ${ctx.cookies.get("cookie-lax")?.replace(/</g, '$lt;')}</p>
 
 
22
  <form method="POST">
23
  <label>Cookie value<br>
24
  <input type="text" name="cookie" />
25
  </label>
26
  <button>Send</button>
27
  </form>
28
+ <p>Browser supports storage access API: <span id="storage-access-api"></span></p>
29
+ <p>Page can store cookies: <span id="page-can-store-cookies"></span></p>
30
+ <button id="request-storage-access" style="display: hidden;" type="button">Request storage access</button>
31
  </body>
32
+ <script>
33
+ const storageAccess = document.getElementById("storage-access-api");
34
+ const pageCanStoreCookies = document.getElementById("page-can-store-cookies");
35
+ const requestStorageAccess = document.getElementById("request-storage-access");
36
+ if ("hasStorageAccess" in document) {
37
+ storageAccess.innerText = "Yes";
38
+ document.hasStorageAccess().then((hasAccess) => {
39
+ pageCanStoreCookies.innerText = hasAccess ? "Yes" : "No";
40
+ if (!hasAccess) {
41
+ requestStorageAccess.style.display = "block";
42
+ }
43
+ });
44
+ } else {
45
+ storageAccess.innerText = "No";
46
+ }
47
+ requestStorageAccess.addEventListener("click", () => {
48
+ document.requestStorageAccess().then(() => {
49
+ pageCanStoreCookies.innerText = "Yes";
50
+ requestStorageAccess.style.display = "none";
51
+ });
52
+ });
53
+ </script>
54
  </html>`;
55
  }
56
  });