質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

Q&A

解決済

1回答

1173閲覧

Next.jsにおいてauth0-reactライブラリを使用しloginWithRedirectを呼び出した時に正しいURLに遷移できない

sasakirione

総合スコア2

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

0グッド

0クリップ

投稿2022/08/12 16:31

編集2022/08/12 16:40

前提

Next.js(TypeScript)でAuth0を使用したユーザー認証機能があるページを作っています。

実現したいこと

  • Auth0のログイン画面に遷移する

発生している問題・エラーメッセージ

LoginボタンをクリックしてonClickを発火させloginWithRedirectを呼び出してもエラー画面に遷移してしまいます。

URLから考えるに本来、ドメインとクライアントIDとリダイレクトURLがセットされてURLが完成するところに、なんらかの理由でそれらが空文字のままセットされていることが原因かと思われるがそれがなぜ生じるのかが分からない。

該当URL:https://authorize/?client_id=&redirect_uri=&scope=openid%20profile%20email&response_type=code&response_mode=query&state=[ただしそうな値]&nonce=[ただしそうな値]&code_challenge=[ただしそうな値]&code_challenge_method=S256&auth0Client=[ただしそうな値] 該当エラー:DNS_PROBE_FINISHED_NXDOMAIN

該当のソースコード

TypeScript

1import {useAuth0} from "@auth0/auth0-react"; 2import {Button} from "@mui/material"; 3 4const AuthButton = () => { 5 const { 6 isAuthenticated, 7 loginWithRedirect, 8 logout 9 } = useAuth0(); 10 11 return ( 12 <div className="left" > 13 {isAuthenticated && ( 14 <Button color="inherit" onClick={() => logout()}>Logout</Button> 15 )} 16 {!isAuthenticated && ( 17 <Button color="inherit" onClick={() => loginWithRedirect()}>Login</Button> 18 )} 19 </div> 20 ) 21} 22 23export default AuthButton

TypeScript

1import '../styles/globals.css' 2import type { AppProps } from 'next/app' 3import Header from "../components/atomic/Header"; 4import {Auth0Provider} from "@auth0/auth0-react"; 5 6function MyApp({ Component, pageProps }: AppProps) { 7 const redirectUrl = process.env.AUTH0_REDIRECT_URL ?? "" 8 const domain = process.env.AUTH0_DOMAIN ?? "" 9 const clientId = process.env.AUTH0_CLIENT_ID ?? "" 10 11 return ( 12 <Auth0Provider 13 domain={domain} 14 clientId={clientId} 15 redirectUri={redirectUrl} 16 > 17 <Header/> 18 <Component {...pageProps} /> 19 </Auth0Provider> 20 ) 21} 22 23export default MyApp

試したこと

  • デバッグツールでAuth0Providerにセットしてる値(ドメイン、クライアントID、リダイレクトURL)が正しく環境変数から取れていることを確認(nullの時の空文字がセットされていない)
  • 類似事例の調査

補足情報(FW/ツールのバージョンなど)

  • next: 12.2.3
  • react: 18.2.0
  • react-dom: 18.2.0
  • @auth0/auth0-react: 1.10.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

https://<your_auth0_domain>/authorize?redirect_uri=http…
が理想の形です。
まずは.envに問題がないか、再度npm start して解消しないかご確認ください。

こちらもご参照ください。
https://auth0.com/docs/quickstart/spa/react/01-login

投稿2022/08/13 01:17

TakaseHiromichi

総合スコア110

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakaseHiromichi

2022/08/13 01:20

Next.js は、npm run dev または yarn dev でした。失礼しました。
sasakirione

2022/08/13 02:43

Next.jsの仕様上、NEXT_PUBLIC_から始まる環境変数しかうまく反映されないことが原因でした。回答ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問