pyx / sanic-auth

Sanic-Auth - Simple Authentication for Sanic
Other
54 stars 12 forks source link
authentication 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