前提
- ReactはFunctionコンポーネントで記述
※classコンポーネントは利用しない
- Googleアカウント認証
問題
公式ドキュメント5番「ログインページにリダイレクトしてログインを行う場合」
現在ReactとFirebaseを利用してGoogleアカウントの自動認証・ログインする仕組みを構築中なのですが、コンポーネントページ(src/auth/GoogleAuth.js)に遷移した際、リダイレクトが延々にループしてしまいます。
延々とリダイレクトループしてはサービスとしてよろしくありません。
なぜこのようなことがおこるのか、原因不明です。
ただ、試しに、ルートアドレスである「http://localhost:3000/」をURLにペーストすると
認証ページに遷移して、FirebaseのAuthenticationに登録・ログインはできています。
cf. Firebase Google認証公式ドキュメント
【Firebase公式】JavaScript で Google ログインを使用して認証する
js
1// src/auth/GoogleAuth.js 2 3import React from 'react'; 4import { Link } from 'react-router-dom'; 5import firebase from '../Firebase'; 6 7const GoogleAuth = () => { 8 // ログインページにリダイレクトしてログインを行う場合の処理 9 const provider = new firebase.auth.GoogleAuthProvider(); 10 11 firebase.auth().signInWithRedirect(provider); 12 13 firebase.auth().getRedirectResult().then(function(result) { 14 if (result.credential) { 15 const token = result.credential.accessToken; 16 console.log(token); 17 } 18 const user = result.user; 19 console.log(user); 20 }).catch(function(error) { 21 const errorCode = error.code; 22 const errorMessage = error.message; 23 const email = error.email; 24 const credential = error.credential; 25 console.log(errorCode); 26 console.log(errorMessage); 27 console.log(email); 28 console.log(credential); 29 }); 30 31 return ( 32 <React.Fragment> 33 <h2>Google Auth</h2> 34 <p>認証完了しました</p> 35 <Link to="/">Home</Link> 36 </React.Fragment> 37 ); 38} 39 40export default GoogleAuth;
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。