У меня проблема со входом в Google. Я следую инструкциям по Входу в Google для сервера- сторонние приложения После всего этого шага у меня есть этот html-файл, который запускается на сервере:
<!DOCTYPE html>
<html itemscope itemtype="http://schema.org/Article">
<head>
<link rel="stylesheet" href="theme.css">
<!-- BEGIN Pre-requisites -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="https://apis.google.com/js/client:platform.js?onload=start" async defer></script>
<!-- END Pre-requisites -->
<script>
function start() {
gapi.load('auth2', function() {
auth2 = gapi.auth2.init({
client_id: 'CLIENT_ID'
});
});
}
</script>
</head>
<body>
<button id="googleBtn">Connect</button>
<script>
$('#googleBtn').click(function() {
auth2.grantOfflineAccess().then(googleCallback);
});
</script>
<script>
function googleCallback(authResult) {
if (authResult['code']) {
console.log(authResult);
} else {
console.log(authResult);
}
}
</script>
</body>
</html>
Эта первая часть работает отлично (я думаю), когда я нажимаю кнопку, появляется всплывающее окно, я выбираю учетную запись и получаю код. Итак, теперь я хочу получить электронную почту и профиль, поэтому я делаю этот запрос в nodejs, чтобы обменять код на токен доступа.
var form = {
code: 'XXXXXXXXXXXX',
client_id: 'CLIENT_ID,
client_secret: 'CLIENT',
grant_type:'authorization_code'
};
var formData = querystring.stringify(form);
var contentLength = formData.length;
request({
headers: {
'Content-Length': contentLength,
'Content-Type': 'application/x-www-form-urlencoded'
},
uri: 'https://www.googleapis.com/oauth2/v4/token',
body: formData,
method: 'POST'
}, function (err, rep, body) {
console.log(err);
console.log(rep.statusCode);
console.log(body);
});
Но в ответ у меня это
{
"error": "redirect_uri_mismatch",
"error_description": "Bad Request"
}
И я не понимаю почему, потому что я не использую redirect_uri в основном запросе в html файле. Я пробовал некоторые случаи, такие как добавление redirect_uri в API консоли и в запросе, но у меня тот же результат...
Вы можете помочь мне ?