mirror of
https://github.com/ZHANGTIANYAO1/teamspeak-music-bot.git
synced 2026-10-01 20:42:50 +08:00
fix: QR login now persists cookies, shows server-generated QR image, passes timestamp
- Auth router accepts CookieStore and persists cookies on login - NeteaseProvider passes timestamp to prevent cached QR responses - QR image from server used directly (qrimg field) - Cookie saved to disk on confirmed QR scan Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
f77a6f0fd7
commit
9755ba2909
6 files changed
+50
-14
No files matched your search
+14
-10
@@ -277,18 +277,22 @@ async function startQrLogin(platform: string) {
|
||||
|
||||
try {
|
||||
const res = await axios.post('/api/auth/qrcode', { platform });
|
||||
const { qrUrl, key } = res.data;
|
||||
const { qrUrl, qrImg, key } = res.data;
|
||||
qr.key = key;
|
||||
|
||||
// Generate QR code image
|
||||
qr.dataUrl = await QRCode.toDataURL(qrUrl, {
|
||||
width: 200,
|
||||
margin: 2,
|
||||
color: {
|
||||
dark: store.theme === 'dark' ? '#ffffff' : '#000000',
|
||||
light: store.theme === 'dark' ? '#2a2a2a' : '#ffffff',
|
||||
},
|
||||
});
|
||||
// Use server-generated QR image if available, otherwise generate client-side
|
||||
if (qrImg) {
|
||||
qr.dataUrl = qrImg;
|
||||
} else {
|
||||
qr.dataUrl = await QRCode.toDataURL(qrUrl, {
|
||||
width: 200,
|
||||
margin: 2,
|
||||
color: {
|
||||
dark: store.theme === 'dark' ? '#ffffff' : '#000000',
|
||||
light: store.theme === 'dark' ? '#2a2a2a' : '#ffffff',
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
qr.loading = false;
|
||||
|
||||
|
||||
Reference in new issue
Block a user