FastAPI Authentication Example With OAuth2, JSON Web Tokens and Tortoise ORM
Вставка
- Опубліковано 19 сер 2024
- In this video, I will show you how to implement authentication in your FastAPI apps. OAuth2 will be the type of authentication I demonstrate because it's very common among APIs, and I will use JSON web tokens (JWT) for the token in the OAuth flow. In addition to authentication, I'll use Tortoise ORM for the user model.
Need one-on-one help with your project? I can help through my coaching program. Learn more here: prettyprinted....
Get the code here: prettyprinted....
Twitter: / pretty_printed
Github: github.com/pre...
I am watching this 3 years later and it's still the best tutorial on this topic that I have found. Thanks for this.
Ugh man, this is great. I'm learning OAuth2 and FastAPI at the same time and this was incredibly helpful to see the pieces work from the developer side.
me too, open connect too
Fantastic video, very clear and to the point! Thank you. For a follow-up video (could simply build on top of this code), it would be great to see how to implement expiration in the tokens and a (maybe automatic) refresh logic. Maybe with a dummy (just plain) HTML login page. Anyways, thanks for the great content.
Did you find any reading material @mathias ?
awesome!! I was waiting for you to upload fastapi videos!!
More to come!
Not only teaches authentication but also how a tutorial should be. Excellent demonstration & to the point. Thanks a lot for this :)
Excelent video. I wasn't expecting to get so much knowledge in just 40 minutes. And very well explained!!! Thanks a million.
This is what makes your video stands out from other low quality content producers
so structured, so modular. lately found this channel. you are way good in explaining things. Thanks a lot.
Best video on fastapi oauth❤
Glad you like the video!
Awesome as always. How about Some front-end registration and login form to help understand this better. Just me asking for more though.
Thanks for this video.
This video actually gave me some insights into Pydantic, which I'm still trying to wrap my head around. So a tutorial using Pydantic more explicitly would be great. But you have a great back catalog already.
Thanks so much! Your videos really helped me some years ago when I was coding in Python flask, and just as I start working on FastAPI you begin making videos in that area too 🙌🙌
Hi bro can you help me on this project
Very educational! I'm glad I ran into your channel
Very nice video and excellent channel!! looking forward to see how to protect FastAPI with OAuth2 but just acting as a Resource Server (and getting the token from and external Authorization Server). Thanks for sharing!
very useful video, God bless you. love from jakarta
This video helped me a ton thanks dude.
great video, thanks!
Thank you so much 🙂❤
Bro you are awesome
Real good videos man! Been real helpful
Well explained. Ty very much!
Awesome, thank you Anthony!
Thank you. You always provide a good start point for development.
Do you think it is a good ideea to use tortoise-orm in production ?
Some devs say sqlalchemy is better for speeding up your api. I can configure sqlalchemy for a sync def, but failed configuring it for async.
VERY cognitive! Thank you!
great tutorials , will u consider to create tutorial for fastapi+ frontend ? it could be very interesting to see how u use th jwt + login screen .
can't seem to find any records in my DB.
I know it's there though because it detects when I try to add a duplicate.
What am I doing wrong?
Thanks Anthony!
Very nice introduction! Do you have a video explaining how we could extend from this example, attaching this with some other OAuth2.0 providers like Google? Thanks!
thanks and that's awesome work . one more question now should pass the user in all new additional endpoints ??
Please do a video on a chat / Meeting app setup using Fastapi+ MongoDB asyncioMotorClient
Thanks!
LOVE THIS
hi, sir. I get missing.
TypeError: OAuth2AuthorizationCodeBearer.__init__() missing 1 required positional argument: 'authorizationUrl'
help me please.
How can authenticate a fastapi which doesn't have a username and password. I mean no login credentials..
Awesome thanks so much
Thanks for watching!
Awesome...this has helped so much. Any two-factor authentication, or 2FA implementation in the future?
I want to implement auth0 token on my existing app but I really need to know if token will increase in size / length if I store more user informations on it e.g permissions (to be used on frontend)
Hey dude, if you ever work out how to do the Authorisation Code Grant with Proof Key using FastAPI I will gladly pay 👍
your payload should definitely include the expiration date of the token
Great video, but i cant manage to user if condition with awaits, it only return the default detail message, Ex: user = await User.get(username=username), if not user statment will not work, only inside a try catch structure, can someone help me?
It didn't generate the sqlite files for me for some reasons. Do you know why?
Make sure you're running `hypercorn main:app --reload` and not `hypercorn example:app --reload`
Thank you so much for the video.. I want to try it with postgres but I could not find a way.. any recommendation is welcome..
Great video.
One think i don't understand. We have to login into the database before accessing any tables.
Lets say i am using react and fastapi.
User form data will be sent to fastapi's /login endpoint.
Here i will try to create a db connection based on forms username and password. If sucess then create a sessionpool. or return exception.
But you are directly accessing the db. HOW
how fast api handles multiple requests, as we have threading as a parameter in flask to handle multiple request how does fast api do it?
more fastapi !!
Nice.
At the right time
Thanks for watching!
I was able to perform the whole process of validation using PostMan , however I don’t know what username and password to input when I click in the button AUTHORIZE in swagger.
Where did you register that ?
Thank you !! If possible, can someone explain difference between uvicorn, gunicorn, hypercorn ?
awesome video! can you do something on microservices soon ?
Can you make an example using a OAuth2AuthorizationCodeBearer ?
You had something in the authorization box of the postman token request but you didnt show it, doing it the way you showed wont work unless you had something there and forgot to say anything
is there a way to do it with email rather than username?
how to get bash inside windows pc like you have ?
great
How come my VS code doesn't have code recommendations when I'm typing? Which extension did you install?
Please make a similar video on Django Rest Framework
I'll look into it. Thanks for watching.
Thank you. Is there a way we can implement LDAP authentication ?
great vid! May i ask, what is the tokenURL exactly for?
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
its not written in the docs and people in tutorials always say, just put it there. I believe, nobody knows, what it means. Its just for the open api scheme and swagger ui, i think.
wow, god bless django for abstracting away this boilerplate.
is there a way to integrate google authentication with fast API?
Waiting for fastapi playlist.
Thank you for the tutorial. I was wondering if there is a particular method to exclude "hash_parword" in returning user data in pydantic user model..
Just pop the key from the dictionary
Do JWTs support RBAC?
Sir can i make facebook messenger chatbot using fastapi?
Hi, Anthony,
I'm a freelancer! Experienced with web scraping but I want to switch to web development. I don't have a college degree, I have a little knowledge about Django, Flask, Celery, and React.
Should I go for Backend with Python or Frontend with React or something else? Can you consider to recommend a path for me?
I will recommend frontend since the job for that path would be more abundant
at 1:48 how do you get your json data in the web browser to be styled like that?
thats how it looks in firefox
@@zachblake6457 o snap just tested it and jup usually use chroms but thats really cool
09:50
i am watching and I feel like , ye just copy paste copy paste copy paste !!!!
wtf with content creators
Hi,
I can't access to sqlite3 db.sqlite3, appear this message sqlite3: The term 'sqlite3' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
somebody can help me?
It is possible to authenticate from get, for instance hhtp://user/me?user&password?