Авторизация пользователей из внешних систем: различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
м
Строка 4: Строка 4:
 
Для этого нужно сделать следующее:
 
Для этого нужно сделать следующее:
  
необходимо на адрес вида '''"https://domain/api__external_authorization"''' отправить POST-запрос в стандартном формате ответа об авторизуемом пользователе. При получении запроса система Nemo.Travel обрабатывает полученные данные, авторизует пользователя и перенаправляет пользователя на страницу поиска авиабилетов. В случае неудачной авторизации, у пользователя появится возможность стандартной авторизации по номеру телефона.
+
необходимо на адрес вида '''https://domain/api__external_authorization''' отправить POST-запрос в стандартном формате ответа об авторизуемом пользователе. При получении запроса система Nemo.Travel обрабатывает полученные данные, авторизует пользователя и перенаправляет пользователя на страницу поиска авиабилетов. В случае неудачной авторизации, у пользователя появится возможность стандартной авторизации по номеру телефона.
 +
<br>
 +
Запрос передачи авторизуемого пользователя
 +
Системе Nemo.Travel можно передать информацию об авторизованном во внешней системе пользователе путем отправки на URL https://domain/api__external_authorization POST запроса в следующем формате:
  
<pre>?xml version ='1.0' encoding ='UTF-8' ?>
+
POST - параметр
 +
 
 +
Пример значения параметра
 +
 
 +
request
 +
 
 +
{
 +
 
 +
"user": {
 +
"id": 12,
 +
"email": "test@test.ru",
 +
"phone": "79123456789",
 +
"firstName": "Konstantin",
 +
"lastName": "Konstantinov",
 +
"middleName": "Konstantinovich",
 +
"birthDate": "1990-11-15",
 +
"nationality": "RU",
 +
"gender": "F",
 +
"docNumber": "6522232232",
 +
"loyaltyNumber": "1231233213223"
 +
},
 +
"passengers": [{
 +
"id": 433,
 +
"firstName": "Alexander",
 +
"lastName": "Alexandrov",
 +
"middleName": "Alexandrovich",
 +
"birthDate": "1990-10-05",
 +
"nationality": "RU",
 +
"gender": "M",
 +
"docNumber": "7844454454",
 +
"loyaltyNumber": "1231223213223"
 +
}]
 +
}
 +
 
 +
<--!> <pre>?xml version ='1.0' encoding ='UTF-8' ?>
 
<definitions name='Authorization'
 
<definitions name='Authorization'
 
  targetNamespace='http://example.org/Authorization'
 
  targetNamespace='http://example.org/Authorization'
Строка 55: Строка 92:
 
  </port>
 
  </port>
 
</service>
 
</service>
</definitions></pre>
+
</definitions></pre> </--!>
  
 
== См. также ==
 
== См. также ==
 
*[[Авторизация]]
 
*[[Авторизация]]
 
*[[Пользователь]]
 
*[[Пользователь]]

Версия 16:51, 12 февраля 2020

Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.п)

Для этого нужно сделать следующее:

необходимо на адрес вида https://domain/api__external_authorization отправить POST-запрос в стандартном формате ответа об авторизуемом пользователе. При получении запроса система Nemo.Travel обрабатывает полученные данные, авторизует пользователя и перенаправляет пользователя на страницу поиска авиабилетов. В случае неудачной авторизации, у пользователя появится возможность стандартной авторизации по номеру телефона.
Запрос передачи авторизуемого пользователя Системе Nemo.Travel можно передать информацию об авторизованном во внешней системе пользователе путем отправки на URL https://domain/api__external_authorization POST запроса в следующем формате:

POST - параметр

Пример значения параметра

request

{

"user": { "id": 12, "email": "test@test.ru", "phone": "79123456789", "firstName": "Konstantin", "lastName": "Konstantinov", "middleName": "Konstantinovich", "birthDate": "1990-11-15", "nationality": "RU", "gender": "F", "docNumber": "6522232232", "loyaltyNumber": "1231233213223" }, "passengers": [{ "id": 433, "firstName": "Alexander", "lastName": "Alexandrov", "middleName": "Alexandrovich", "birthDate": "1990-10-05", "nationality": "RU", "gender": "M", "docNumber": "7844454454", "loyaltyNumber": "1231223213223" }] }

<--!>

?xml version ='1.0' encoding ='UTF-8' ?>
<definitions name='Authorization'
 targetNamespace='http://example.org/Authorization'
 xmlns:tns=' http://example.org/Authorization '
 xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
 xmlns:xsd='http://www.w3.org/2001/XMLSchema'
 xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
 xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
 xmlns='http://schemas.xmlsoap.org/wsdl/'>
 
<message name='getAuthorizationRequest'>
 <part name='login' type='xsd:string'/>
 <part name='pass' type='xsd:string'/>
</message>
<message name='getAuthorizationResponse'>
 <part name='session_id' type='xsd:string'/>
 <part name='user_id' type='xsd:string'/>
 <part name='login' type='xsd:string'/>
 <part name='status' type='xsd:string'/>
</message>
 
<portType name='AuthorizationPortType'>
 <operation name='getAuthorization'>
  <input message='tns:getAuthorizationRequest'/>
  <output message='tns:getAuthorizationResponse'/>
 </operation>
</portType>
 
<binding name='AuthorizationBinding' type='tns:AuthorizationPortType'>
 <soap:binding style='rpc'
  transport='http://schemas.xmlsoap.org/soap/http'/>
 <operation name='getAuthorization'>
  <soap:operation soapAction='urn:xmethods-delayed-quotes#getAuthorization'/>
  <input>
   <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
    encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
  </input>
  <output>
   <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
    encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
  </output>
 </operation>
</binding>
 
<service name='AuthorizationService'>
 <port name='AuthorizationPort' binding='AuthorizationBinding'>
  <soap:address location='http://nemo.local/controllers/authorization/auth_server.php'/>
 </port>
</service>
</definitions>

</--!>

См. также