Обновить токен доступа на mod_auth_openidc при отправке формы - PullRequest
0 голосов
/ 20 июня 2019

Я успешно использую mod_auth_openidc для аутентификации моего сайта и получения access_token.Я могу использовать access_token для аутентификации моего серверного кода на стороннем ресурсе, размещенном в другом месте в качестве вошедшего в систему пользователя.

Если срок действия маркера доступа истекает, мне нужно его обновить, и mod_auth_openidc, похоже, требует, чтобы я сделал перенаправляющий вызов на определенный URL, чтобы сделать это.Если страница, на которой я нахожусь, является запросом GET, это нормально.Страница замечает, что токен истек, и перенаправление возвращается на ту же страницу.Но если это запрос POST, PUT или DELETE, возможное обновление все равно будет GET.

Так что, если я не напишу действительно грязный код, чтобы спрятать исходную страницу и ее полную информацию, я, похоже, застрял.

В отличие от этого, я могу легко сделать вызов на стороне сервера, чтобы обновить токен, не вовлекая модуль, но тогда модуль не знает, что токен был обновлен, и обновленный токен будет потерян.

Конкретный вариант использования - это случай, когда я представляю пользователю форму, прошу ее заполнить и отправить ее.Полученные данные поста используются для вызова стороннего API.Но если пользователь тратит слишком много времени на заполнение формы, вызов POST имеет токен с истекшим сроком доступа и не может его обновить.

Есть ли способ обойти это, или мне нужно будет вернуться к использованию языкабиблиотека для всего моего openid и oauth?

1 Ответ

0 голосов
/ 21 июня 2019

Вы должны иметь возможность, чтобы ваш код на стороне сервера не перенаправлял браузер пользователя на URL-адрес обработчика модуля, а фактически выполнял прямой обратный вызов к нему для обновления токена доступа.Вы должны будете забрать и представить cookie сессии, чтобы иметь возможность сделать этот вызов.

...