Я выполняю проверку подлинности с помощью firebase в моем приложении,
В моем приложении. js Я использую этот метод ..
store.dispatch(isLoggedIn())
и это то, что isLoggedIn()
делает
export const isLoggedIn = () => dispatch => {
API.auth().onAuthStateChanged(user => {
if (user) {
dispatch(setCurrentUser(user))
} else {
dispatch(setCurrentUser({}))
}
})
}
и в приложении. js У меня есть
store.dispatch(isLoggedIn())
class App extends Component {
render() {
return (
<Provider store={store}>
<Router>
<React.Fragment>
<Route exact path="/login" component={Login} />
<Switch>
<PrivateRoute exact path="/" component={Dashboard} />
</Switch>
<Switch>
<PrivateRoute
exact
path="/stats"
component={Stats}
/>
</Switch>
</React.Fragment>
</Router>
</Provider>
)
}
}
export default App;
Также для PrivateRoute я использую это
import React from 'react';
import { Route, Redirect } from 'react-router-dom';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
const PrivateRoute = ({ component: Component, auth, ...rest }) => (
<Route
{...rest}
render={props =>
auth.isAuthenticated === true ? (
<Component {...props} />
) : (
<Redirect to="/login" />
)
}
/>
);
PrivateRoute.propTypes = {
auth: PropTypes.object.isRequired
};
const mapStateToProps = state => ({
auth: state.auth
});
export default connect(mapStateToProps)(PrivateRoute);
Теперь проблема в том, isLoggedIn ( ), но вот как.
Я получу /
, и он перенаправит меня на /login
, а затем вызовется isLoggedIn?
это вернет меня назад /
, но когда я go к /stats
, оно вернет меня к login
, а затем снова к /
, а не к /stats
? ?
Как мне go вернуться на страницу, с которой я начал? без аутентификации?