Действия в Google Неявный Oauth Flow не удается ... Что не так? - PullRequest
0 голосов
/ 24 апреля 2019

Я реализую свой собственный Oauth-сервер для неявного oauth-потока, как определено здесь https://developers.google.com/actions/identity/oauth2?oauth=implicit

Кажется достаточно простым, после проверки деталей клиента мне просто нужно перенаправить, верно?Вот где я столкнулся с проблемой.В документации сказано, что URL перенаправления должен быть следующим:

https://oauth -redirect.googleusercontent.com / r / YOUR_PROJECT_ID # access_token = ACCESS_TOKEN & token_type = тип канала-носителя & state = STATE_STRING

Обратите внимание на '#' .

Однако, когда вы перенаправляете на этот URL, кажется, что это странно портит действия в Google, после чего намерение «Войти в помощника», которое мы использовали ранее, на мгновение, похоже, работает, а затем не удается.Это должно произойти сбой, но консоль не показывает никаких ошибок yes, it is going to work! but alas no!

На самом деле эта проблема сохраняется, и единственный способ, которым я имеюнайдено удаление это воссоздать проект.(О, боль: /)

Однако, когда я заменяю "#" на "?"как обычная строка запроса, после перенаправления мы получаем ошибку 400 -

Параметр "код" или "ошибка" должен быть установлен в строке запроса.

Я не уверен, что я делаю не так здесь.Для справки это JS, который создает URL перенаправления -

//bearerToken already generated at this point in the code
var redirectUri = params.get("redirect_uri");
var state = params.get("state");
var redirectString = redirectUri;
redirectString+="#access_token="+bearerToken;
redirectString+="&token_type=bearer";
redirectString+="&state="+state;
window.location.href=redirectString;

1 Ответ

0 голосов
/ 13 июня 2019

Они единственное, что я сделал, отличное от вас, которое заставило его работать в конце, использовало window.location.replace вместо window.location.href.

Насколько я понимаю window.location.replace - это способ симуляции на стороне клиентаперенаправление HTTP.

Мой URL выглядел следующим образом https://oauth-redirect.googleusercontent.com/r/project-id#access_token=4cc355t0k3n&token_type=bearer&state=AB8b_TOEy...

...