https://github.com/dongweiming/sanic-oauth
https://github.com/dongweiming/sanic-oauth
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/dongweiming/sanic-oauth
- Owner: dongweiming
- License: mit
- Created: 2021-08-23T15:48:07.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-08-23T15:55:26.000Z (almost 4 years ago)
- Last Synced: 2025-02-15T01:28:05.765Z (4 months ago)
- Language: Python
- Size: 73.2 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
Sanic OAuth
-----------Simple OAuth library to work with sanic. Basically, just rewrited version of aioauth_client_ with async/await syntax and some optimization. Can be used only with python 3.5/3.6.
Available providers (in alphabetic order):
- Amazon
- BitBucket
- BitBucket v2
- Discord (thanks to @smlbiobot)
- Eventbrite
- Flickr
- Foursquare
- Github
- GitLab
- Meetup
- ok.ru
- Plurk
- Tumblr
- Vimeo
- vk.com
- Yahoo
- YandexRequirements
============* python >= 3.6
Installation
============Just install via pip:
.. code::
pip install sanic_oauth
Note, that to use blueprint correctly, you need to additionally install :code:`sanic` and :code:`sanic-session`.
Usage
=====Simple way for use this is blueprint with oauth configuration.
But, before use it you need to:
1. Create :code:`aiohttp.ClientSession` and bind to app like :code:`async_session` variable.
2. Create session interface from :code:`sanic-session` package and bind it to app like :code:`session_interface` variable.
3. Configure :code:`app.config` settings. You should pass :code:`OAUTH_PROVIDER, OAUTH_REDIRECT_URI, OAUTH_SCOPE` and another settings, for example, :code:`OAUTH_CLIENT_ID, OAUTH_CLIENT_SECRET`. Every setting with :code:`OAUTH` prefix will be passed to oauth provider construction.
4. Apply blueprint
5. Add decorator :code:`login_required` to routes, that required oauth.You can see example_ for more details.
Advanced usage
==============If you don't like current blueprint, you always can use providers directly and implements you own logic, like in old_example_.
.. _example: ./example.py
.. _old_example: ./old_example.py
.. _aioauth_client: https://github.com/klen/aioauth-client