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

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
м
Строка 11: Строка 11:
 
* POST - параметр
 
* POST - параметр
  
* Пример значения параметра
+
* Пример значения параметра:
  
 
<pre>Request
 
<pre>Request
Строка 93: Строка 93:
 
</service>
 
</service>
 
</definitions></pre> </!-->
 
</definitions></pre> </!-->
 +
 +
* Пример расчета hash на языке PHP:
 +
 +
<pre>$hash = hash('sha256', $request . $salt);</pre>
 +
 +
$request - значение POST-параметра из запроса, $salt - секретная строка, известная только получателю и отправителю.
 +
 +
В настройках Nemo.Travel должна быть включена возможность авторизации во внешней системе и задана секретная строка.
 +
 +
Секретное слово для генерации хеша будет отдельно выдано специалистами технической поддержки.
 +
 +
==Особенности авторизации из внешних систем==
 +
 +
* Привязка пользователей идет по домену. Если необходимо добавить пользователей в корневое агентство, то запросы будут идти на домен:
 +
'''домен_аг-ва/tests/nsa/frame.php'''
 +
Если же нужно авторизовывать пользователей для субагента, то необходимо прописать данному субагенту домен в настройках: '''Управление сайтом -> Домены и протоколы'''
 +
в поле: '''"Доменное имя сайта для загрузки настроек"'''
 +
 +
* Чтобы после авторизации пользователя перенаправлять его не на страницу поиска, а на любую другую выбранную страницу, необходимо указать в json после хеша домен перенаправления.
 +
 +
* Авторизация пользователя происходит по его ID. Для добавления нового пользователя, которого нет  в системе Nemo, нужно также указать его ID.
 +
 +
* Если данные пользователя переданы частично, они останутся без изменений до передачи новых данных.
 +
 +
* Если часть данных данных отличается от имеющихся в системе Nemo, то они перезапишутся. 
  
 
== См. также ==
 
== См. также ==
 
*[[Авторизация]]
 
*[[Авторизация]]
 
*[[Пользователь]]
 
*[[Пользователь]]

Версия 17:28, 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"
}]
}


  • Пример расчета hash на языке PHP:
$hash = hash('sha256', $request . $salt);

$request - значение POST-параметра из запроса, $salt - секретная строка, известная только получателю и отправителю.

В настройках Nemo.Travel должна быть включена возможность авторизации во внешней системе и задана секретная строка.

Секретное слово для генерации хеша будет отдельно выдано специалистами технической поддержки.

Особенности авторизации из внешних систем

  • Привязка пользователей идет по домену. Если необходимо добавить пользователей в корневое агентство, то запросы будут идти на домен:

домен_аг-ва/tests/nsa/frame.php Если же нужно авторизовывать пользователей для субагента, то необходимо прописать данному субагенту домен в настройках: Управление сайтом -> Домены и протоколы

в поле: "Доменное имя сайта для загрузки настроек"
  • Чтобы после авторизации пользователя перенаправлять его не на страницу поиска, а на любую другую выбранную страницу, необходимо указать в json после хеша домен перенаправления.
  • Авторизация пользователя происходит по его ID. Для добавления нового пользователя, которого нет в системе Nemo, нужно также указать его ID.
  • Если данные пользователя переданы частично, они останутся без изменений до передачи новых данных.
  • Если часть данных данных отличается от имеющихся в системе Nemo, то они перезапишутся.

См. также