Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://gitlab.com/SirEdvin/sanic-oauth
https://gitlab.com/SirEdvin/sanic-oauth
Last synced: 30 days ago
JSON representation
- Host: gitlab.com
- URL: https://gitlab.com/SirEdvin/sanic-oauth
- Owner: SirEdvin
- License: mit
- Created: 2018-01-26T20:22:44.855Z (almost 7 years ago)
- Default Branch: master
- Last Synced: 2024-11-09T08:08:11.630Z (about 1 month ago)
- Stars: 10
- Forks: 12
- Open Issues: 6
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-sanic - Sanic-OAuth
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