Я новичок в запросах API и JavaScript ...
Я пытаюсь использовать API, основанный на протоколе OAuth2.0 (Предоставление кода авторизации).
Не знаюне понимаю, как я могу пройти первый шаг:
- почему мой запрос не генерирует перенаправление на redirect_uri?
- после того, как перехватить параметры URL, содержащиеся в этом перенаправленииurl?
Вот мой фактический код:
const link = 'https://gw.hml.api.fr/group/espace-particuliers/consentement/oauth2/authorize?client_id=MY_API_CLIENT_ID&state=fz80ac780&duration=P6M&response_type=code&redirect_uri=https://gw.hml.api.fr/redirect';
const connect = document.getElementById('connect-btn')
if (connect) {
connect.addEventListener('click', function(event) {
event.preventDefault();
fetch(link)
.then(response => response.text())
console.log(response);
// HOW TO CATCH THE REDIRECTION_URI PARAMS ?
});
};
Пример ответа:
<html lang="fr">
<head>
<meta charset="utf-8" />
</head>
<body>
<p>Veuillez patienter...</p>
<script type="text/javascript">
/**
* Delete cookies (iPlanetDirectoryPro, amlbcookie)
*/
function removeCookie(cookieName) {
cookieValue = "";
cookieLifetime = -1;
var date = new Date();
date.setTime(date.getTime() + (cookieLifetime*24*60*60*1000));
var expires = "; expires=" + date.toGMTString();
document.cookie = cookieName+"=" + JSON.stringify(cookieValue) + expires+"; path=/; domain=.ene.fr";
}
removeCookie("iPlanetDirectoryPro");
removeCookie("amlbcookie");
/**
* Parse url query
*/
var parseQueryString = function( queryString ) {
var params = {}, queries, temp, i, l;
// Split into key/value pairs
queries = queryString.split("&");
// Convert the array of strings into an object
for ( i = 0, l = queries.length; i < l; i++ ) {
temp = queries[i].split('=');
params[temp[0]] = temp[1];
}
return params;
};
var url = "https://gw.hml.api.fr/redirect?code=sD4F5RT3qPPJ15qFhrGu32YiumzN5D&state=fz80ac780&usage_point_id=225158214714453";
// Get redirect_uri params
var queryString = url.substring( url.indexOf('?') + 1 );
var params = parseQueryString(queryString);
var forceNonAutomaticClose = params.close !== undefined && params.close == 'false';
// Avoid closing popup
if (forceNonAutomaticClose || !this.window.opener || this.window.opener.closed) {
this.window.location.href = url;
} else if (this.window.opener && !this.window.opener.closed) {
// Close popup
this.window.opener.location.href = url;
this.window.close();
}
</script>
</body>
</html>
Как мне заполнить мой код?
Спасибо!