# FastAPI SSO
![Supported Python Versions](https://img.shields.io/pypi/pyversions/fastapi-sso)
[![Test coverage](https://codecov.io/gh/tomasvotava/fastapi-sso/graph/badge.svg?token=SIFCTVSSOS)](https://codecov.io/gh/tomasvotava/fastapi-sso)
![Tests Workflow Status](https://img.shields.io/github/actions/workflow/status/tomasvotava/fastapi-sso/test.yml?label=tests)
![Pylint Workflow Status](https://img.shields.io/github/actions/workflow/status/tomasvotava/fastapi-sso/lint.yml?label=pylint)
![Mypy Workflow Status](https://img.shields.io/github/actions/workflow/status/tomasvotava/fastapi-sso/lint.yml?label=mypy)
![Black Workflow Status](https://img.shields.io/github/actions/workflow/status/tomasvotava/fastapi-sso/lint.yml?label=black)
![CodeQL Workflow Status](https://img.shields.io/github/actions/workflow/status/tomasvotava/fastapi-sso/codeql-analysis.yml?label=CodeQL)
![PyPi weekly downloads](https://img.shields.io/pypi/dw/fastapi-sso)
![Project License](https://img.shields.io/github/license/tomasvotava/fastapi-sso)
![PyPi Version](https://img.shields.io/pypi/v/fastapi-sso)
FastAPI plugin to enable SSO to most common providers (such as Facebook login, Google login and login via
Microsoft Office 365 account).
This allows you to implement the famous `Login with Google/Facebook/Microsoft` buttons functionality on your
backend very easily.
**Documentation**: [https://tomasvotava.github.io/fastapi-sso/](https://tomasvotava.github.io/fastapi-sso/)
**Source Code**: [https://github.com/tomasvotava/fastapi-sso](https://github.com/tomasvotava/fastapi-sso/)
## Security warning
Please note that versions preceding `0.7.0` had a security vulnerability.
The SSO instance could share state between requests, which could lead to security issues.
**Please update to `0.7.0` or newer**.
Also, the preferred way of using the SSO instances is to use `with` statement, which will ensure the state is cleared.
See example below.
## Support this project
If you'd like to support this project, consider [buying me a coffee ☕](https://www.buymeacoffee.com/tomas.votava).
I tend to process Pull Requests faster when properly caffeinated 😉.
<a href="https://www.buymeacoffee.com/tomas.votava" target="_blank">
<img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png"
alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
## Supported login providers
### Official
- Google
- Microsoft
- Facebook
- Spotify
- Fitbit
- Github (credits to [Brandl](https://github.com/Brandl) for hint using `accept` header)
- generic (see [docs](https://tomasvotava.github.io/fastapi-sso/reference/sso.generic/))
- Notion
- Twitter (X)
### Contributed
- Kakao (by Jae-Baek Song - [thdwoqor](https://github.com/thdwoqor))
- Naver (by 1tang2bang92) - [1tang2bang92](https://github.com/1tang2bang92)
- Gitlab (by Alessandro Pischedda) - [Cereal84](https://github.com/Cereal84)
- Line (by Jimmy Yeh) - [jimmyyyeh](https://github.com/jimmyyyeh)
- LinkedIn (by Alessandro Pischedda) - [Cereal84](https://github.com/Cereal84)
- Yandex (by Akim Faskhutdinov) – [akimrx](https://github.com/akimrx)
See [Contributing](#contributing) for a guide on how to contribute your own login provider.
## Installation
### Install using `pip`
```console
pip install fastapi-sso
```
### Install using `poetry`
```console
poetry add fastapi-sso
```
## Contributing
If you'd like to contribute and add your specific login provider, please see
[Contributing](https://tomasvotava.github.io/fastapi-sso/contributing) file.
Raw data
{
"_id": null,
"home_page": "https://tomasvotava.github.io/fastapi-sso/",
"name": "fastapi-sso",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8",
"maintainer_email": null,
"keywords": "fastapi, sso, oauth, google, facebook, spotify, linkedin",
"author": "Tomas Votava",
"author_email": "info@tomasvotava.eu",
"download_url": "https://files.pythonhosted.org/packages/41/81/95215be70c40ff7157f463dd911cb85a3d362737fc4a26d1dd588b2b8aab/fastapi_sso-0.14.2.tar.gz",
"platform": null,
"description": "# FastAPI SSO\n\n![Supported Python Versions](https://img.shields.io/pypi/pyversions/fastapi-sso)\n[![Test coverage](https://codecov.io/gh/tomasvotava/fastapi-sso/graph/badge.svg?token=SIFCTVSSOS)](https://codecov.io/gh/tomasvotava/fastapi-sso)\n![Tests Workflow Status](https://img.shields.io/github/actions/workflow/status/tomasvotava/fastapi-sso/test.yml?label=tests)\n![Pylint Workflow Status](https://img.shields.io/github/actions/workflow/status/tomasvotava/fastapi-sso/lint.yml?label=pylint)\n![Mypy Workflow Status](https://img.shields.io/github/actions/workflow/status/tomasvotava/fastapi-sso/lint.yml?label=mypy)\n![Black Workflow Status](https://img.shields.io/github/actions/workflow/status/tomasvotava/fastapi-sso/lint.yml?label=black)\n![CodeQL Workflow Status](https://img.shields.io/github/actions/workflow/status/tomasvotava/fastapi-sso/codeql-analysis.yml?label=CodeQL)\n![PyPi weekly downloads](https://img.shields.io/pypi/dw/fastapi-sso)\n![Project License](https://img.shields.io/github/license/tomasvotava/fastapi-sso)\n![PyPi Version](https://img.shields.io/pypi/v/fastapi-sso)\n\nFastAPI plugin to enable SSO to most common providers (such as Facebook login, Google login and login via\nMicrosoft Office 365 account).\n\nThis allows you to implement the famous `Login with Google/Facebook/Microsoft` buttons functionality on your\nbackend very easily.\n\n**Documentation**: [https://tomasvotava.github.io/fastapi-sso/](https://tomasvotava.github.io/fastapi-sso/)\n\n**Source Code**: [https://github.com/tomasvotava/fastapi-sso](https://github.com/tomasvotava/fastapi-sso/)\n\n## Security warning\n\nPlease note that versions preceding `0.7.0` had a security vulnerability.\nThe SSO instance could share state between requests, which could lead to security issues.\n**Please update to `0.7.0` or newer**.\n\nAlso, the preferred way of using the SSO instances is to use `with` statement, which will ensure the state is cleared.\nSee example below.\n\n## Support this project\n\nIf you'd like to support this project, consider [buying me a coffee \u2615](https://www.buymeacoffee.com/tomas.votava).\nI tend to process Pull Requests faster when properly caffeinated \ud83d\ude09.\n\n<a href=\"https://www.buymeacoffee.com/tomas.votava\" target=\"_blank\">\n<img src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\"\n alt=\"Buy Me A Coffee\" style=\"height: 60px !important;width: 217px !important;\" ></a>\n\n## Supported login providers\n\n### Official\n\n- Google\n- Microsoft\n- Facebook\n- Spotify\n- Fitbit\n- Github (credits to [Brandl](https://github.com/Brandl) for hint using `accept` header)\n- generic (see [docs](https://tomasvotava.github.io/fastapi-sso/reference/sso.generic/))\n- Notion\n- Twitter (X)\n\n### Contributed\n\n- Kakao (by Jae-Baek Song - [thdwoqor](https://github.com/thdwoqor))\n- Naver (by 1tang2bang92) - [1tang2bang92](https://github.com/1tang2bang92)\n- Gitlab (by Alessandro Pischedda) - [Cereal84](https://github.com/Cereal84)\n- Line (by Jimmy Yeh) - [jimmyyyeh](https://github.com/jimmyyyeh)\n- LinkedIn (by Alessandro Pischedda) - [Cereal84](https://github.com/Cereal84)\n- Yandex (by Akim Faskhutdinov) \u2013 [akimrx](https://github.com/akimrx)\n\nSee [Contributing](#contributing) for a guide on how to contribute your own login provider.\n\n## Installation\n\n### Install using `pip`\n\n```console\npip install fastapi-sso\n```\n\n### Install using `poetry`\n\n```console\npoetry add fastapi-sso\n```\n\n## Contributing\n\nIf you'd like to contribute and add your specific login provider, please see\n[Contributing](https://tomasvotava.github.io/fastapi-sso/contributing) file.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "FastAPI plugin to enable SSO to most common providers (such as Facebook login, Google login and login via Microsoft Office 365 Account)",
"version": "0.14.2",
"project_urls": {
"Documentation": "https://tomasvotava.github.io/fastapi-sso/",
"Homepage": "https://tomasvotava.github.io/fastapi-sso/",
"Repository": "https://github.com/tomasvotava/fastapi-sso"
},
"split_keywords": [
"fastapi",
" sso",
" oauth",
" google",
" facebook",
" spotify",
" linkedin"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e9941f67f34264d7a79b8b62b7889fd66437a82ad5c919690b6de91be79a08bd",
"md5": "f3921e15078785958fd8543670669942",
"sha256": "c827d277e26c2d486d511ed9bb4d86a465537359916c597c1b162ed4668aaaff"
},
"downloads": -1,
"filename": "fastapi_sso-0.14.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f3921e15078785958fd8543670669942",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8",
"size": 21445,
"upload_time": "2024-04-18T08:30:20",
"upload_time_iso_8601": "2024-04-18T08:30:20.401526Z",
"url": "https://files.pythonhosted.org/packages/e9/94/1f67f34264d7a79b8b62b7889fd66437a82ad5c919690b6de91be79a08bd/fastapi_sso-0.14.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "418195215be70c40ff7157f463dd911cb85a3d362737fc4a26d1dd588b2b8aab",
"md5": "e3cdda9d0ebf8684268deccd4711716b",
"sha256": "bc65bf58a2941f4bbb1d25e57508a3839d6c2d7e7abe24d8220f8665d66d65d1"
},
"downloads": -1,
"filename": "fastapi_sso-0.14.2.tar.gz",
"has_sig": false,
"md5_digest": "e3cdda9d0ebf8684268deccd4711716b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8",
"size": 13645,
"upload_time": "2024-04-18T08:30:21",
"upload_time_iso_8601": "2024-04-18T08:30:21.554660Z",
"url": "https://files.pythonhosted.org/packages/41/81/95215be70c40ff7157f463dd911cb85a3d362737fc4a26d1dd588b2b8aab/fastapi_sso-0.14.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-18 08:30:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tomasvotava",
"github_project": "fastapi-sso",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "fastapi-sso"
}