Advertisement
Guest User

Untitled

a guest
Oct 2nd, 2016
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.37 KB | None | 0 0
  1. import os
  2. from flask import Flask, redirect, url_for, request, render_template
  3. from flask_sqlalchemy import SQLAlchemy
  4. from flask_login import LoginManager, login_user, logout_user, login_required, current_user
  5. from flask_wtf import Form
  6. from wtforms import TextField, PasswordField
  7. from wtforms.validators import DataRequired
  8. from flask_session import Session
  9. from flask_sqlalchemy import SQLAlchemy
  10. import pprint
  11.  
  12. pprint.pprint(globals())
  13. pprint.pprint(locals())
  14. app = Flask(__name__)
  15. app.debug = True
  16. app.config.from_object('config.DevelopmentConfig')
  17.  
  18. sess = Session()
  19. db = SQLAlchemy(app)
  20.  
  21. app.config['SESSION_SQLALCHEMY'] = db
  22.  
  23. sess.init_app(app);
  24.  
  25. login_manager = LoginManager()
  26. login_manager.init_app(app)
  27. login_manager.login_view = "login"
  28.  
  29. @login_manager.user_loader
  30. def user_loader(email):
  31. return User.query.filter_by(email=email).first()
  32.  
  33. @login_manager.request_loader
  34. def request_loader(request):
  35. email = request.form.get('email')
  36. user = User.query.filter_by(email=email).first()
  37. user.is_authenticated = request.form['pw'] == user.password
  38. return user
  39.  
  40. class User(db.Model):
  41. id = db.Column(db.Integer, primary_key=True)
  42. name = db.Column(db.String(100), unique=True)
  43. email = db.Column(db.String(100), unique=True)
  44. password = db.Column(db.String(100))
  45. is_active = db.Column(db.Boolean(), default=False)
  46. is_anonymous = db.Column(db.Boolean(), default=False)
  47. is_authenticated = db.Column(db.Boolean(), default=False)
  48. def __init__(self, name, email, password):
  49. self.name = name
  50. self.email = email
  51. self.password = password
  52.  
  53. def __repr__(self):
  54. return '<name {}>'.format(self.name)
  55.  
  56. def is_active(self):
  57. return self.is_active
  58.  
  59. def get_id(self):
  60. return self.email
  61.  
  62. def is_authenticated(self):
  63. return self.is_authenticated
  64.  
  65. def is_anonymous(self):
  66. return self.is_anonymous
  67.  
  68. @app.route('/')
  69. def index():
  70. return "Hello World!"
  71.  
  72.  
  73. @app.route('/adduser/<name>')
  74. def adduser(name):
  75. user = User(name, name + "@nordstrom.net", "password")
  76. db.session.add(user)
  77. db.session.commit();
  78. outstring = "added " + user.name
  79. return outstring
  80.  
  81. @app.route('/getuser/<name>')
  82. def getuser(name):
  83. user = user_loader(name + "@nordstrom.net")
  84. outstring = user.email
  85. return outstring
  86.  
  87. @app.route('/login', methods=['GET', 'POST'])
  88. def login():
  89. if request.method == 'GET':
  90. # error=None
  91. # return render_template('login.html', error=error)
  92. return '''
  93. <form action='login' method='POST'>
  94. <input type='text' name='email' id='email' placeholder='email'></input>
  95. <input type='password' name='pw' id='pw' placeholder='password'></input>
  96. <input type='submit' name='submit'></input>
  97. </form>
  98. '''
  99.  
  100. user = user_loader(request.form['email'])
  101.  
  102. if request.form['pw'] == user.password :
  103. login_user(user)
  104. return redirect(url_for('protected'))
  105.  
  106. return 'Bad login'
  107.  
  108.  
  109. @app.route('/protected')
  110. @login_required
  111. def protected():
  112. return 'Logged in as: ' + current_user.name
  113.  
  114. @app.route('/logout')
  115. @login_required
  116. def logout():
  117. logout_user()
  118. return 'Logged out'
  119.  
  120. @login_manager.unauthorized_handler
  121. def unauthorized_handler():
  122. return 'Unauthorized'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement