- Flask
pip install flask - Flask-Login
pip install flask-login
- Initialize the flask app with
app=Flask(__name__) - Set a secret key, Flask-Login uses sessions and sessions in Flask need a secret Key
- Create an instance of
LoginManagerclasslogin_manager = LoginManager() - Initialize the
LoginManagerwith the app that was createdlogin_manager.init_app(app) - In your User model, implement the
UserMixinfrom Flask-Loginclass User(UserMixin)and implement the required methods:is_authenticated,is_active,is_anonymousandget_id - Decorate a method with
@login_manager.user_loaderthat returns theUserobject given the ID - In the login end point, once the app side validation is done, register the user into Flask-Login with the
login_usermethod.login_user(userDAO.get(user_name)). This would register a session with that user - After that, any route that needs authentication can be decorated with
@login_requiredand Flask-Login takes care of the rest - To logout, call the
logout_user()method - To get the current user's ID the
current_user.get_id()method can be used. If there is no one logged in,current_user.get_id()would returnNone
DONE.
I've written one small repo that illustrates this over here