Skip to content

Commit f8f4fc5

Browse files
authored
Merge pull request #262 from dedis/aelalamy-login-redirect
Improve login Redirection
2 parents d507ea6 + 1317803 commit f8f4fc5

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

web/frontend/src/pages/session/HandleLogin.tsx

+6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ const handleLogin = async (fctx: FlashState) => {
77
try {
88
const res = await fetch(ENDPOINT_GET_TEQ_KEY);
99

10+
const d = new Date();
11+
d.setTime(d.getTime() + 120000);
12+
let expires = d.toUTCString();
13+
document.cookie =
14+
'redirect' + '=' + window.location.pathname + '; expires=' + expires + ';path=/';
15+
1016
if (res.status !== 200) {
1117
const txt = await res.text();
1218
throw new Error(`unexpected status: ${res.status} - ${txt}`);

web/frontend/src/pages/session/Logged.tsx

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { AuthContext, FlashContext, FlashLevel } from 'index';
2-
import React, { FC, useContext, useEffect } from 'react';
2+
import { FC, useContext, useEffect } from 'react';
33
import { useTranslation } from 'react-i18next';
44
import { useNavigate } from 'react-router-dom';
55

@@ -12,14 +12,20 @@ const Logged: FC = () => {
1212
const authCtx = useContext(AuthContext);
1313
const fctx = useContext(FlashContext);
1414

15+
const getCookie = () => {
16+
let decodedCookies = decodeURIComponent(document.cookie);
17+
const redirectCookie = decodedCookies.split('; ').find((row) => row.startsWith('redirect'));
18+
return redirectCookie ? redirectCookie.split('=')[1] : '/'; // default value is the home page
19+
};
20+
1521
useEffect(() => {
1622
if (authCtx.isLogged) {
1723
fctx.addMessage(t('loggedIn'), FlashLevel.Info);
1824
} else {
1925
fctx.addMessage(t('notLoggedIn'), FlashLevel.Error);
2026
}
21-
22-
navigate('/');
27+
const redir = getCookie();
28+
navigate(redir);
2329
});
2430

2531
return <></>;

web/frontend/src/pages/session/Login.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { FC, useEffect, useState } from 'react';
1+
import { FC, useEffect, useState } from 'react';
22
import { useTranslation } from 'react-i18next';
33
import PropTypes from 'prop-types';
44

0 commit comments

Comments
 (0)