|
@@ -1,84 +0,0 @@
|
|
|
-# Login.py
|
|
|
-
|
|
|
-Login.py is a simple library for Flask that makes you able to handle login easily without getting plenty of useless lines of code.
|
|
|
-
|
|
|
-## Installation
|
|
|
-
|
|
|
-SOON
|
|
|
-
|
|
|
-## Usage
|
|
|
-
|
|
|
-You can find the full demo of login.py [here](./login-ex.py). You can also find the source code of login.py [here](./login.py).
|
|
|
-
|
|
|
-### initLogin(app, db)
|
|
|
-
|
|
|
-This function is used to create the `User` class. Having this function is necessary for the rest of the program. Without this, the Users cannot get stored into the database.
|
|
|
-
|
|
|
-```python
|
|
|
-from flask import Flask, request
|
|
|
-from flask_login import UserMixin
|
|
|
-from flask_sqlalchemy import SQLAlchemy
|
|
|
-from login import *
|
|
|
-
|
|
|
-# Create the "app" and "db" variables
|
|
|
-app = Flask(__name__)
|
|
|
-app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
|
|
|
-app.config['SECRET_KEY'] = 'aghzi vnguierhtrutizo hard to guess indeeed'
|
|
|
-db = SQLAlchemy(app)
|
|
|
-
|
|
|
-# Create the User class and add it to the database
|
|
|
-User = initLogin(app, db)
|
|
|
-db.create_all()
|
|
|
-```
|
|
|
-
|
|
|
-### createUser(username, password, db, User)
|
|
|
-
|
|
|
-This function is used to sign up a new user into the database. This is an example of usage:
|
|
|
-
|
|
|
-```python
|
|
|
-@app.route('/register/post', methods=['POST'])
|
|
|
-def register():
|
|
|
- try:
|
|
|
- createUser(request.form['username'], request.form['password'], db, User)
|
|
|
- return "New user created you are now logged in as " + current_user.username
|
|
|
- except:
|
|
|
- return "This username is already taken"
|
|
|
-```
|
|
|
-
|
|
|
-### loginUser(username, password, User)
|
|
|
-
|
|
|
-This function is used to login a user, that means that the user must already be in the database.
|
|
|
-
|
|
|
-```python
|
|
|
-@app.route('/login/post', methods=['POST'])
|
|
|
-def login():
|
|
|
- try:
|
|
|
- loginUser(request.form['username'], request.form['password'], User)
|
|
|
- return "You are now logged in as " + current_user.username
|
|
|
- except:
|
|
|
- return "Invalid username or password"
|
|
|
-```
|
|
|
-
|
|
|
-
|
|
|
-### logout_user()
|
|
|
-
|
|
|
-This is not a function from login.py, but a function from flask_login. The usage of this function is very simple:
|
|
|
-
|
|
|
-```python
|
|
|
-@app.route('/logout')
|
|
|
-def logout():
|
|
|
- logout_user()
|
|
|
- return "You are now logged out."
|
|
|
-```
|
|
|
-
|
|
|
-### @login_required
|
|
|
-
|
|
|
-When you add this line under a url route, it locks the page to the logged in users. The users that are not logged will have a `Unauthorized` error showing up.
|
|
|
-
|
|
|
-```python
|
|
|
-
|
|
|
-@app.route('/locked')
|
|
|
-@login_required # Using login_required to make a page private
|
|
|
-def locked():
|
|
|
- return "Hello " + current_user.username + " welcome to your private page."
|
|
|
-```
|