Guest User

Untitled

a guest
Dec 13th, 2018
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. """
  2. Simple login/logout mechanism using cookies with Bottle framework
  3.  
  4. :author: Suresh K L <suresh1591@gmail.com>
  5. """
  6. import os
  7.  
  8. from bottle import request, response, template, Bottle, abort, run, redirect
  9.  
  10. app = Bottle()
  11. secret = os.urandom(10)
  12.  
  13. ##############################################################################
  14. # TEMPLATES
  15. ##############################################################################
  16. login_page = '''
  17. <form action="/login" method="POST">
  18. Username: <input type="text" name="username"><br>
  19. Password: <input type="password" name="password"><br>
  20. <input type="submit" name="submit" value="Submit">
  21. </form>
  22. '''
  23.  
  24. welcome_page = '''
  25. <h1>Welcome {{ user }}</h1>
  26. <form action="/logout" method="GET">
  27. <input type="submit" name="logout" value="Logout">
  28. </form>
  29. '''
  30.  
  31. page_not_found = '''
  32. <h1>Requested page not found, please check the URL</h1>
  33. '''
  34.  
  35.  
  36. ##############################################################################
  37. # VIEWS
  38. ##############################################################################
  39. @app.error(404)
  40. def error404(error):
  41. return template(page_not_found)
  42.  
  43.  
  44. @app.get('/')
  45. def home():
  46. loggedin = request.get_cookie('loggedin', secret=secret)
  47. if loggedin:
  48. username = request.get_cookie('username')
  49. return template(welcome_page, user=username)
  50. else:
  51. return template(login_page)
  52.  
  53.  
  54. @app.post('/login')
  55. def login():
  56. username = request.forms.get('username')
  57. password = request.forms.get('password')
  58. if username == 'admin' and password == 'admin':
  59. response.set_cookie('loggedin', True, secret=secret)
  60. response.set_cookie('username', username)
  61. return template(welcome_page, user=username)
  62. else:
  63. abort(401, 'Unauthorized')
  64.  
  65.  
  66. @app.get('/logout')
  67. def logout():
  68. loggedin = request.get_cookie('loggedin', secret=secret)
  69. if loggedin:
  70. response.set_cookie('loggedin', False, secret=secret)
  71. redirect('/')
  72.  
  73.  
  74. ##############################################################################
  75.  
  76. if __name__ == '__main__':
  77. run(app, debug=True, reloader=True)
Add Comment
Please, Sign In to add comment