2016-10-25 5 views
0

Я пытаюсь внедрить Google + аутентификацию с помощью стратегии Google Passport и вернуть токен доступа на стороне клиента (Угловой) для последующих запросов. Но я продолжаю получать ошибку на стороне клиента. «XMLHttpRequest не может загрузить https://accounts.google.com/o/oauth2/v2/auth?response_type=code&redirect_ur ... = 1094664898379-8u0muh9eme8nnvp95dafuc3rvigu4j9u.apps.googleusercontent.com. Нет заголовок« Access-Control-Allow-Origin »присутствует на запрошенном ресурсе. Поэтому« http://localhost:3000 »не имеет доступа». что я получаю при реализации стратегии Google для проверки подлинности в своем веб-приложении. Я использую Angular framework на стороне клиента и Express на сервере.Стратегия Angular-Express-Google для проверки подлинности Google+ неспособна передать токен доступа на угловой

Я также ссылался на следующие предыдущие сообщения для решения, но безрезультатно. Предлагаемые решения - использовать простой href на стороне клиента, но я не знаю, как маркер доступа можно передать на клиентскую сторону для последующего запроса API. Любая помощь будет оценена.

Angular/Node/Express/Passport - Issues when connecting to facebook(CORS) Angular/Node/Express/Passport Cross Domain Problems - Enable CORS Passport Facebook Authentication

ответ

0

После долгих поисков, который был расстраивает, я, наконец, смог обойти эту проблему с помощью Google маркеров стратегии для проверки подлинности. Здесь я сначала аутентифицирую пользователя на стороне клиента, а затем аутентифицирую токен на сервере. Ниже приведен фрагмент кода для fb, но это относится и к Google.

+0

Mine is SPA с шаблоном, управляемым угловым. Если бы это не сработало, я бы воспользовался href, чтобы назвать стратегию паспорта для клятвы Google и попытался передать аутентифицированного пользователя обратно на клиентскую сторону. Или я бы в конечном итоге использовал серверный механизм шаблонов, например EJS, чтобы сделать мою архитектуру сложной –