Next.jsでSpotify APIを使ってデータを取得しようとしたところ no token provided(401error)が出る。
認証にはNextAuthを使っている。
typescript
1//一部省略 2import {prisma} from "..";//省略 3import {getSession} from "next-auth/client"; 4 5const Search:NextPage = ({token}) => { 6const [value,setValue] = useState<string>("");//inputの値 7 8const clickHandler = () => { 9//ここでエラー 10 axios 11 .get(`https://api.spotify.com/v1/search?q=${value}&type=track&limit=20`, { 12 headers: { Authorization: `Bearer ${token}` }, 13 }) 14 .then((res) => { 15 let data = res.data; 16 console.log(data.tracks.items); 17 }); 18} 19 20return( 21//省略 22) 23} 24 25export const getServerSideProps:GetServerSideProps = async (ctx) => { 26//認証ない時リダイレクト 27 const session = await getSession(ctx); 28 if (!session) { 29 return { 30 redirect: { 31 destination: '/', 32 permanent: false, 33 }, 34 }; 35 } 36//sessionのacccessTokenからログイン中のユーザー取得 37 const user = await prisma.session.findFirst({ 38 where: { 39 accessToken: String(session.accessToken), 40 }, 41 }); 42//userIdからaccount取得 43 const account = await prisma.account.findFirst({ 44 where: { 45 userId: user?.userId, 46 }, 47 }); 48//accountのaccessTokenを返す 49 return { 50 props: { 51 token: account.accessToken, 52 }, 53 }; 54} 55 56
<試したこと>
・sessionのaccessTokenでも試してみたが同様に401のエラーが出る。
・console.logで確認したところ、tokenの値はしっかりとSearchコンポーネントまで届いている。
協力よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。