Я человек, который практикует Google oauth2.0. Я создаю пример, но он плохо работает с аутентификацией Oauth.
Во-первых, операция в index.html выглядит следующим образом. Запросите Oauth-токен запроса с помощью простого тега с помощью команды href.
<a href="https://accounts.google.com/o/oauth2/v2/auth?
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.readonly&access_type=offline&
include_granted_scopes=true&state=state_parameter_passthrough_value&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2FreceiveCode&response_type=code&client_id=665922514832-f7n0s3chgn41vsojtg4gfl2j7c5a5lfr.apps.googleusercontent.com">Using google API
</a>
<form action='http://localhost:3000/user' method='get'>
<button name="subject" type="submit" value='THIS 123!@# IS GET!!' href='www.google.com'>get</button>
</form>
Авторизованный URI перенаправления здесь: http: // localhost: 3000 / receiveCode.
Я хотел использовать restful API вместо php-файла.
До сих пор это так хорошо работало. Проблема в том, что я не могу использовать Scope после входа на сайт Google.
Согласно шагу 5 справки Google https://developers.google.com/identity/protocols/OAuth2WebServer,
сеанс связан с авторизованным URI перенаправления, а затем различные данные, такие как значения кода, отправляются в POST для запроса токена доступа
Однако в receiveCode, который я установил в качестве маршрутизатора, это всегда GET.
Код выглядит следующим образом и URL результата:
http://localhost:3000/receiveCode?state=state_parameter_passthrough_value&code=4/AAAhDsl2wLidOA1Gqq9UzXbeWMe25sYx_8HtXx3_rGgeY9cm5mp2uSvdRBNqF6Da9ScEp0jE10mF_ibibEsM3x4&scope=https://www.googleapis.com/auth/calendar+https://www.googleapis.com/auth/calendar.readonly#
router.get('/receiveCode', (req, res, next) => {
//NOT ERROR BUT NOT POST
})
router.post('/receiveCode', (req, res, next) => {
// ERROR (Internal Server Error)
// actually... never calling enter post method
})
Я не уверен, является ли это структурной проблемой или API, который использует post.
Разве вы не должны использовать restAPI в экспрессе?