#такое дня
Никак не мог вчера понять, почему в части проекта аутентификационные попапы отрабатывают нормально, а в другой — нет.
Флоу-то классический, тяжёлый, надёжный как швейцарские часы:
1. Кликнули по кнопке
2. Открылся попап аутентификации
3. Пока пользователь проходит процесс, ждём закрытия окна (а точнее, проверяем свойство closed по интервалу)
4. Как только окно закрылось — обновляем список токенов.
Так вот в некоторых проектах пункт 3 отваливался. Терялся контекст окна и всё тут. Хотя флоу и инструменты везде одни и те же.
Как оказалось, аддон koa-helmet для Koa.js когда-то давно в патч-версию вкинул заголовки CORS и COOP. И врубил их по-умолчанию.
Что такое CORS знают, в общем, все. А что такое COOP?
Это сравнительно новая штука и она устанавливает правила общения с окном, открытым через window.open. И в случае same-origin, достучаться до свойства closed уже не выйдет.
Есть
Ну и в какой-то момент старую версию Koa обновили до поновее и получили упс.
Менять поведение в патч-версиях — это мерзко. Но мы уже не в первый раз такое наблюдаем.
#koa #js #backend #popup #coop
Никак не мог вчера понять, почему в части проекта аутентификационные попапы отрабатывают нормально, а в другой — нет.
Флоу-то классический, тяжёлый, надёжный как швейцарские часы:
1. Кликнули по кнопке
2. Открылся попап аутентификации
3. Пока пользователь проходит процесс, ждём закрытия окна (а точнее, проверяем свойство closed по интервалу)
4. Как только окно закрылось — обновляем список токенов.
Так вот в некоторых проектах пункт 3 отваливался. Терялся контекст окна и всё тут. Хотя флоу и инструменты везде одни и те же.
Как оказалось, аддон koa-helmet для Koa.js когда-то давно в патч-версию вкинул заголовки CORS и COOP. И врубил их по-умолчанию.
Что такое CORS знают, в общем, все. А что такое COOP?
Это сравнительно новая штука и она устанавливает правила общения с окном, открытым через window.open. И в случае same-origin, достучаться до свойства closed уже не выйдет.
Есть
same-origin-allow-popups
, но оно совсем новое и мало где поддерживается.Ну и в какой-то момент старую версию Koa обновили до поновее и получили упс.
Менять поведение в патч-версиях — это мерзко. Но мы уже не в первый раз такое наблюдаем.
#koa #js #backend #popup #coop
❤14👍3🤩2🫡2🤬1