Ответ Google oauth 400: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin»

Я пытаюсь сделать запрос от клиентского JavaScript к конечной точке Google oauth (https://accounts.google.com/o/oauth2/v2/auth) с областью календаря Google. Дело в том, что я не могу использовать клиент javascript от Google, потому что на самом деле я использую webpack, и я не хочу отдельно включать скрипт javascript вне моего bundle.js.

Поэтому вместо этого я использую axios (https://github.com/mzabriskie/axios) сделать HTTP GET к вышеупомянутой конечной точке токена. Вот как выглядит мой запрос:

https://accounts.google.com/o/oauth2/v2/auth?response_type=token&client_id={client id here}&nonce=c8ef445540186351d9108ad64d7a5b65&scope=https:%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar

Я сгенерировал одноразовый номер, используя функцию MD5 библиотеки crypto-js. Вот заголовки запроса:

Accept:application/json, text/plain, */*
Origin:http://localhost:8000
Referer:http://localhost:8000/admin
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36

Ответ, который я получаю от Google, выглядит так:

alt-svc:quic=":443"; ma=2592000; v="32,31,30,29,28,27,26,25"
alternate-protocol:443:quic
cache-control:no-cache, no-store, max-age=0, must-revalidate
content-encoding:gzip
content-type:text/html; charset=utf-8
date:Mon, 18 Apr 2016 07:16:21 GMT
expires:Fri, 01 Jan 1990 00:00:00 GMT
pragma:no-cache
server:GSE
status:400
x-content-type-options:nosniff
x-frame-options:SAMEORIGIN
x-xss-protection:1; mode=block

И я вижу этот журнал в моей консоли chrome devtools:

XMLHttpRequest cannot load https://accounts.google.com/o/oauth2/v2/auth?response_type=token&client_id={client id here}&scope=https:%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access. The response had HTTP status code 400.

Я убедился, что в моей консоли приложения Google под соответствующим идентификатором клиента я добавилHTTP: // локальный: 8000 в поле «Authorized Javascript Origins», и я обязательно включил авторизацию для календаря API Google. Я читал, что неявный поток аутентификации веб-клиента не использует URI перенаправления, но я попытался заполнить его независимо (я пробовал значенияHTTP: // локальный: 8000 а такжеHTTP: // локальный: 8000 / администратор, с которой я отправляю запрос). Потратив часы на поиски, я не нашел ничего, что могло бы предположить, что то, что я делаю, не должно работать

Итак, мой вопрос, если я позволилHTTP: // локальный: 8000 как авторизованный источник для моего идентификатора клиента, почему я до сих пор не могу отправить запрос (хотя и через javascript) на конечную точку аутентификации?

Ответы на вопрос(1)

Ваш ответ на вопрос