Авторизация пользователей из внешних систем: различия между версиями
м |
|||
Строка 4: | Строка 4: | ||
Для этого нужно сделать следующее: | Для этого нужно сделать следующее: | ||
− | необходимо на адрес вида ''' | + | необходимо на адрес вида '''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>
</--!>