access token, refresh token 처리
방법
방법 1: 로컬/세션 스토리지에 저장
방법2: 쿠키에 저장
코드
get-access-token API 작성
2. 토큰 관리 hook
참고자료
Last updated
Last updated
// src/api/spotify/auth/get-access-token/route.ts
const { token, error } = await getUserAccessToken(authorizationCode);
if (error || token === undefined) {
return NextResponse.json({
error: `fail to get access token with authorization code: ${error}`
}, { status: 500 });
}
cookieStore.set(KEY_SPOTIFY_REFRESH_TOKEN, token.refresh_token!, {
httpOnly: true,
sameSite: 'strict'
});
return NextResponse.json({ token }, { status: 200 });
// useSpotifyAccessToken
const useSpotifyAccessToken = () => {
const accessToken = useTypedSelector(state => state.spotify.accessToken);
const dispatch = useDispatch<AppDispatch>();
useEffect(() => {
if (accessToken === null) {
dispatch(fetchAccessToken());
}
}, [accessToken, dispatch]);
return { accessToken };
};
// 스포티파이 토큰이 필요한 컴포넌트
const Page = () => {
const { accessToken } = useSpotifyAccessToken();
const { data, isError, isFetching } = useQuery({
queryKey: [],
queryFn: async () => {},
enabled: accessToken !== null
});
...