Facebook
From Andrzej, 5 Years ago, written in Python.
Embed
Download Paste or View Raw
Hits: 188
  1. from flask import Flask
  2. from flask import session
  3. from flask import request
  4. from flask import json
  5. from flask import render_template
  6. from flask import redirect
  7. from flask import session
  8. from flask import url_for
  9. import uuid
  10. import redis
  11. r = redis.Redis()
  12. sid = str(uuid.uuid4())
  13.  
  14. user = {"users": [{"password": "Sikorski", "username": "Andrzej"}, {"password": "asdfg", "username": "admin"}]}
  15. rval = json.dumps(user)
  16. r.set('user1', rval)
  17.  
  18. app = Flask(__name__)
  19. app.secret_key = b'0293jr i(UHoiawu hft923'
  20. print('SID: '+sid)
  21.  
  22. @app.route('/sikorska/webapp')
  23. def home():
  24.     if 'username' in session:
  25.         return "OK"
  26.        # return render_template('upload.html')
  27.     return redirect(url_for('login'))
  28.  
  29.  
  30. @app.route('/sikorska/webapp/login', methods=['GET', 'POST'])
  31. def login():
  32.     if 'username' in session:
  33.         return redirect(url_for('home'))
  34.     error = None
  35.     if request.method == 'POST':
  36.         if login_check(request.form['username'], request.form['password']):
  37.             session['username'] = request.form['username']
  38.            # session['uuid'] = uuid.uuid4()
  39.             return redirect(url_for('home'))
  40.         else:
  41.             error = "Invalid Credentials. Please try again."
  42.     return render_template('loginpg.html', error=error)
  43.  
  44.  
  45. @app.route('/sikorska/webapp/logout')
  46. def logout():
  47.     session.pop('username', None)
  48.    #session['uuid'] = None
  49.     return redirect(url_for('login'))
  50.  
  51.  
  52. def login_check(username, password):
  53.     data = r.get('user1')
  54.     result = json.loads(data)
  55.     for row in result['users']:
  56.         if row['username'] == username:
  57.             if row['password'] == password:
  58.                 return True
  59.     return False
  60.  
  61.