11'use client' ;
22
33import axios , { AxiosResponse } from 'axios' ;
4- import { decrypt , encrypt } from '@/app/lib/utils' ;
54import { useEffect , useRef , useState } from 'react' ;
65import { usePathname , useRouter , useSearchParams } from 'next/navigation' ;
76
@@ -80,32 +79,30 @@ const ConnectSpotify = ({ authUrl }: { authUrl: string }) => {
8079
8180 try {
8281 if ( getRefreshToken ) {
83- const refreshtoken = decrypt ( getRefreshToken ) ;
84-
85- if ( ! refreshtoken || refreshtoken === '' ) {
86- authInProgress ( false ) ;
87- return ;
88- }
89-
9082 const response = await axios . post ( '/api/auth/refreshToken' , {
91- refresh_token : refreshtoken ,
83+ refresh_token : getRefreshToken ,
9284 } ) ;
9385 processResponse ( response ) ;
9486 } else {
9587 authInProgress ( false ) ;
9688 }
9789 } catch ( error ) {
98- throw Error ( error as string ) ;
90+ console . error ( 'Failed to refresh Spotify access token' , error ) ;
91+ authInProgress ( false ) ;
9992 }
10093 }
10194
102- function storeToLocalStore ( expires_in : number , refresh_token : string ) {
95+ function storeToLocalStore ( expires_in : number , refresh_token : string , access_token : string ) {
10396 setExpires ( expires_in ) ;
10497
10598 const currentTime = Date . now ( ) ;
10699 localStorage . setItem ( 'expires' , currentTime + expires_in * 1000 + '' ) ;
100+ if ( access_token ) {
101+ localStorage . setItem ( 'access_token' , access_token ) ;
102+ }
107103 if ( refresh_token === '' || ! refresh_token ) return ;
108- localStorage . setItem ( 'refresh_token' , encrypt ( refresh_token ) ) ;
104+ // refresh_token is already encrypted by the server
105+ localStorage . setItem ( 'refresh_token' , refresh_token ) ;
109106 }
110107
111108 function setToSpotifyAPI (
@@ -118,7 +115,7 @@ const ConnectSpotify = ({ authUrl }: { authUrl: string }) => {
118115 spotifyApi . setAccessToken ( access_token ) ;
119116 spotifyApi . setRefreshToken ( refresh_token ) ;
120117
121- storeToLocalStore ( expires_in , refresh_token ) ;
118+ storeToLocalStore ( expires_in , refresh_token , access_token ) ;
122119 }
123120
124121 function processResponse ( response : AxiosResponse < any , any > ) {
0 commit comments