From 8e35aa73af4a24a6a9d9d02b11a984cc95fe75f6 Mon Sep 17 00:00:00 2001 From: edwardproff Date: Wed, 29 Jun 2022 21:29:27 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D1=82=D1=8C=20'u?= =?UTF-8?q?ser-key.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- user-key.md | 57 ----------------------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 user-key.md diff --git a/user-key.md b/user-key.md deleted file mode 100644 index 5ac7ee2..0000000 --- a/user-key.md +++ /dev/null @@ -1,57 +0,0 @@ -# Как сгенерировать user_key? - -## Формирование user_key (примеры на php) - -Ключ пользователя формируется из массива параметров, которые позволяют однозначно идентифицировать пользователя внутри системы Biblio. - -**Массив имеет следующий вид:** -``` -$ident_array = [ - 'type' => 'email', - 'ident' => 'username@mail.ru' -]; -``` - -**В качестве type в ident массиве могут выступать следующие значения:** -- **email** – электронная почта (предпочтительно) -- **phone** – номер телефона (в международном формате, без + в начале номера) -- **google_id** – идентификатор пользователя у google -- **vk_id** – идентификатор пользователя в Вконтакте -- **apple_id** – идентификатор пользователя в apple id (не email apple id, а именно идентификатор) -- **tg_id** – идентификатор пользователя в Telegram -- **fb_id** – идентификатор пользователя в Facebook - -**Необходимо указать свой ключ реферала:** -``` -$referal_key = 'YOUR_REFERAL_KEY'; -``` - -Далее массив преобразовывается в base64 строку, которая используется в качестве user_key в виджете. - -**Алгоритм преобразования следующий:** -``` -$source_string = json_encode($ident_array); -$ivlen = openssl_cipher_iv_length($cipher = 'AES-256-CBC'); -$iv = mb_substr($referal_key, 0, $ivlen); -$key = mb_substr($referal_key, 10, 35); -$raw = openssl_encrypt($source_string, $cipher, $key, OPENSSL_RAW_DATA, $iv); -$hmac = hash_hmac('sha25', $raw, $key, true); -$user_key = base64_encode($hmac.$raw); -``` - -### Контрольные значения для проверки алгоритма - -Вводные данные: -``` -$ident_array = [ - 'type' => 'email', - 'ident' => 'username@mail.ru' -]; -$referal_key = 'YOUR_REFERAL_KEY'; -``` - -Итоговый ключ: -``` -o91Gup4bGZ11hjsBbIvimOiv5Lg+5kcgfsSoQ9YkPcPB5f/mkYJIo7Tp0TI6piG/lO3aQSeszOzgG05dl8PH3Cyc2J63vJ6slFL0LFV6jhs= -``` -