Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- from flask import Flask, redirect, url_for, request, render_template
- from flask_sqlalchemy import SQLAlchemy
- from flask_login import LoginManager, login_user, logout_user, login_required, current_user
- from flask_wtf import Form
- from wtforms import TextField, PasswordField
- from wtforms.validators import DataRequired
- from flask_session import Session
- from flask_sqlalchemy import SQLAlchemy
- import pprint
- pprint.pprint(globals())
- pprint.pprint(locals())
- app = Flask(__name__)
- app.debug = True
- app.config.from_object('config.DevelopmentConfig')
- sess = Session()
- db = SQLAlchemy(app)
- app.config['SESSION_SQLALCHEMY'] = db
- sess.init_app(app);
- login_manager = LoginManager()
- login_manager.init_app(app)
- login_manager.login_view = "login"
- @login_manager.user_loader
- def user_loader(email):
- return User.query.filter_by(email=email).first()
- @login_manager.request_loader
- def request_loader(request):
- email = request.form.get('email')
- user = User.query.filter_by(email=email).first()
- user.is_authenticated = request.form['pw'] == user.password
- return user
- class User(db.Model):
- id = db.Column(db.Integer, primary_key=True)
- name = db.Column(db.String(100), unique=True)
- email = db.Column(db.String(100), unique=True)
- password = db.Column(db.String(100))
- is_active = db.Column(db.Boolean(), default=False)
- is_anonymous = db.Column(db.Boolean(), default=False)
- is_authenticated = db.Column(db.Boolean(), default=False)
- def __init__(self, name, email, password):
- self.name = name
- self.email = email
- self.password = password
- def __repr__(self):
- return '<name {}>'.format(self.name)
- def is_active(self):
- return self.is_active
- def get_id(self):
- return self.email
- def is_authenticated(self):
- return self.is_authenticated
- def is_anonymous(self):
- return self.is_anonymous
- @app.route('/')
- def index():
- return "Hello World!"
- @app.route('/adduser/<name>')
- def adduser(name):
- user = User(name, name + "@nordstrom.net", "password")
- db.session.add(user)
- db.session.commit();
- outstring = "added " + user.name
- return outstring
- @app.route('/getuser/<name>')
- def getuser(name):
- user = user_loader(name + "@nordstrom.net")
- outstring = user.email
- return outstring
- @app.route('/login', methods=['GET', 'POST'])
- def login():
- if request.method == 'GET':
- # error=None
- # return render_template('login.html', error=error)
- return '''
- <form action='login' method='POST'>
- <input type='text' name='email' id='email' placeholder='email'></input>
- <input type='password' name='pw' id='pw' placeholder='password'></input>
- <input type='submit' name='submit'></input>
- </form>
- '''
- user = user_loader(request.form['email'])
- if request.form['pw'] == user.password :
- login_user(user)
- return redirect(url_for('protected'))
- return 'Bad login'
- @app.route('/protected')
- @login_required
- def protected():
- return 'Logged in as: ' + current_user.name
- @app.route('/logout')
- @login_required
- def logout():
- logout_user()
- return 'Logged out'
- @login_manager.unauthorized_handler
- def unauthorized_handler():
- return 'Unauthorized'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement