forked from React-Group/interstellar_ai
		
	wha
This commit is contained in:
		
							parent
							
								
									1ee7d55e49
								
							
						
					
					
						commit
						4a183c0c89
					
				
					 2 changed files with 50 additions and 0 deletions
				
			
		|  | @ -2,6 +2,7 @@ from flask import Flask, request, jsonify | ||||||
| from flask_cors import CORS | from flask_cors import CORS | ||||||
| import secrets | import secrets | ||||||
| from ai import AI | from ai import AI | ||||||
|  | from db import DB | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class API: | class API: | ||||||
|  | @ -9,6 +10,7 @@ class API: | ||||||
|         self.app = Flask(__name__) |         self.app = Flask(__name__) | ||||||
|         self.ai_response = {} |         self.ai_response = {} | ||||||
|         self.ai = AI() |         self.ai = AI() | ||||||
|  |         self.db = DB() | ||||||
|         CORS(self.app) |         CORS(self.app) | ||||||
| 
 | 
 | ||||||
|     def run(self): |     def run(self): | ||||||
|  | @ -36,6 +38,13 @@ class API: | ||||||
|                 return jsonify({'status': 401, 'error': 'Invalid access token'}) |                 return jsonify({'status': 401, 'error': 'Invalid access token'}) | ||||||
|             return jsonify({'status': 200, 'response': self.ai_response[data]}) |             return jsonify({'status': 200, 'response': self.ai_response[data]}) | ||||||
| 
 | 
 | ||||||
|  |         @self.app.route('/interstellar/api/db', methods=['POST']) | ||||||
|  |         def db_manipulate(): | ||||||
|  |             action = request.args.get('action') | ||||||
|  |             if action == "create_account": | ||||||
|  |                 print("ahh") | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|         ssl_context = ('cert.pem', 'key.pem') |         ssl_context = ('cert.pem', 'key.pem') | ||||||
|         self.app.run(debug=True, host='0.0.0.0', port=5000, ssl_context=ssl_context) |         self.app.run(debug=True, host='0.0.0.0', port=5000, ssl_context=ssl_context) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										41
									
								
								py/db.py
									
										
									
									
									
								
							
							
						
						
									
										41
									
								
								py/db.py
									
										
									
									
									
								
							|  | @ -0,0 +1,41 @@ | ||||||
|  | import json | ||||||
|  | import hashlib | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class DB: | ||||||
|  |     def __init__(self): | ||||||
|  |         self.database = {} | ||||||
|  | 
 | ||||||
|  |     def _hash_password(self, password: str) -> str: | ||||||
|  |         salt = "your_secret_salt" | ||||||
|  |         hashed_password = hashlib.sha256((password + salt).encode()).hexdigest() | ||||||
|  |         return hashed_password | ||||||
|  | 
 | ||||||
|  |     def add_user(self, username: str, password: str) -> None: | ||||||
|  |         hashed_password = self._hash_password(password) | ||||||
|  |         user_data = {"hashed_password": hashed_password} | ||||||
|  |         self.database[username] = user_data | ||||||
|  | 
 | ||||||
|  |     def update_password(self, username: str, old_password: str, new_password: str) -> bool: | ||||||
|  |         if not self.check_credentials(username, old_password): | ||||||
|  |             return False | ||||||
|  | 
 | ||||||
|  |         hashed_new_password = self._hash_password(new_password) | ||||||
|  |         self.database[username].update({"hashed_password": hashed_new_password}) | ||||||
|  |         return True | ||||||
|  | 
 | ||||||
|  |     def check_credentials(self, username: str, password: str) -> bool: | ||||||
|  |         if username not in self.database: | ||||||
|  |             return False | ||||||
|  | 
 | ||||||
|  |         stored_hashed_password = self.database[username]["hashed_password"] | ||||||
|  |         entered_hashed_password = self._hash_password(password) | ||||||
|  |         return stored_hashed_password == entered_hashed_password | ||||||
|  | 
 | ||||||
|  |     def get_additional_info(self, username: str, password: str) -> dict | None: | ||||||
|  |         if not self.check_credentials(username, password): | ||||||
|  |             return None | ||||||
|  | 
 | ||||||
|  |         send_back = self.database[username] | ||||||
|  |         del send_back['hashed_password'] | ||||||
|  |         return send_back | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Patrick_Pluto
						Patrick_Pluto