adds email login and registration forms

- using flask-wtf forms to create login and registration
- saves and compares input data with database
- generates user if need-be
- same user form as google user
This commit is contained in:
2020-04-23 17:11:23 +00:00
parent f156d38739
commit a071193959
8 changed files with 150 additions and 16 deletions

View File

@ -5,6 +5,7 @@ import sqlite3
# Third-party libraries
import flask
from flask import render_template, flash
from flask import Flask, redirect, request, url_for
from flask_login import (
LoginManager,
@ -18,6 +19,7 @@ import requests
import server.googleHandler as google
from server import login_manager, app, db
from server.forms import LoginForm, RegistrationForm
from server.models import User, Calendar
@app.route("/")
@ -41,8 +43,39 @@ def calendar():
calendars = google.calendarsFromDb()
return flask.render_template('calendar.html', calendars=calendars)
@app.route('/login/email', methods=['GET', 'POST'])
def emaillogin():
if current_user.is_authenticated:
return redirect(url_for('account') )
form = LoginForm()
if form.validate_on_submit():
user = User.query.filter_by(username=form.username.data).first()
if user is None or not user.checkPassword(form.password.data):
flash('invalid username or password')
return redirect(url_for('emaillogin'))
login_user(user, remember=form.remember_me.data)
return redirect(url_for('account'))
return render_template('emaillogin.html', title='Sign In', form=form)
@app.route('/register', methods=['GET', 'POST'])
def register():
if current_user.is_authenticated:
return redirect(url_for('account'))
form = RegistrationForm()
if form.validate_on_submit():
user = User(id=form.username.data,
username=form.username.data,
email=form.email.data)
user.setPassword(form.password.data)
db.session.add(user)
db.session.commit()
flash('Congratulations, you are now a registered user!')
return redirect(url_for('emaillogin'))
return render_template('register.html', title='Register', form=form)
@app.route("/login/google")
def login():
def googlelogin():
authorization_url = google.login()
return flask.redirect(authorization_url)
@ -121,4 +154,3 @@ def user():
print("405")
return 'OK'