Нужно закрыть дочернее окно родительского окна(express,ReactJS)
Я разрабатываю сайт используя ReactJS для пользовательского клиента и Express для сервера. При нажатии на кнопку происходит открывается окно с авторизацией пользователя через дискорд. Авторизация обрабатывается сервером на Express. Мне нужно сделать так чтоб после авторизации дочернее окно с авторизацией закрывалось и обновлялось родительское окно. Вот код который выполняется после успешной авторизации.
const router = require('express').Router();
const passport = require('passport');
router.get('/discord/redirect',passport.authenticate('discord'),(req,res) => {
res.redirect('http://localhost:3000/');
});
Ответы (1 шт):
Автор решения: Ruslan Mart
→ Ссылка
Как вариант, сохраняйте объект окна в переменную:
const authWindow = window.open('../../auth');
Сообщите родителю, что авторизация прошла успешно через localstorage:
// родительское окно
window.addEventListener('storage', ({ key }) => {
if (key === 'auth') {
authWindow.close();
}
});
// дочернее окно
window.localStorage.setItem('auth', Date.now());
