fuzzyworld

hawk / commit

Fix token refreshing: store correct value as refresh key, and pick up a new refresh key on refresh.

09b64e4c5f3eaceae1d83be842f722d074b6474f · Pavel Safronov · 2023-10-14 11:06:01 -0700 · parents 3e4871e9dc35

Fix token refreshing: store correct value as refresh key, and pick up a new refresh key on refresh.
 public/signin.js | 37 +++++++++++++++++--------------------
 1 file changed, 17 insertions(+), 20 deletions(-)

diff --git a/public/signin.js b/public/signin.js
index c36d78f..d3c1dcd 100644
--- a/public/signin.js
+++ b/public/signin.js
@@ -69,7 +69,7 @@ async function getToken(code) {
         const data = await response.json();
         const expiresInSeconds = data.expires_in;
         localStorage.setItem('access_token', data.access_token);
-        localStorage.setItem('refresh_token', data.access_token);
+        localStorage.setItem('refresh_token', data.refresh_token);
         localStorage.setItem('expires_at', Date.now() + expiresInSeconds * 1000);
     } catch (error) {
         console.error('Error:', error);
@@ -133,24 +133,21 @@ async function refreshToken() {
         client_id: clientId
     });
 
-    try {
-        const response = await fetch('https://accounts.spotify.com/api/token', {
-            method: 'POST',
-            headers: {
-                'Content-Type': 'application/x-www-form-urlencoded'
-            },
-            body: body
-        });
-        if (!response.ok) {
-            console.error('HTTP status ' + response.status);
-            throw new Error('HTTP status ' + response.status);
-        }
-        const data = await response.json();
-        const expiresInSeconds = data.expires_in;
-        localStorage.setItem('access_token', data.access_token);
-        localStorage.setItem('expires_at', Date.now() + expiresInSeconds * 1000);
-        return data.access_token;
-    } catch (error) {
-        console.error('Error:', error);
+    const response = await fetch('https://accounts.spotify.com/api/token', {
+        method: 'POST',
+        headers: {
+            'Content-Type': 'application/x-www-form-urlencoded'
+        },
+        body: body,
+    });
+    if (!response.ok) {
+        console.error('HTTP status ' + response.status);
+        throw new Error('HTTP status ' + response.status);
     }
+    const data = await response.json();
+    const expiresInSeconds = data.expires_in;
+    localStorage.setItem('access_token', data.access_token);
+    localStorage.setItem('refresh_token', data.refresh_token);
+    localStorage.setItem('expires_at', Date.now() + expiresInSeconds * 1000);
+    return data.access_token;
 }
\ No newline at end of file