Я пытаюсь создать сервер OAuth 2.0 самостоятельно.(Я не хочу использовать никаких OAuth-провайдеров)
И я действительно не понимаю, когда мне нужно генерировать код авторизации.
У меня есть сервер OAuth 2.0 иТестовый сервер (на котором есть кнопка «Войти с помощью»)
Когда я нажимаю «Войти с именем моей компании» на тестовом сервере, он перенаправляет меня на:
https://oauthserver.com/v1/oauth/authorize?client_id=[[id]]&scope=read&response_type=code&redirect_uri=https://testserver.com/callback (адреса не являются реальными, просто для примера)
(я не создаю всплывающее окно, я использую перенаправление)
В данный момент мой сервер OAuth проверяетвсе параметры запроса, и если все в порядке, сервер возвращает HTML-документ с 2 кнопками (подтвердить и отклонить)
Когда пользователь нажимает «Подтвердить», я должен отправить браузер пользователя на URI перенаправления с кодом authorization_code. Но в какой момент мне нужно сгенерировать этот код , так как я уже отправил html-документ?
Я подумал, что должен сделать запрос GET на какую-нибудь ссылку, когда пользователь нажимает "«Подтвердите», и когда приходят данные, я просто использую window.location.replace
(код ниже)
const url = "some url where auth code will be generated and returned";
fetch(url).then((code) => {
console.log('code: ', code);
window.location.replace('https://testserver.com/callback?code=${code}');
}).catch(e => {});
Но я проанализировал OAuth Google, и они не делают никакого запроса на выборку, чтобы сгенерировать код авторизации.
Так каков наилучший способ (момент) для генерации и отправки кода авторизации?