118 Commits

Author SHA1 Message Date
7ad5f8073d on_after_login hook (#1092)
* on_after_login minimal impl.

Questions: is the spot logical for after method? Is after the internal login call.
Would before_login be needed? Maybe not, as auth is the way to do pre-login things.

Added fastapi request as a param just in case, as other callbacks had it too.

Docs addition is missing.

* tried to complete the implementation, but the test with user_manager.on_after_login.called fails though

* move on_after_login tests to right place, to TestLogin. These ones pass.

TODO: check TestCallback

* on_after_login tests to TestCallback too, for oauth. Apparently test_redirect_url_router fires the callback too, I guess that's correct, am not using oauth myself.

* fix formatting with make format

* docs for on_after_login

Co-authored-by: Toni Alatalo <toni.alatalo@gmail.com>
2022-10-18 08:02:01 +02:00
6c03d51a64 Fix Beanie OAuth example 2022-08-08 08:45:17 +02:00
d7a1e3420c Fix #1043: Add a prefix to the generated key in RedisStrategy 2022-07-23 07:53:57 +00:00
4ab3bef0a6 docs: added example of db_urls (#1033) 2022-07-18 15:43:54 +02:00
b999ec9967 Add docs for OAuth association router 2022-06-20 17:19:19 +02:00
3bb3728261 add on delete hook (#1014)
Co-authored-by: Schwannden Kuo <schwannden@mobagel.com>
2022-06-20 13:26:02 +02:00
c5ac2b0e6e Use newer version of Redis dependency incorporating async support 2022-06-07 08:43:41 +02:00
924d163792 Update Documentation installation and fix new beanie install method (#982)
* Update installation types and fix beanie install

* Move install instructions to redis authentication

* Add Redis install instructions
2022-05-09 15:28:56 +02:00
78be936297 Put exceptions in a dedicated module to avoid circular imports 2022-05-06 13:17:22 +02:00
72aa68c462 Native model and generic ID (#971)
* Use a generic Protocol model for User instead of Pydantic

* Remove UserDB Pydantic schema

* Harmonize schema variable naming to avoid confusions

* Revamp OAuth account model management

* Revamp AccessToken DB strategy to adopt generic model approach

* Make ID a generic instead of forcing UUIDs

* Improve generic typing

* Improve Strategy typing

* Tweak base DB typing

* Don't set Pydantic schemas on FastAPIUsers class: pass it directly on router creation

* Add IntegerIdMixin and export related classes

* Start to revamp doc for V10

* Revamp OAuth documentation

* Fix code highlights

* Write the 9.x.x ➡️ 10.x.x migration doc

* Fix pyproject.toml
2022-05-05 14:51:19 +02:00
403bec9c05 Update mkdocs and configure docs versioning 2022-05-04 10:23:42 +02:00
20682ec4e8 Add docs for PasswordHelper customization 2022-03-22 14:46:12 +01:00
b054383fbf Enable RS256/ES256 and other algorithms for JWT strategy (#943)
* Implement RS256 for JWT auth

* Update docs with RS256 example

* Added ES256 tests

* Format with isort and black

* Removed example RSA key pair (so as not to tempt people to use it)

* Added pyjwt[crypto] to requirements

* Removed pycryptodome by hardcoding example keys

* Removed unnecessary Tuple import from typing
2022-03-22 10:28:00 +01:00
913af971fe Fix wrong import in MongoDB strategy example (#901) 2022-02-02 14:50:27 +01:00
de97d6597a UserTable relation table name correction (#849)
OAuthAccount should be correct table name SQLAlchemyBaseOAuthAccountTable
2022-01-09 10:08:54 +01:00
8b865f7609 Fix create user programmatically cookbook 2022-01-07 10:31:52 +01:00
89daead99b Fix #843: remove connect_args on examples 2022-01-06 10:19:05 +01:00
d937c4e05b Update doc for SQLALchemy2 adapter 2022-01-04 16:01:14 +01:00
79557eead4 Allow lifetime_seconds=None (#835) 2022-01-03 12:05:55 +01:00
c1083f77b5 Update documentation for DB strategy and fix DB dependencies versions 2022-01-03 11:26:14 +01:00
c4de66b81c Revamp authentication (#831)
* Implement Transport classes

* Implement authentication strategy classes

* Revamp authentication with Transport and Strategy

* Revamp strategy and OAuth so that they can use a callable dependency

* Update docstring

* Make ErrorCode a proper Enum and cleanup unused OpenAPI utils

* Remove useless check

* Tweak typing in authenticator

* Update docs

* Improve logout/destroy token logic

* Update docs

* Update docs

* Update docs and full examples

* Apply formatting to examples

* Update OAuth doc and examples

* Add migration doc

* Implement Redis session token

* Add Redis Session documentation

* RedisSession -> Redis

* Fix links in docs
2021-12-30 15:22:07 +01:00
c759bb6915 Extending generated OpenAPI docs (#799)
* Added login endpoint docs

* make format

* Changed login route into multiple examples.

* Added reset password router docs

* Updated /{id} routes for user

* Updated /me routes

* Fixed user already exists response description

* Updated the /register route

* Updated verify routes

* Updated oauth2 endpoints.

* Applied `make format`

* Renamed Authentication methods for getting their openapi schemas

- `get_login_responses_success` -> `get_openapi_login_responses_success`
- `get_logout_responses_success` -> `get_openapi_logout_responses_success`

* Fixed flake8 errors

* Not using `Final` to keep python37 compatibility

Co-authored-by: François Voron <fvoron@gmail.com>
2021-11-23 13:13:51 +01:00
48d1be87a4 Added codestyle check and lint to the build action (#798)
* Applied `make format`

* Added format-check to makefile

* Added a "Check codestyle" step to the build action.

* Rerun `make format`

* Added a "lint" target to makefile

* Added lint step to the build action

* Added W503 to the list of ignored flake8 errors.

See https://www.flake8rules.com/rules/W503.html
2021-11-23 08:13:11 +01:00
f578a01a8b Updated OAuth2 router generator for better OpenAPI docs (#793)
* Added OAuth2 authorize route response_model

* Changed OAuth2 "authorize" route backend param type.

On OAuth2 router creation, an enum is created for the `authentication_backend` parameter. This allows us to generate OpenAPI docs correctly.

* Reformatted with "make format"

* Updated OAuth2 authorize url docs

- /authorize now returns 422 instead of 400 for an invalid authentication backend
2021-11-10 07:55:40 +01:00
b80061bbc4 Fix #788: add cookbook to create user programmatically 2021-11-07 11:32:22 +01:00
6ed1a5ccdb Change examples so every dependencies are async 2021-11-07 11:21:24 +01:00
c1a0dd5476 Fix broken links in documentation 2021-11-07 10:47:40 +01:00
843b197875 Reflect correct UserManager handlers in docs (#768) 2021-10-16 09:25:53 +02:00
d0c295e411 Fixed user manager function docs. 2021-09-23 13:00:20 +03:00
06a1832ac1 Add direct links to open Repl.it full examples 2021-09-21 08:33:29 +02:00
e819bb0b65 Add get_enabled_backends advanced feature 2021-09-21 08:20:07 +02:00
ab89cdea2f Merge pull request #729 from fastapi-users/db-as-dependency
Massive reorganization: move most of the logic into a UserManager dependency
2021-09-20 08:42:25 +02:00
fd5a0d2725 Write v8 migration doc 2021-09-18 10:36:39 +02:00
c198da58bc Complete OAuth2 documentation 2021-09-18 10:18:44 +02:00
fc59cf11ef Rework the documentation 2021-09-17 15:14:36 +02:00
e86a2cfa0c Fix typo in ormar documentation (#727) 2021-09-15 14:51:03 +02:00
2900bf4df7 Add notice about UserUpdate model when upgrading to v7 2021-09-09 16:11:07 +02:00
b7ddf97127 Fix link in documentation 2021-09-09 13:36:52 +02:00
79225e6642 Add 6 -> 7 migration doc 2021-09-09 13:28:14 +02:00
38b72ac197 Improve docs regarding getting current user 2021-09-09 12:15:46 +02:00
7ae2042500 Fix #701: factorize JWT handling and support secrets as SecretStr 2021-09-09 11:51:55 +02:00
e59fb2c9b9 Return 403 instead of 401 when a user is known (#705)
* return 403 instead of 401 if user is known

* return 403 for unverified users

* updated docs
2021-09-04 18:11:48 +02:00
83873338f3 Refactor models 2021-08-29 17:00:45 +02:00
d2d25da9d1 Fix OAuth2 documentation (#692) 2021-08-13 08:46:47 +02:00
8b131233d6 Fix typo (#684) 2021-08-12 14:17:28 +02:00
a8f0a31655 Update password-validation.md (#680) 2021-08-12 14:14:27 +02:00
22384f6405 Fix typo in documtation (#640)
* Fix typo in auth.md

* Fix typo in register.md
2021-06-08 16:28:33 +02:00
455f695f52 Fix #630: relative tokenUrl (#636)
* Fix #630: use relative tokenUrl as per the official recommendations

* Improve following review comments

* Fix unmatching backtick

* Improve consistency of authentication backend documentation
2021-05-20 08:52:03 +02:00
5267e605f4 Implement password validation mechanism (#632)
* Implement password validation mechanism

* Add invalid password reason

* Always pass user in password validator

* Add password validation documentation
2021-05-17 08:58:23 +02:00
89cff15c6b Updated docs to support pip install via zsh (#619)
* Updated docs to support pip install via zsh

* Changed docs to escape square brackets

Co-authored-by: Vlad Hoi <vlad.hoi@ronati.com>
2021-05-02 08:42:30 +02:00