Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 OAuth2 протокол и передача данных из MS SQL  [new]
BESO1212
Member

Откуда: Грузия Г. Рустави
Сообщений: 31
Доброго дня ребята. Я не знаю открыть это тема на это разделе правильно или нет ?! Если не правильно - надеюсь вы меня простите :wink:
Ситуация такая : Для одного организаций написано программа на Delphi XE3 и применяется СУБД MS SQL Server 2014 там какой то данных клиента - ничего особенного .
Вопрос такой : Требуется передать данных из MS SQL Server - образно: SELECT … FROM Tab WHERE… каждого дня по OAuth2 протокол, там дали какой то тестовый аккаунт на сайте… Я не знаком OAuth2 -ом. на google информация много - не понятно из чего начать ? Пожалуйста силка если можно примером - чтобы изучать , потренировать…
и ещё такой вопрос: Вот такой задача проще реализовать из Delphi или есть возможности из MS SQL Server как то передать это запрос ?
9 фев 21, 09:27    [22277850]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
энди
Member

Откуда: Киров, Россия
Сообщений: 1233
1) что мешает поискать информацию по использованию OAuth2 в Delphi?
2) технически можно написать так называемый extended procedure в виде внешнего модуля к sql server чтобы отсылка шла прямо на самом сервере, но там надо будет реально потрахаться. Мы в свое время цепляли генерацию pdf из fastreport на sql сервер, и по идее это работало, но муторно конечно.
9 фев 21, 13:00    [22278024]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 27064
BESO1212
Требуется передать данных из MS SQL Server - образно: SELECT … FROM Tab WHERE… каждого дня по OAuth2 протокол

Это же только авторизация... Далее будет интереснее. Проще на rest сразу ориентироваться.
9 фев 21, 14:36    [22278151]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

BESO1212
Вопрос такой : Требуется передать данных из MS SQL Server - образно: SELECT … FROM Tab
WHERE… каждого дня по OAuth2 протокол

Ответ такой: по OAuth2 протоколу невозможно передавать данные. Можешь отправляться к
давшему такое задание и говорить "я не могу это сделать".

Posted via ActualForum NNTP Server 1.5

9 фев 21, 14:54    [22278173]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
BESO1212
Member

Откуда: Грузия Г. Рустави
Сообщений: 31
Ладно, так образно понял что надо делать и буду реализовать... Ребята при все уважение всех участников этого форума и спасибо что ответили... Я попросил силка примером из чего проще будет разбирать - больше нечего... Ладно, спасибо и удачного вам дня .
9 фев 21, 16:09    [22278241]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

О, так это был не спамобот? Из-за циферок в нике я ожидал очередную хрень "я решил свой
проблему" с линком на сайт с вирусами...

Posted via ActualForum NNTP Server 1.5

9 фев 21, 16:19    [22278248]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
BESO1212
Member

Откуда: Грузия Г. Рустави
Сообщений: 31
Уважаемый Dimitry Sibiryakov это вы про кого ?
автор
О, так это был не спамобот? Из-за циферок в нике

про меня говорите да ? Я очень редко бываю на этот форуме и если кто то на меня так думает . Я готов давать модераторов - администрацию 1) Мои ник на другом форуме... 2) Мои E_Mail ... 3) Говорить страна и город где я живу... 4) Сказать номер мобильный телефона....
Что было понятно что не спамер.... А ваши негативное мышление НЕ интересно не кого и скажу вежливо : Ваши мнения сохраните себя пожалуйста и когда будите в доме рассказывайте там у них....!

Сообщение было отредактировано: 9 фев 21, 21:10
9 фев 21, 21:14    [22278479]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
bk0010
Member

Откуда:
Сообщений: 5058
Это дискриминация ников с циферками! Это потому что я белый, да?
9 фев 21, 23:06    [22278521]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1670
BESO1212
Я готов давать модераторов - администрацию 1) Мои ник на другом форуме... 2) Мои E_Mail ... 3) Говорить страна и город где я живу... 4) Сказать номер мобильный телефона....


Мне кажется что достаточно просто заполнить в профиле поле "Откуда", что бы было понятно откуда ошибки в письменной речи.
10 фев 21, 04:16    [22278567]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
BESO1212
Member

Откуда: Грузия Г. Рустави
Сообщений: 31
bk0010
bk0010
Это дискриминация ников с циферками! Это потому что я белый, да?

Ладно, Я не против поменять ник если это возможно , и если можно обратится в администрацию с просьбой чтобы поменять ник. Можно было изначально говорить так нормально ? зачем сразу хамит я не понимаю ?!

fraks
автор
Мне кажется что достаточно просто заполнить в профиле поле "Откуда", что бы было понятно откуда

Пожалуйста, заполню

автор
ошибки в письменной речи.

Потому что Русский это НЕ радной язык и иногда допускаю орфографические ошибки.
10 фев 21, 13:22    [22278779]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6722
BESO1212,

a где лежит база, не на Microsoft Azure случаем?
10 фев 21, 13:24    [22278782]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

BESO1212
иногда допускаю орфографические ошибки.

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

Posted via ActualForum NNTP Server 1.5

10 фев 21, 13:41    [22278799]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
BESO1212
Member

Откуда: Грузия Г. Рустави
Сообщений: 31
Кроик Семён Огромное спасибо за внимание.

1) СУБД : MS SQL Server установлен на одном ПК и купили статический ip -доступно удаленно по ip - там всё нормально
2) Программа написано на Delphi подключается с помощью библиотека SDAC там всё нормально и дела не в этом...
За что я обратился к вам: это государственный отдел требует чтобы отправить данных на их сайте где на сайте при авторизаций применяется OAuth2 протокол. сайт https:// и дали аккаунт.
Вот вопрос: Отправить данных = SQL запрос SELECT............ FROM Tab WHERE ...... на сайте и авторизация это всё реализовать через Delphi или MS SQL есть такой возможности ? буду благодарен на любой "советов и примеров " если можно пожалуйста.
10 фев 21, 13:46    [22278803]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

BESO1212
Вот вопрос: Отправить данных = SQL запрос SELECT............ FROM Tab WHERE ...... на
сайте и авторизация это всё реализовать через Delphi или MS SQL есть такой возможности ?
буду благодарен на любой "советов и примеров " если можно пожалуйста.

Базовое чтение: https://en.wikipedia.org/wiki/OAuth
Гугль: https://www.google.com/search?q=MS SQL send data OAuth2
Конечный результат (третья ссылка):
https://www.example-code.com/sql/oauth2_using_authorization_token.asp

Posted via ActualForum NNTP Server 1.5

10 фев 21, 13:57    [22278819]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
BESO1212
Member

Откуда: Грузия Г. Рустави
Сообщений: 31
Dimitry Sibiryakov Посмотрю и буду изучать что делать всё что требуется. большое вам человеческое спасибо и удачного дня ;)
10 фев 21, 14:25    [22278848]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6722
(предупреждение: далее идёт мнение диванного теоретика ;-)

BESO1212,

но у них же MS SQL - сервер не торчит в веб, так что, видимо, не получится напрямую SDAC'ом пользоваться. То есть придется там на сервере расположить промежуточное звено, реализующее REST API, аутентифицироваться у него по OAuth2 и далее либо самому API дёргать, либо воспользоваться готовыми компонентами для Delphi
10 фев 21, 14:34    [22278856]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
энди
Member

Откуда: Киров, Россия
Сообщений: 1233
ну трехзвенку какую-нибудь установить, тот же tms remotedb и весь траффик пойдет через ssl, с одной стороны mssql не торчит наружу портом, с другой там практически прозрачный коннект к базе и обычные квери и датасеты, т.е там и переделки почти не требуется.
11 фев 21, 00:37    [22279222]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
BESO1212
Member

Откуда: Грузия Г. Рустави
Сообщений: 31
Задача решили вот так
1) Каждого дня : вечером SQL запрос select собрать данных
2) Авторизовать ! получить access_token и передать его
3) Данных JSON передаю в цикле через MSQuery1
procedure TSender.AvtorizationPol_ge;
var
    MyParams :  TStringList;
     //--- JSON
     JSONObject, RequestBody: ISuperObject;
     //--- Для отправка данных на сервере
     SendJS: TStringStream;
     //-- Для цикла MSADOquery
     i:Integer;
     //---------
    st: TStreamReader;
begin
  try
    // ---TStringList Создать
    MyParams:= TStringList.Create;
    //---- Всё параметри внимательно
    MyParams.Add('username=xxxxxxx@gmail.com') ;
    MyParams.Add('password=*****');
    MyParams.Add('client_id=lombard-service') ;
    MyParams.Add('client_secret=7676a315-eb0e-4123-bcbf-e5ee8710a422');
    MyParams.Add('grant_type=password') ;
  //--------HandleRedirects := true; ----------------------
   IdHTTP1.HandleRedirects := true;
   // --------Только это для SSL -----------
   IdHTTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
  //--Без этого тоже работает. Но я добавил что запрос отправил utf-8 -------------------
     IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
     IdHTTP1.Request.Charset := 'utf-8';
    // Хранить тексть запроса на
    edtAvtorization.Text := IdHTTP1.Post('https://accounts.police.ge/auth/realms/company/protocol/openid-connect/token', MyParams);
    //--------Создать----------
    JSONObject:=TSuperObject.Create;
    //---Передать все тексть
    JSONObject:=SO(edtAvtorization.Text);
    //----Получить только  access_token   Memo2.Text
    edtAccess_token.Text:=JSONObject.S['access_token'];

  finally
     MyParams.Free;
  end;
  //---- передать данных

  idHTTP1.Request.Clear;

//------------
  idHTTP1.Request.CustomHeaders.FoldLines := False;      // access_token  
  idHTTP1.Request.CustomHeaders.Values['Authorization'] := 'Bearer '  + edtAccess_token.Text;
  //----------------------------------------------------------------
  if  MSQuery1.RecordCount <>0 then
  begin
  try
  MSQuery1.Open;
//  -----------------------
// s := BytesToStringRaw(MSQuery1.FieldByName('base64').AsString);
//---------------------------
  MSQuery1.First;
  for i:=0 to MSQuery1.RecordCount-1  do
  begin
  RequestBody := SO('{"personalNo": "'+MSQuery1.FieldByName('personalNo').AsString+'", '+  //  
                    ' "firstName": "'+MSQuery1.FieldByName('firstName').AsString+'", '+
                    ' "lastName": "'+MSQuery1.FieldByName('lastName').AsString+'", '+
                    ' "birthDate": "'+FormatDateTime('yyyy-mm-dd', MSQuery1.FieldByName('birthDate').AsDateTime)+'", '+    //
                    ' "citizenship": "'+MSQuery1.FieldByName('citizenship').AsString+'", '+   //
                    ' "phone": "'+MSQuery1.FieldByName('phone').AsString+'", '+    //
                    ' "realAddress": "'+MSQuery1.FieldByName('realAddress').AsString+'", '+ //
                    ' "customerId": "'+MSQuery1.FieldByName('customerId').AsString+'", '+  //
                    ' "itemList": [ '+
                    ' { "type": "itemTechnic", '+
                    ' "subType": "'+MSQuery1.FieldByName('subType').AsString+'", '+  //
                    ' "createDate": "'+FormatDateTime('yyyy-mm-dd', MSQuery1.FieldByName('createDate').AsDateTime)+'", '+  //
                    ' "brand": "'+MSQuery1.FieldByName('brand').AsString+'", '+   //
                    ' "model": "'+MSQuery1.FieldByName('model').AsString+'", '+   //
                    ' "serialNumber": "'+MSQuery1.FieldByName('t_imei').AsString+'", '+    //
                    ' "price": "'+MSQuery1.FieldByName('price').AsString+'", '+   //
                    ' "currency": "GEL", '+
                    ' "info": "'+MSQuery1.FieldByName('info').AsString+'", '+ //    
                    ' "itemId": "'+MSQuery1.FieldByName('customerId').AsString+'", '+        //
                    ' "photos": [ '+
                    ' { '+
                    ' "data": "'+MSQuery1.FieldByName('base64_2').AsString+'", '+    //
                    ' "name": "Kohinoor.jpeg" '+
                    ' } '+
                    ' ], '+
                    ' }]}  ');
   //---------------------------------

      SendJS := TStringStream.Create(RequestBody.AsString , TEncoding.UTF8);
      idHTTP1.Request.ContentType := 'application/json; charset=utf-8';
                                   //------------
      idHTTP1.post('https://api.pol.ge/api/test/branches/2/customers',  SendJS );
     MSQuery1.Next;
  end
    except
      raise Exception.Create('ошибка JSON ');
  end;
  end;
end;


Сообщение было отредактировано: 2 апр 21, 00:40
2 апр 21, 00:46    [22303203]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
L_argo
Member

Откуда:
Сообщений: 1456
Поосторожнее с прямым "текстовым" созданием JSON, XML !
Если в данных встретятся управляющие символы(кавычки, скобки и пр.) то файл получится поломанным.
А еще возможно тело JSON, XML должно быть в UTF8.
2 апр 21, 09:32    [22303231]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
Fr0sT-Brutal
Member

Откуда:
Сообщений: 682
Зачем клеить json вручную, если и так уже применяется SuperObject?
2 апр 21, 10:29    [22303248]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
BESO1212
Member

Откуда: Грузия Г. Рустави
Сообщений: 31
L_argo
Поосторожнее с прямым "текстовым" созданием JSON, XML !
Если в данных встретятся управляющие символы(кавычки, скобки и пр.) то файл получится поломанным.
.

Да я заметил это...
2 апр 21, 11:09    [22303266]     Ответить | Цитировать Сообщить модератору
 Re: OAuth2 протокол и передача данных из MS SQL  [new]
BESO1212
Member

Откуда: Грузия Г. Рустави
Сообщений: 31
Fr0sT-Brutal
Зачем клеить json вручную, если и так уже применяется SuperObject?

Как зачем ? требование было что каждого дня передать данных .... SuperObject хороши модуль . помогло парсить access_token и передать данных... Я это модуль полностью не изучал .... Время было мало и задача надо было решать ... Решил так и всё нормально работает ... удачного всем дня ребята ;)
2 апр 21, 11:14    [22303269]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить