Удалить 'user-key.md'
This commit is contained in:
		
							parent
							
								
									a92cc38c93
								
							
						
					
					
						commit
						8e35aa73af
					
				
							
								
								
									
										57
									
								
								user-key.md
									
									
									
									
									
								
							
							
						
						
									
										57
									
								
								user-key.md
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -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=
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user