google Oauth2.0 удостоверяване - не продължава към redirect_uri

Опитвам се да внедря влизане с Google в моя уеб сайт. Потребителите могат да посещават моя сайт в 3 домейна

1) обикновена връзка (HTTP и WWW...) 2) http://example.com - без www 3) приложения .facebook.com/example - приложение за facebook

Искаме да позволим на потребителя да се свърже с Google в тези три опции.

Използваме gapi (google javascript библиотека), за да удостоверим потребителя. Моят код изглежда така:

   var config = {
        'client_id': 'my_client_id',
        'scope': 'my_scopes',
        **'redirect_uri' : "https://www.example.com/oauth/",**
        'immediate': immediate
    };
    **gapi.auth.authorize(config, function(){});**

Както можете да видите, задавам своя URI за пренасочване като част от конфигурацията на gapi. Създадохме изскачащ прозорец, за да дадем един и същ URI за трите домейна.

Проблемът ми е, че в случай, че вляза в сайта си от домейна без WWW, авторизацията не работи и потребителят не се пренасочва към връзката redirect_uri - което означава, че нямаме неговия токен.

В случай, че премахвам WWW в redirect_uri (така че ще изглежда като https://example.com/oauth/) фейсбук домейнът не работи...

Толкова е разочаровано. Някой запознат ли е с подобен проблем? Някаква идея?

Прекарахме твърде много часове в него...

Благодаря Z




Отговори (1)


Можете да регистрирате множество URI адреси за пренасочване за един клиент в Google API Console, така че да регистрирате по един за всеки домейн и да подадете този за текущо достъпния домейн в параметъра redirect_uri на заявката за оторизация. Не е необходимо да използвате един и същ URI за пренасочване във вашите домейни, така че това трябва да реши вашите проблеми с възстановяването на състояние/токен. въведете описание на изображението тук

person Hans Z.    schedule 29.12.2014
comment
опитахме да работим с няколко redirect_uris, но след това имахме проблем, че изскачащият прозорец за удостоверяване не винаги се затваря.. Затова избираме да отворим собствения си изскачащ прозорец, да запазим токена там, да го изпратим на сървър и след това обратно към клиента, за да го използвате за следващите разговори.. - person Zee; 29.12.2014
comment
Мисля, че това би бил различен въпрос тогава, за да се опитате да отстраните грешки защо изскачащият прозорец не винаги се затваря. Във всеки случай бих препоръчал да не използвате изскачащ прозорец, а пълно пренасочване на браузъра, тъй като това е препоръчителният подход и най-добрата практика за външно влизане. - person Hans Z.; 29.12.2014
comment
Наистина ли? доколкото виждаме в други сайтове, те работят с изскачащия прозорец за удостоверяване на google и след влизане го затварят.. (проверете pinterest) - person Zee; 29.12.2014
comment
Popup прави по-трудно за потребителя да разпознае легитимността на страниците на IDP и по-трудно за IDP да осигури универсално работеща и добре показваща се страница за вход; Google позволява влизане чрез изскачащ прозорец чрез изрично изключение само защото използват X-Frame-Options за разбиване на кадри. - person Hans Z.; 29.12.2014
comment
Мисля, че моята посока трябва да се съсредоточи върху HTTPS и HTTP връзката... Това може да е проблемът там - person Zee; 29.12.2014
comment
можете да преминете от http към https (в заявка-›отговор), но не и обратното - person Hans Z.; 29.12.2014
comment
Решаваме проблема. Проблемът беше свързан с нашия изскачащ формуляр, а не с Google. Благодаря много Ханс за помощта - person Zee; 30.12.2014