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…
Reference in a new issue