Answer the question
In order to leave comments, you need to log in
Rect Jedi, where is the best place to place the following code?
Good evening!
I already have the application ready! Hurrah Hurrah! But there is the following piece of code, which I cannot find the "right" place on an intuitive level.
if (localStorage.getItem('jwtToken')) {
const decoded_jwt = jwt_decode(localStorage.getItem('jwtToken'));
store.dispatch(setCurrentUser(decoded_jwt));
const current_time = Date.now() / 1000;
if (current_time > decoded_jwt.exp) {
store.dispatch(refresh())
}
}
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import store from './redux/store';
import { BrowserRouter } from 'react-router-dom';
import App from './components/App';
ReactDOM.render(<Provider store={store}><BrowserRouter><App /></BrowserRouter></Provider>, document.getElementById('app'));
import React, { Component } from 'react';
import NavigationBar from "./NavigationBar";
import { Switch, Route } from 'react-router-dom';
import Home from "./Home.page";
import Login from "./Login.page";
import Register from "./Register.page";
import Profile from "./Profile.page";
import NotFound from "./NotFound.page";
import jwt_decode from 'jwt-decode';
import store from '../redux/store';
import { setCurrentUser, refresh } from '../redux/actions/authActions';
if (localStorage.getItem('jwtToken')) {
const decoded_jwt = jwt_decode(localStorage.getItem('jwtToken'));
store.dispatch(setCurrentUser(decoded_jwt));
const current_time = Date.now() / 1000;
if (current_time > decoded_jwt.exp) {
store.dispatch(refresh())
}
}
class App extends Component {
render() {
return (
<div>
<header>
<NavigationBar/>
</header>
<main>
<Switch>
<Route exact path="/" component={Home}/>
<Route exact path="/login" component={Login}/>
<Route exact path="/register" component={Register}/>
<Route exact path="/profile" component={Profile}/>
<Route component={NotFound}/>
</Switch>
</main>
</div>
);
}
}
export default App;
Answer the question
In order to leave comments, you need to log in
The proposal is no longer in the place of verification, but in the file structure.
You can have a file like jwtTokenChecker.js, put a function to check there (so as not to mix it with another file):
import jwt_decode from 'jwt-decode';
import store from './redux/store';
import { setCurrentUser, refresh } from './redux/actions/authActions';
export default () => {
if (localStorage.getItem('jwtToken')) {
const decoded_jwt = jwt_decode(localStorage.getItem('jwtToken'));
store.dispatch(setCurrentUser(decoded_jwt));
const current_time = Date.now() / 1000;
if (current_time > decoded_jwt.exp) {
store.dispatch(refresh())
}
}
}
import checkJwtToken from './jwtTokenChecker';
checkJwtToken();
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question