Skip to content

Commit fdc6d88

Browse files
committed
Dialog closes when token expires
1 parent ab8245d commit fdc6d88

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

src/client/src/App.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ function AuthenticatedApp() {
8282
console.log("expTime:" + String(expTime).fixed(1))
8383
const jwtExpired = expTime <= 0
8484

85-
const popRefreshAlert = expTime < 30;
85+
const popRefreshAlert = expTime > 0 && expTime < 30;
8686
if (popRefreshAlert) console.log("Time to refresh !!!!!!!!!!! ");
8787

8888
const hdr = userRole === 'admin' ? <AdminHeader /> : <Header /> // If we're going to display a header, which one?
@@ -93,7 +93,9 @@ function AuthenticatedApp() {
9393

9494
{ !jwtExpired && hdr ? hdr : '' /* Above-chosen header, or if logged out, no header */ }
9595

96-
{popRefreshAlert && <CDialog setToken={setToken} /> }
96+
{popRefreshAlert && <CDialog shouldOpen={true} setToken={setToken} /> } {/* Pop up the refresh dialog */}
97+
98+
{jwtExpired && <CDialog shouldOpen={false} setToken={setToken} /> } { /* Too late, expired: close the dialog */}
9799

98100

99101
{ /* If not logged in, show login screen */

src/client/src/components/CDialog.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,23 @@ import useToken from '../components/Login/useToken';
1010

1111
import Refresh from './Refresh';
1212

13-
export default function CDialog({setToken}) {
14-
const [open, setOpen] = React.useState(true);
15-
const { access_token, setT } = useToken();
13+
export default function CDialog(props) {
14+
const [open, setOpen] = React.useState(props.shouldOpen);
15+
const { access_token, setT } = useToken(); // We want to use the passed-in top-level setToken
1616

1717

1818
const handleClickOpen = () => {
1919
setOpen(true);
2020
};
2121

22+
2223
const handleClose = async (shouldRefresh) => {
24+
// Could be closed with Yes, No, outclick (which equals No)
2325
setOpen(false);
24-
console.log("Refresh? " + String(shouldRefresh));
25-
if (shouldRefresh){
26+
console.log("Refresh? " + String(props.shouldOpen));
27+
if (props.shouldOpen){
2628
const new_at = await Refresh(access_token);
27-
setToken(new_at);
29+
props.setToken(new_at);
2830
}
2931
};
3032

src/client/src/pages/Check/Check.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ var jwt = require('jsonwebtoken');
88

99
export default function Check({access_token}) {
1010

11-
const { local_a_t, setToken } = useToken();
11+
const { setToken } = useToken();
1212

1313
const [processStatus, setProcessStatus] = React.useState('loading');
1414
const [error, setError] = React.useState('');

0 commit comments

Comments
 (0)