sanic-auth
sanic-auth copied to clipboard
Sanic-Auth - Simple Authentication for Sanic
============================================ Sanic-Auth - Simple Authentication for Sanic
Sanic-Auth implements a minimal backend agnostic session-based user
authentication mechanism for Sanic_.
.. _Sanic: https://github.com/channelcat/sanic
Quick Start
Installation
.. code-block:: sh
pip install --upgrade Sanic-Auth
How to use it
.. code-block:: python
from sanic_auth import Auth from sanic import Sanic, response
app = Sanic(name) app.config.AUTH_LOGIN_ENDPOINT = 'login'
@app.middleware('request') async def add_session_to_request(request): # setup session
auth = Auth(app)
@app.route('/login', methods=['GET', 'POST']) async def login(request): message = '' if request.method == 'POST': username = request.form.get('username') password = request.form.get('password') # fetch user from database user = some_datastore.get(name=username) if user and user.check_password(password): auth.login_user(request, user) return response.redirect('/profile') return response.html(HTML_LOGIN_FORM)
@app.route('/logout') @auth.login_required async def logout(request): auth.logout_user(request) return response.redirect('/login')
@app.route('/profile') @auth.login_required(user_keyword='user') async def profile(request, user): return response.json({'user': user})
For more details, please see documentation.
License
BSD New, see LICENSE for details.
Links
-
Documentation <http://sanic-auth.readthedocs.org/>_ -
Issue Tracker <https://github.com/pyx/sanic-auth/issues/>_ -
Source Package @ PyPI <https://pypi.python.org/pypi/sanic-auth/>_ -
Git Repository @ Github <https://github.com/pyx/sanic-auth/>_ -
Git Repository @ Gitlab <https://gitlab.com/pyx/sanic-auth/>_ -
Development Version <http://github.com/pyx/sanic-auth/zipball/master#egg=sanic-auth-dev>_