Я создаю веб-приложение, которое будет состоять из внутренней и внешней (веб) части. Я хочу ввести аутентификацию между этими двумя частями, и я намерен использовать для этого OAuth2.
Фронтенд будет действовать как клиент OAuth, а бэкэнд будет выступать в роли провайдера OAuth, поэтому бэкэнд будет выдавать токен доступа и обновления.
Мой план состоит в том, чтобы хранить токен обновления, конечно, на стороне бэкенда, и хранить токен доступа на стороне внешнего интерфейса (и отправлять токен доступа с каждым запросом в качестве параметра заголовка). Допустим, токен доступа действует 24 часа, а токен обновления - 3 месяца.
У меня вопрос: когда (и как) мне следует обновить токен доступа, который хранится на стороне интерфейса? (Я спрашиваю об этом, потому что хочу обновить его до истечения срока его действия; не хочу сталкиваться с пользователем с потоком входа в систему, если в этом нет необходимости)
- Должен ли я возвращать новый токен доступа после каждого успешного запроса и хранить его на стороне интерфейса (звучит не очень хорошо)
- Должен ли я возвращать новый токен доступа, если срок действия существующего просто истекает - вероятно, необходимо проверить на стороне интерфейса, возвращается ли новый токен доступа через параметры заголовка, и если да, то заменить старый.
- Должен ли я хранить как токен доступа, так и токен обновления на стороне Frontend, и если токен доступа истек, получить новый с помощью токена обновления
- Что-то другое?
Я не уверен, что лучше всего.
frontend
будет предоставлятьaccess_token
для ресурсов? Вашеfrontend
приложение - это веб-приложение с сервером или одностраничное приложение, работающее в браузере? Какой тип разрешения OAuth вы будете использовать? - person iandayman   schedule 27.04.2018