fix(auth): address browser cookie review comments

This commit is contained in:
Ivan Pereira
2026-06-24 17:31:53 +01:00
parent d01cfc86bc
commit 8d889add43
3 changed files with 16 additions and 3 deletions
+2 -2
View File
@@ -23,7 +23,7 @@ pi install github:ivanrvpereira/pi-perplexity
Run login once:
```
```text
/perplexity-login
```
@@ -31,7 +31,7 @@ This usually reuses an existing cached login, borrows the Perplexity macOS app l
If login fails with a Cloudflare “Just a moment...” page, use browser login instead:
```
```text
/perplexity-login --browser
```
+1 -1
View File
@@ -100,7 +100,7 @@ function extractCookieHeader(input: string): string {
return quotedCurlCookieOption.trim();
}
const unquotedCurlCookieOption = trimmed.match(/(?:^|\s)(?:-b|--cookie)=([^\s\\]+)/i)?.[1];
const unquotedCurlCookieOption = trimmed.match(/(?:^|\s)(?:-b|--cookie)(?:=|\s+)([^\s\\]+)/i)?.[1];
if (unquotedCurlCookieOption) {
return unquotedCurlCookieOption.trim();
}
+13
View File
@@ -366,6 +366,19 @@ describe("auth/login", () => {
expect(parsed?.access).toBe(browserToken);
});
test("parseBrowserAuthInput extracts cookies from unquoted -b and --cookie cURL forms", async () => {
const browserToken = createJwt(Date.now() + 2 * 60 * 60 * 1000);
const { parseBrowserAuthInput } = await importLoginModule();
for (const flag of ["-b", "--cookie"]) {
const curl = `curl 'https://www.perplexity.ai/rest/sse/perplexity_ask' ${flag} __Secure-next-auth.session-token=${browserToken}`;
const parsed = parseBrowserAuthInput(curl);
expect(parsed?.cookies).toBe(`__Secure-next-auth.session-token=${browserToken}`);
expect(parsed?.access).toBe(browserToken);
}
});
test("saveBrowserAuthInput explains Copy as cURL without cookies", async () => {
const curl = `curl 'https://www.perplexity.ai/' \\
-H 'Upgrade-Insecure-Requests: 1' \\