Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Авторизация на сайте через гугл

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Gerd
Отправлено: 05 Апреля, 2019 - 21:26:55
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 650
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)

[+][+][+]


CODE (javascript):
скопировать код в буфер обмена
  1.     function onSignIn(googleUser) {
  2.         // Useful data for your client-side scripts:
  3.         var profile = googleUser.getBasicProfile();
  4.         console.log('ID: ' + profile.getId()); // Don't send this directly to your server!
  5.         console.log('Full Name: ' + profile.getName());
  6.         console.log('Given Name: ' + profile.getGivenName());
  7.         console.log('Family Name: ' + profile.getFamilyName());
  8.         console.log('Image URL: ' + profile.getImageUrl());
  9.         console.log('Email: ' + profile.getEmail());
  10.  
  11.         // The ID token you need to pass to your backend:
  12.         var id_token = googleUser.getAuthResponse().id_token;
  13.         console.log('ID Token: ' + id_token);
  14.     }  


Есть следующий код, получаем все необходимые данные. Вопрос в том, как зарегистрировать пользователя. Поиск и регистрация по электронке, отправляем яксом запрос к php c эмеил адресом. И авторизовываем, либо регаем...


Вопрос в том, что если другой пользователь подставит свой адрес электронки и его система авторизует. Как быть в таком случаи?
 
 Top
Vladimir Kheifets
Отправлено: 06 Апреля, 2019 - 08:00:26
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Gerd пишет:
Вопрос в том, что если другой пользователь подставит свой адрес электронки и его система авторизует. Как быть в таком случаи?

Добрый день!
Если другой пользователь подставит свой адрес электронки, то его система авторизует, только при наличии его мэйла в Вашем проекте.
Чтобы использовать API Вам необходимо создать проект.
https://console[dot]developers[dot]google[dot]com/
Там нужно ввести учётные данные. Например, мэйл пользователя и URL,
к которым он получает доступ.
https://vivazzi[dot]pro/it/auth-google/
Удачи!
 
 Top
Gerd
Отправлено: 06 Апреля, 2019 - 09:00:25
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 650
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)

[+][+][+]


Проект создан, данные о пользователе получаю в консоле после того как пользователь разрешил доступ и при следующих загрузках страниц(не выполняя никаких действий).

Подскажите, если третьи лица знают эмеил адрес другого пользователя и имеют навыки в php(отправка якса). То получается к примеру я могу внести правки в исходном коде страницы и отправить пост запрос к скрипту на сайту с указанием emeil адрес. То получается, что по факту я смогу авторизоваться под любым аккаунтом на сайте. Вот этот мне момент не понятен, как быть с безопастностью в данном случаи?


Другой вопрос как указать url страницы после того как пользователь разрешает доступ к совим данным, чтобы его система перенаправил на ту страницу с которой был выполнен запрос к гуглу.
 
 Top
Gerd
Отправлено: 07 Апреля, 2019 - 08:39:33
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 650
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)

[+][+][+]


хелп
 
 Top
Vladimir Kheifets
Отправлено: 08 Апреля, 2019 - 08:37:59
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Gerd пишет:
хелп

Добрый день!
Мне кажется, что затея у Google была такая:
Создаётся сайт (клиент Google API) и проект на Google.
В учётных данных пользователя этого проекта указывается мейл пользователя
и URL2, на который проект разрешает переход после успешной авторизации.
В учётных данных клента указывется URL1 сайта, с которого будет
отправляться запрос на авторизацию.
На сайте-клиента URL1, по клику пользователя по кнопке "зайти через гугл",
запускается класс API отправляющий запрос на авторизацию.
На URL2 запускается класс API отправляющий запрос для получения результата авторизации.
Что у Google не верно с точки зрения безопасности?
Попытайтесь сформулировать более конкретно Ваши опасения.
Удачи!
 
 Top
Gerd
Отправлено: 09 Апреля, 2019 - 22:55:53
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 650
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)

[+][+][+]


Не могу разобрать...

Первое, повесил событие на элемент html. То есть пользователь кликает по блоку на сайте, а js в свою очередь кликает по кнопке от гугла. Вопрос, как можно избавиться от лишних движений. То есть чтобы при клике на блок на сайте, сразу отправить запрос к гугулу на разрешение авторизации.

Второе, да, изначально необходимо указать url куда отправлять пользователей после авторизации. Но читая различную документацию по api от гугл. Можно указать в настройках видимо сайта, то есть при отправке запроса так же отправлять url страницы на которой находится посетитель. Так вот, как это сделать после того как снимится задача по первому вопросу.
 
 Top
Vladimir Kheifets
Отправлено: 10 Апреля, 2019 - 07:11:37
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Gerd пишет:
Не могу разобрать...
Первое, повесил событие на элемент html. То есть пользователь кликает по блоку на сайте, а js в свою очередь кликает по кнопке от гугла. Вопрос, как можно избавиться от лишних движений. То есть чтобы при клике на блок на сайте, сразу отправить запрос к гугулу на разрешение авторизации....

Давайте сначала разберёмся с этим.
Пользователь кликает по блоку на сайте, а в js отрабатывается событие click или touchstart и отправляется запрос на гугле. Появляется окно автризации гугле и поситительт вводит свой мэйл. После авторизации гугле запускает URL указанный в проекте.
В связи с этим ничего лишнего не увидел.
Не хотите лишних движений, делайте авторизцию сами.

(Отредактировано автором: 10 Апреля, 2019 - 07:37:00)

 
 Top
Gerd
Отправлено: 10 Апреля, 2019 - 10:42:33
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 650
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)

[+][+][+]


[quote=Vladimir Kheifets][/quote]

После клика по блоку, срабатывает click, в нем через js кликает по скрытой кнопке от гугла

CODE (javascript):
скопировать код в буфер обмена
  1. $(this).on('click', function(elem){  
  2.         var namvl = $(this).attr('data').split('--');
  3.         $('.'+namvl[1], 0).click();
  4. });


Как сделать так, чтобы при клике, не кликали по кнопке, а сразу отправляли запрос к гуглу.

(Отредактировано автором: 10 Апреля, 2019 - 10:44:04)

 
 Top
Gerd
Отправлено: 10 Апреля, 2019 - 12:59:51
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 650
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)

[+][+][+]


Кли по клику на блок вызывать
onSignIn(googleUser);
Не определяется googleUser;
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB