@codingwithroby

I made a FREE Clean Architecture repository to help you build FastAPI quick: https://www.codingwithroby.io/get-repo/clean-architecture

@lonehayena

Nice tutorial. But it would be awesome if you include a link to a repo. It's not because I don't want to type but I want to see multiple file at the same time while watching your video. Thanks anyway.

@breno-codes1633

Man, congratulations on your lessons. Here in Brazil, we find little information about this subject, and you are saving us.

@ryanschaefer4847

Wow the timing, this is literally what i was just trying to figure out! Thanks!

@justin7509

Hashing and encryption are different things. A hash cannot be unhashed into its source data, but encrypted data can.

This is important for passwords because it means even if your DB is compromised and your secret keys are leaked, it's still impossible for the attacker to figure out your users' plaintext passwords.

If you were using encryption instead of hashing, then there's danger of leaking plaintext passwords in an attack. So hashing is the correct way to go, and bcrypt is a great choice for the hash method.

I know this sounds like a minor nitpick, but when you're trying to teach people I think it's important to be clear about terminology and the reason for certain choices. If you don't know the distinction between hashing and encryption, you're more likely to implement a flawed authentication system in your project (and I've seen it in the wild on multiple occasions).

Thanks for the content!

@Gwittdog

I was missing just one line and your video helped expose my issues. Thanks friend. Look forward to seeing more.

@sergioernestotostadosanche2509

Awesome tutorial! Keep it going, bro. I followed step by step, and except for 3 events (version of bcrypt downgraded to 4.0.1, typos, and some changes with the code), it worked. Regards from Mexico!

@edderleonardo

your fastapi course on udemy is amazing

@mayank32bit

man! your tutorials have helped me a lot.

@JuliusThePianoGuy

Very nice and structured video! Helped a lot, thanks!

@ishan.girdhar

Super helpful! just 1 small request, let's not call it, un-hash. You can't un-hash a hash.  Hashing is one way encryption. You can match the hash with the user provided password and match it with the hash already stored in database.

@anuj7286

Thankyou for sharing the tutorial :)

@jordiprim2668

Hi, did a little bit more for fun: delete users, get all users etc. Then I make delete with user_dependency, so only users authenticated can delete. And I tried to delete the user validated and worked (I guess till 20 minuts it will work). Nice tutorial!

@jacobwilsonmwale1674

Amazing tutorial. I really enjoyed it. thanks for the amazing explaination🙏

@herozero777

Thanks man for this tutorial. It was amazing well explained and really saved me :)

@Maartenkuijper

Hi Eric, Nice video, thanks! One question: in get_current_user shouldn't we check whether the user exists in the database. Now it seems that you "decode" the token, take the username and id from the token and check whether it is not none. Should we add a step to check whether the user exists in the database. I think they do this in the official fast API documentation example: "user = get_user(fake_users_db, username=token_data.username)"

@khanhduynguyen4726

nice video, that's all i need

@sahersaleem123

Thankyou so much ❤

@davidl3383

Very cool thank you !

@rstiekema

Can I download your code from this tutorial somewhere? Keep up  the good work.
Btw, very helpful turorial! Thank you so much.