0

React JS と Firebase を使用して Web アプリを開発しています。アプリで次の動作が機能するようにします。

サインイン ページには、[サインインしたままにする] チェックボックスがあります。ユーザーがそのチェックボックスをマークしなかった場合、ユーザーはタブ/ブラウザーを閉じたときに自動的にサインアウトする必要があります。ユーザーが「サインインしたままにする」チェックボックスをマークした場合、ユーザーがダッシュボードの「サインアウト」ボタンをクリックしない限り、ユーザーはサインアウトされません。さらに、ユーザーがログインしている場合は、ユーザーをダッシュ​​ボード ページにリダイレクトする必要があります。ユーザーがログインしていない場合、ユーザーはサインイン ページにリダイレクトする必要があります。

また、ユーザーが手動で URL を入力してページに移動できないようにする必要があります。

これが現在の index.js ファイルの一部です。

const browserHistory = createBrowserHistory();

firebase.auth().onAuthStateChanged(user => {
  user ? browserHistory.push("/dashboard") : browserHistory.push("/signin");
});

ReactDOM.render(
  <Router history={browserHistory}>
    <Switch>
      <Theme>
        <Route exact path="/signin" component={SignIn} />
        <Route path="/dashboard" component={Dashboard} />
        <Redirect to="/" />
      </Theme>
    </Switch>
  </Router>,
  document.getElementById('root')
);

ここで、私の問題は、ユーザーがリダイレクト後に戻ることができることです。これは正しい方法ではないと思います。

だから、私がこの行動を成し遂げるのを手伝ってください。コード例での回答は大歓迎です。

4

1 に答える 1