crappy
This commit is contained in:
		
							
								
								
									
										0
									
								
								auth/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								auth/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										28
									
								
								auth/telegram.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								auth/telegram.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
import hmac
 | 
			
		||||
import hashlib
 | 
			
		||||
import os
 | 
			
		||||
 | 
			
		||||
import settings
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _generate_hash(telegram_data: dict):
 | 
			
		||||
    data = telegram_data.copy()
 | 
			
		||||
    del data['hash']
 | 
			
		||||
    keys = sorted(data.keys())
 | 
			
		||||
    string_arr = []
 | 
			
		||||
    for key in keys:
 | 
			
		||||
        if data[key] is not None:
 | 
			
		||||
            string_arr.append(key + '=' + str(data[key]))
 | 
			
		||||
    string_cat = '\n'.join(string_arr)
 | 
			
		||||
 | 
			
		||||
    secret_key = hashlib.sha256(settings.TELEGRAM_BOT_TOKEN.encode('utf-8')).digest()
 | 
			
		||||
    hash_bytes = bytes(string_cat, 'utf-8')
 | 
			
		||||
    hmac_hash = hmac.new(secret_key, hash_bytes, hashlib.sha256).hexdigest()
 | 
			
		||||
    return hmac_hash
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def telegram_authorize(telegram_data: dict):
 | 
			
		||||
    generated_hash = _generate_hash(telegram_data)
 | 
			
		||||
    user_hash = telegram_data['hash']
 | 
			
		||||
    return generated_hash == user_hash
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user