Ich versuche, eine eingeschränkte Route mit react-router v4
zu implementieren, und ich bin fast fertig, aber ich muss Validierung von JWT-Token zu behandeln und weiß nicht, wo Sie dies setzen.Umgang mit JWT-Authentifizierung in React App
RestrictedRoute
const RestrictedRoute = (props) => {
const { component, ...otherProps } = props;
return <Route {...otherProps} component={component} />;
};
const mapStateToProps = state => ({
authenticated: state.authentication.session,
});
const branched = branch(
({ authenticated }) => !authenticated,
renderComponent(() => <Redirect to="/login" />),
);
const enhanced = compose(
connect(mapStateToProps),
branched,
)(RestrictedRoute);
export default enhanced;
Also mit diesem Ich bin in der Lage Benutzer /login
Seite zu umleiten, wenn die state.authentication.session
-false
gesetzt. Bis jetzt überprüfte ich, ob es einen jwt
Cookie gibt und setze diesen session
basierend darauf. Dies hatte eine einfache Sicherheitslücke, da Sie jwt
Cookie mit einem beliebigen Wert hinzufügen konnten, und Sie werden als authentifiziert betrachtet.
Ich habe einen Endpunkt für die Validierung meines Tokens jwt
erstellt und eine Aktion dafür erstellt. Meine Frage ist - wohin?
Wenn ich habe dies in componentWillMount
von RestrictedRoute
und ein authentifizierter Benutzer versucht, eine eingeschränkte Seite besuchen er die login
Seite zeigte und wechselte dann auf den eingeschränkten Weg, wie die Antwort von dem Endpunkt ändert die redux speichern.
Dank sehen für die Antwort. Ich habe es gehandhabt, indem ich das Token auf dem Server (wie ich serverseitiges Rendering) validiere und die Daten an meinen Redux-Speicher übergebe. – Ancinek
Ihre Begrüßung @Ancinek –