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')
);
ここで、私の問題は、ユーザーがリダイレクト後に戻ることができることです。これは正しい方法ではないと思います。
だから、私がこの行動を成し遂げるのを手伝ってください。コード例での回答は大歓迎です。