Nuxt.jsでAuth0を使ってソーシャルログインを搭載しようとしております。(Auth0 Lockは使わず自分でログインボタンを実装しようとしております。)
以下のドキュメントを参考に進めているのですが、コールバックページでの動作でてこづっています。
https://auth0.com/docs/flows/guides/auth-code/add-login-auth-code
トップページにTwitterログインボタンを作成し、コールバックページまでは飛べるのですがそこでエラーが出てしまいます。
コールバックページのソースおよびエラー内容は以下の通りです。
<script> export default { async asyncData({ $axios, params }) { const options = { method: 'POST', url: 'https://dev-zua0o6cm.auth0.com/oauth/token', headers: { 'content-type': 'application/x-www-form-urlencoded' }, form: { grant_type: 'authorization_code', client_id: '〇〇〇〇〇〇〇〇〇〇', client_secret: '〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇', code: params.code, redirect_uri: 'http://localhost:3333/callback' } } const response = await $axios.$post(options).catch((error) => { console.log('response error', error) return false }) return { data: response.data } } } </script>
response error TypeError: relativeURL.replace is not a function at combineURLs (/frontend/node_modules/axios/lib/helpers/combineURLs.js:12:55) at dispatchRequest (/frontend/node_modules/axios/lib/core/dispatchRequest.js:30:18)
ちなみにトップページのソースは以下のようにしており、ログインボタンを押したらhttp://localhost:3333/callback?code=〇〇〇〇&state=xyzABC123
のようなURLにとびます。
<template> <v-btn @click="login()">Twitterでログイン</v-btn> </template> <script> export default { methods: { login() { const url = 'https://〇〇〇〇.auth0.com/authorize?' + 'response_type=code&' + 'client_id=〇〇〇〇〇〇〇〇〇〇&' + 'redirect_uri=http://localhost:3333/callback&' + 'scope=openid%20profile&' + 'state=xyzABC123&' + 'connection=twitter' location.href = url } } } </script>
解決方法が分かる方がおられましたらお力をお貸しいただけると助かります。
あなたの回答
tips
プレビュー