Added login
This commit is contained in:
74
main.py
Normal file
74
main.py
Normal file
@@ -0,0 +1,74 @@
|
||||
import flask
|
||||
from flask import render_template, jsonify, request, redirect, Response
|
||||
import initdb
|
||||
import db
|
||||
from dotenv import load_dotenv
|
||||
from os import getenv
|
||||
|
||||
load_dotenv()
|
||||
|
||||
DB_HOST = getenv("DB_HOST")
|
||||
DB_USER = getenv("DB_USER")
|
||||
DB_PASSWORD = getenv("DB_PASSWORD")
|
||||
DB_NAME = getenv("DB_NAME")
|
||||
|
||||
appName = "Outpost"
|
||||
|
||||
app = flask.Flask(__name__)
|
||||
|
||||
@app.route('/', methods = ['GET'])
|
||||
def index():
|
||||
token = request.cookies.get('auth_token', 'none')
|
||||
userId = db.verifyToken(token, DB_USER, DB_PASSWORD, DB_HOST, DB_NAME)
|
||||
if (userId == None):
|
||||
return render_template('login.html', appName=appName)
|
||||
else:
|
||||
return render_template("home.html", pageTitle="Home | " + appName)
|
||||
|
||||
@app.route('/api/login', methods = ['POST'])
|
||||
def handleLogin():
|
||||
username = request.json['username'].lower()
|
||||
password = request.json['password']
|
||||
newToken = db.loginUser(username, password, DB_USER, DB_PASSWORD, DB_HOST, DB_NAME)
|
||||
if newToken == None:
|
||||
print("Invalid login attempt")
|
||||
return jsonify("Invalid username or password")
|
||||
return jsonify(newToken)
|
||||
|
||||
@app.route('/signup', methods = ['GET'])
|
||||
def signup():
|
||||
token = request.cookies.get('auth_token', 'none')
|
||||
userId = db.verifyToken(token, DB_USER, DB_PASSWORD, DB_HOST, DB_NAME)
|
||||
if (userId == None):
|
||||
return render_template('signup.html', appName=appName)
|
||||
else:
|
||||
return render_template("home.html", pageTitle="Home | " + appName)
|
||||
|
||||
@app.route('/logout', methods = ['GET'])
|
||||
def logout():
|
||||
token = request.cookies.get('auth_token', 'none')
|
||||
try:
|
||||
token = request.headers['remove-token']
|
||||
except:
|
||||
pass
|
||||
db.removeToken(token, DB_USER, DB_PASSWORD, DB_HOST, DB_NAME)
|
||||
return render_template('logout.html', appName=appName)
|
||||
|
||||
@app.route('/api/signup', methods = ['POST'])
|
||||
def handleSignup():
|
||||
try:
|
||||
username = request.json['username'].lower()
|
||||
email = request.json['email'].lower()
|
||||
password = request.json['password']
|
||||
displayName = request.json['displayname']
|
||||
db.createUser(displayName, username, email, password, DB_USER, DB_PASSWORD, DB_HOST, DB_NAME)
|
||||
except:
|
||||
return jsonify("An error occured")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
initdb.createDatabase(DB_USER, DB_PASSWORD, DB_HOST, DB_NAME)
|
||||
initdb.createTables(DB_USER, DB_PASSWORD, DB_HOST, DB_NAME)
|
||||
if not db.getGroupByName("root", DB_USER, DB_PASSWORD, DB_HOST, DB_NAME):
|
||||
db.createGroup("root", None, DB_USER, DB_PASSWORD, DB_HOST, DB_NAME)
|
||||
app.run(debug=True)
|
||||
Reference in New Issue
Block a user