Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> авторизация на сайте через расшгирение, авторизация на сайте через расшгирение 
:(
    Опции темы
vokkin
  Дата 6.9.2019, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 6.9.2019

Репутация: нет
Всего: нет



Добрый день! Делаю расширение браузера Google Chrome. Не могу справиться с авторизацией. Нужно что бы было так: 

Если расширение включено, то при заходе на сайт была бы авторизация на сайте. Если расширение отключено, то пользователь браузера заходил бы на сайт как не авторизованный клиенn. 

Как это можно сделать? 

Если кто поделиться куском кода буду безумно признателен )))  

Это сообщение отредактировал(а) vokkin - 6.9.2019, 09:59
PM MAIL   Вверх
od0201
Дата 10.9.2019, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 16.1.2009

Репутация: нет
Всего: 1



1 способ
определить погрузились ли элементы и заполнить их, например
$('input#username).val('[email protected]')
и отправить форму
$("button#other").click()

2 способ 
через HTTP Сниффер посмотреть куда и что отсылает форма и 
через chrome.runtime.onMessage.addListener в background.js функцией fetch отсылаем такую же форму
что такое обещание и асинхронность знать обязательно.

пример кода для второго способа, кода было много, поубирал лишнее
Код

// main.js 
      API_SERW('APIname=getPsw&idf='+newIdf) // получаю со своего сервера пароль, логин у меня передается в адресной строке
      .then(response=>get("/member.php",{method: 'POST', body: {ID:newIdf,Passw:response.psw}}))  
      .catch(error => {console.error(error)})

function get(a,o){  // данной функцией я делаю не только авторизацию но и все GET и POST запросы на сайте
  return new Promise (function (resolve,reject){
    chrome.runtime.sendMessage({script: "xxx", argument: a, options: o}, function(response) {
      if (response==''){
        reject(response);                        
      }
      else {            
        resolve(response);
      }        
    });
  });
}


Код

// background.js
chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if (request.script) {
            var url;
            var options={};
            if (request.options){options=request.options}
            if (request.script == 'xxx'){
                url = "https://www.XXXXXXX.com/" +request.argument;
            } 
      if (options.body){
        var formData  = new FormData();
        for(var name in options.body) {
          formData.append(name, options.body[name]);
        }
        options={method: options.method, body: formData}
      }
      
      fetch(url,options)
        .then(response => response.text())
                .then(price =>sendResponse(price))
        .catch(err => sendResponse(err))
      return true;  // Will respond asynchronously.

    }
  });

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1384 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.