COUPON Code: *EARLYBIRD20* => Spring Data J PA course: aliboucoding.com/p/the-full-guide-to-master-spring-boot-data-jpa
@michealjohn5288 Жыл бұрын
He is the best Teacher on spring security. i will recommend you anytime and anywhere
@BoualiAli Жыл бұрын
Thank you 🙏. Really appreciate that
@mfarooqwasi8 ай бұрын
Great teacher with clear voice and content, making the life easier for the spring boot developers, great contribution and highly appreciated. Thank you so much 🥰
@khanghoang3289Ай бұрын
Thanks for this lecture. With this lecture, I can understand how JWT and Spring Security combines together in order to build the security's structure in Spring Boot. Finally, you are the best teachers, you are a lifesaver with me
@Michaeljamieson10 Жыл бұрын
These are amazing! Refresh tokens would be very useful !
@BoualiAli Жыл бұрын
Thanks. I will create a video about that fir sure
@saqib-fi4bd6 ай бұрын
Thank you so much for these updated videos. You have no idea how frustrated I got due to the out dated ones when working with Spring boot 3. you're helping me in both my full time job and in my freelance projects especially when it came to security of APIs. Bundle of Thanks
@BoualiAli6 ай бұрын
Glad I could help!
@erictchindje97659 күн бұрын
Thanks you sir. You explain the hight concept in the simple and amazing way.
@flyh21c Жыл бұрын
You are the best! Thanks a lot! Mentions every side of the JWT. Basics, logout, refresh token, password change etc...
@BoualiAli11 ай бұрын
Happy you liked it!
@MohitSharma-uq2vmАй бұрын
You saved me from my boss's anger.thankyou very much🙏
@BoualiAliАй бұрын
Most welcome 😊
@aziztolearn Жыл бұрын
Excellent videos and playlist! 👍👍👍👍
@MarkSatin1 Жыл бұрын
Thank you so much for this and your other Spring Security videos! You break down overwhelming concepts into clear smaller pieces so easily. I learned so much from just going through a couple of your videos. Looking forward to watching more!
@BoualiAli Жыл бұрын
Glad you like them! This motivates me
@FilipPolitowski7 ай бұрын
This is the best video about Spring Security and JWT. Thanks a lot for this lesson, it helped me incredibly :)
@yosr. Жыл бұрын
tbarkallah 3la weld bledi thank you so much Ali you're a lifesaver
@BoualiAli Жыл бұрын
Thank youu 🙏 My pleasure
@anirudh5148 ай бұрын
Thank you so much, very well explained!
@choooaround7 ай бұрын
Thanks, your video goes at a very good pace with clear explanations. Apart from a couple of deprecated codes, it was great. Thanks for your help!
@BoualiAli6 ай бұрын
deprecations are inevitable. I always release new videos for the updates. check the playlists or search in the channel
@errahulrajocjp10 ай бұрын
you have saved the IT Industry, Sir!!
@BoualiAli6 ай бұрын
Glad you liked it!
@AmineCch2t Жыл бұрын
Hi from Morocco, ur spring security tutorial are perfect, thank you for ur help.
@BoualiAli Жыл бұрын
Glad you like them!
@mohammadobeidat5685 Жыл бұрын
Mashallah, thank you my brother for the clear step-by-step tutorial. Keep it up!
@BoualiAli Жыл бұрын
My pleasure!
@HYR0720 Жыл бұрын
You are so wonderful! you teaching is very easy to understand. I watched your video 4 about spring security and i added more to watch them later!
@BoualiAli Жыл бұрын
Really happy you liked it
@devynlab Жыл бұрын
Just finished watching the previous video implementing JWT, and adding this on top of that I've learnt a lot. Super thanks man 🔥.
@BoualiAli Жыл бұрын
Happy to know that. Happy you liked it
@mohamednaitmoussa2600 Жыл бұрын
the best one teaching spring 🔥🔥
@BoualiAli Жыл бұрын
Wow, thanks!
@sandeepkumar-yz6lw Жыл бұрын
Thankyou Sir for sharing your knowledge.
@BoualiAli Жыл бұрын
My pleasure
@sharathkumar2018 Жыл бұрын
A lot of videos out there which rarely explain about logout! thanks a lot for this amazing video 🙏
@BoualiAli Жыл бұрын
Happy you loved it 😊
@mrpipiskin4 Жыл бұрын
Thaks for your job. These guides save a lot of time for beginners
@BoualiAli Жыл бұрын
Happy you liked it
@soukainaj3 ай бұрын
Thank you for the amazing tutorial
@mukhammadnajimov84408 ай бұрын
That's soo coool, that you provide such really helpful videos and contents Thank you so much Sir
@BoualiAli6 ай бұрын
Glad you like them!
@vadimsirenko6966 Жыл бұрын
Hello from Russia, man. Thanks for your very helpful videos.
@BoualiAli Жыл бұрын
Greetings from Tunisia 🇹🇳 Happy you like my content
@dipak-t6v10 ай бұрын
wonderfull !!! what a enrgy sir. Appriciated....
@BoualiAli10 ай бұрын
So nice of you
@kdvamja Жыл бұрын
Such amazing and useful content and a better way to explain it in an easy way. We love your work and efforts. Thank you for such amazing content like this ❤.
@BoualiAli Жыл бұрын
Happy you liked it
@pateldharmesh1361 Жыл бұрын
It really cool and superb content.
@BoualiAli Жыл бұрын
Happy you liked it!
@behzadfazelasl9581 Жыл бұрын
Very useful and clear explanation. Thanks Ali
@BoualiAli Жыл бұрын
Glad it was helpful!
@ismailforeveryone6889 Жыл бұрын
Amazing please keep going this topic of security is very rare, specially with this updates of spring security 6
@BoualiAli Жыл бұрын
Thank you, I will
@ismailforeveryone6889 Жыл бұрын
@@BoualiAli Thank you so much Mr
@shraddhaparajuli7531 Жыл бұрын
Applause to your effort. Need to say this video is really informative and helped me extremely for implementing logout with jwt tokens. It would be really helpful if you could start a youtube series on implementing the microservices with all the features provided by spring cloud.
@BoualiAli Жыл бұрын
I already started preparing for such course. Preparation take really long time
@DurgeshChaubey-o2k Жыл бұрын
Thank you so much loved the video. I was stuck and looking for a resource. It helped me alot. Love from India
@BoualiAli Жыл бұрын
Happy to have you here. Happy you like my content
@mouradeljayi584 Жыл бұрын
Amazing, Thank you and please keep uploading videos like this cause we really learn a lot from you .
@BoualiAli Жыл бұрын
Thanks 🙏 I will absolutely continue uploading. You’re my source of motivation
@serdarsen6099 Жыл бұрын
Thank you so much for this and your other Spring Security videos! Your work is truly wonderful; please keep it up!
@BoualiAli Жыл бұрын
Thank you! Will do!
@amirkenesbay1615 Жыл бұрын
Wow broooo u r amazing. This tutorial helped me to solve my problem in my project))
@BoualiAli Жыл бұрын
Happy to know that bro.
@sekharjamallamudi953111 ай бұрын
so much thankful to you sir giving this videos very useful for me. Sir pls do video on forgot reset password
@BoualiAli11 ай бұрын
Already done. Subscribe and enable the notifications and you won't miss any of my new videos
@nuhali472911 ай бұрын
Thanks for this video Ali !
@BoualiAli11 ай бұрын
My pleasure
@lowCostCoder7 ай бұрын
it was really a great tutorial. Thanks for sharing your knowledge with us
@adilhanoun9752 ай бұрын
Bonjour Mr Bouali j'ai cru comprendre que stocker le JWT en Bdd pouvais être vu comme une mauvaise pratique pour des soucis de performance comment contré cette argument ? MERCI A VOUS
@meetsamseen Жыл бұрын
Awesome tutorial man! 48:20 was spot on, you got me right there.
@BoualiAli Жыл бұрын
Awesome, thank you!
@mustafasametsonmez7034 Жыл бұрын
These videos are amazing thanks a lot. I searched many videos about jwt security in java spring boot but they wasn't easy to understand but I can learn easily and clearly with your videos thanks. access and refresh token would be great
@BoualiAli Жыл бұрын
Thank you for the good feedback. I will make a video about refresh token
@ВолодимирЖуківський Жыл бұрын
Топ контент. Дякую
@BoualiAli Жыл бұрын
my pleasure!
@iivailo94 Жыл бұрын
really useful videos, keep going! I appreciate your course videos
@BoualiAli Жыл бұрын
I’m really happy that you like my content. This motivates me to create more
@erichhc9698 Жыл бұрын
excellent Ali, I don't miss any video I learn a lot from you 😎
@BoualiAli Жыл бұрын
Happy to know that. This motivates me
@bartdiako1 Жыл бұрын
Thanks Bouali ! this Security vids have been a great help ❤. You are awsome!!! Just wondering if you're going to do a change password vid to? forgotten password and e mail verification ?
@BoualiAli Жыл бұрын
Yes I will
@sheldonlawrence8798 Жыл бұрын
Excellent, a video on refresh token would help
@BoualiAli Жыл бұрын
Thanks, I will create one
@arohawrami8132 Жыл бұрын
Thanks a lot Bouali. It was very beneficial as always. I really admire your high quality work and please continue creating more content.
@BoualiAli Жыл бұрын
Happy you liked it
@arohawrami8132 Жыл бұрын
@@BoualiAli Thank you Ali
@mmge3967 Жыл бұрын
Thanks for your effort in jwt. But i want to ask you a simple question Should we delete the previous tokens for specific user so we don't have alot of rows that we don't need in the database or not? Thanks in advance.
@BoualiAli Жыл бұрын
This also can be an option if you don’t need the already revoked token
@mmge3967 Жыл бұрын
@@BoualiAli ok thanks
@ramakrishnamogilipuri1647 Жыл бұрын
nice content.thank you
@BoualiAli Жыл бұрын
Glad you liked it!
@ramakrishnamogilipuri1647 Жыл бұрын
Can you also make videos for Authorization using database roles instead of enum
@BoualiAli Жыл бұрын
@@ramakrishnamogilipuri1647 will do that
@boubacarbarry222 Жыл бұрын
Thank you again, it's very clear !
@BoualiAli Жыл бұрын
My pleasure ❤️
@osekagorska2330 Жыл бұрын
Well done, keep up the amazing work!
@BoualiAli Жыл бұрын
Thanks, will do!
@НорбертТовт Жыл бұрын
Helpful and useful video , but it could be in easier way, you could create a new method called logout , then decode jwt , then change it date and it is all . Your explaining is very clear . Thank you
@BoualiAli Жыл бұрын
Thanks for the comment. Just one question regarding you way of doing it. How would you for the user to update the token? (Token is stored on client side)
@kevinameda2711 Жыл бұрын
Thank you brother, this is inspiring and realy helped me a lot thank you. Can you pls help create a lecture for messaging queues like kafka or rabbitMQ? Stay blessed
@BoualiAli Жыл бұрын
Thank you for the feedback. MQ is coming soon
@michaelroyf4766 Жыл бұрын
Thanks for the video! I just didn't understand why we need to create a token during registration. and what about the refresh token?
@BoualiAli Жыл бұрын
The token in the registration is just to avoid re logging Refresh token will come soon
@arsalansarwer Жыл бұрын
great tutorial, and code works fine
@BoualiAli Жыл бұрын
Happy to know that
@etodemerzel10117 ай бұрын
Perfection !!!! 👍
@BoualiAli7 ай бұрын
Glad you like it!
@jeanmorisanato6458 Жыл бұрын
Thanks for his sweet video
@BoualiAli Жыл бұрын
Happy you liked it
@developers1081 Жыл бұрын
Thax Sir Realy Helped
@BoualiAli Жыл бұрын
Happy you liked it
@VitaliiSmahlenko-i5h9 ай бұрын
Very cool explained everything thank you!!! One question. Isn't it more logical to just delete tokens so as not to store a bunch of invalid tokens in the database?
@medAmineRg8 ай бұрын
i guess you can do it. it just a matter of history
@coralie50938 ай бұрын
Thank you. Good job!
@BoualiAli7 ай бұрын
Glad it was helpful!
@bogdanjovanovic27377 ай бұрын
16:50 The query will return the tokens for the user that are either not expired or not revoked which means that will include tokens that are expired but not revoked, as well as tokens that are revoked but not expired. Was that the intention or we should return tokens that are neither expired nor revoked? For example instead of: ``` where u.id =:userId and (t.expired = false or t.revoked = false) ``` We can return non-expired and non-revoked tokens: ``` where u.id = :userId and t.expired = false and t.revoked = false ```
@KhalilChargui-jm1fj8 ай бұрын
Amazing, Thank you
@programming978 ай бұрын
great
@augustinegoat3 ай бұрын
Thank you for your tutorial, I have a question that if every time the user authenticates and logs out, the token will be set revoked to false and expired is also false, but if that is the case, the database will contain corrupted fields. It's redundant and makes the database bigger when having to store the data. Can I clean up that extra data?
@JasmineTrader-mw8ru Жыл бұрын
Awesome tutorial. I have one big doubt, I've seen lots of peopke saying its not secure to store tokens in the database. I am wondering the reason why you are doing this?
@BoualiAli Жыл бұрын
As I mentioned, there is no implicit implementation for logout (jwt) and that is one simple solution. You can performa a daily cleanup for revoked / invalid tokens from the database
@JasmineTrader-mw8ru Жыл бұрын
@@BoualiAli yes i understand that. But i do not want to store the valid tokens in database either for security reasons. Can you suggest me a way to revoke a token in the backend? Id there anyway we can remove the jwt from security context holder?
@inderpreetsingh5126 Жыл бұрын
Thanks and Keep It Up Bro
@BoualiAli Жыл бұрын
Thank you. I will
@hafedhbaazouzi3617 Жыл бұрын
Good Job Thanks
@BoualiAli Жыл бұрын
My pleasure
@lucasmagalhaes157311 ай бұрын
Hello Bouali! Great tutorial as always, thank you! Quick question: doesn't revoking the user's token on every authentication forbids them to log in to the application in different devices at the same time?
@BoualiAli11 ай бұрын
Yes, true
@theold_new16316 ай бұрын
Thank you for the video! I have a question. When I log out, Are the tokens just left permanently in the database? I am curious about what processing is common in a practical environment.
@BoualiAli6 ай бұрын
you can create a script to clean the DB. By the way, Better use keycloak I will release a new video next week
@thapelomusic1209Ай бұрын
Good tutorial. I have a question. the way in which this is implemented does it mean a user cant log in many devices ? Because the way I see it every time you log into another device all the other devices are logged out automatically
@bartosztoropolski8191 Жыл бұрын
Great tutorial! Will you create video about refresh token?
@BoualiAli Жыл бұрын
Happy you like it. I will soon
@sovannborithyun5205 Жыл бұрын
Excellence video. Would you create a video using Angular to logout?
@BoualiAli Жыл бұрын
Great suggestion!
@hamidoubalde2517 Жыл бұрын
great video @Ali Bouali. I have a question. For you what is best for implementing jwt between custom jwt like you did or use Oath2 resource server which hold jwt implementation. In the last case how to implement logout? Thanks
@BoualiAli Жыл бұрын
Both of them are jwt based. You can use both of them I’m working on a new course that covers both, jwt and oauth 2 with a frontend built with angular. I will publish the a waiting list soon enough so you can register and get discount
@hamidoubalde2517 Жыл бұрын
@@BoualiAli thanks
@infinity24717 ай бұрын
¡Gracias!
@BoualiAli7 ай бұрын
Thank you so much for the support. This is so generous from you.
@دردشةفيالهوى2 ай бұрын
thank you so much
@Ideastoriesenglish Жыл бұрын
Thank you so much!
@BoualiAli Жыл бұрын
You’re welcome
@autogenes8 ай бұрын
Nice one :)
@manospat1066 Жыл бұрын
Amazing work! Just a question, why we generate jwt token both in register and the authenticate methods? In my understanding, in register the token is generated and then in each coming request user must pass the jwt token. Also, I thought that one user has only one token associated with him, so the relationship between user-token should be one-to-one and not one-to-many? Thanks
@BoualiAli Жыл бұрын
Totally true what you said. Just as I mentioned in the video, it is just for the tutorial to have a token after registration. But in real life no need for it. Feel free to adjust ass you need
@hasanfarooqui22504 ай бұрын
1) What is the use of revoking and expiring all tokens during JWT creation ( you have already done it in LogoutService class) Why doing twice ? 2)In this application user can not simultaneously login from two device ? (As soon as he login on another device, you are simply revoking all its previous tokens). Is above questions are valid or am I missing anything ? btw lecture is very helpful. Thank you.
@balazsvarga4216 Жыл бұрын
I watched also the prev video about JWT. This videos are very straightforward and to the point. Just a little bit remark: why do you use var declaration instead of naming the proper type?
@BoualiAli Жыл бұрын
It is just shorter to write 😅
@saifchtourou5083 Жыл бұрын
Good Job !
@BoualiAli Жыл бұрын
Thank bro
@sidof8065 Жыл бұрын
Thanks for the tutorial. i have some question How allow access to another resource like /api/v1/course when we already been logged (api/v1/auth/) with token. so we will not provide a token any time to another resource ?
@BoualiAli Жыл бұрын
For secured resources, you need to always pass the token
@sidof8065 Жыл бұрын
@@BoualiAli okay sir i noticed
@poojabondkar49837 ай бұрын
Thank you so much AliBou !! This is very helpful. can you make video of logout from Keycloak auth server generating jwt token ?
@BoualiAli7 ай бұрын
Yes, soon
@alifka68158 ай бұрын
Thanks for the informative video, the only thing I did not understand is why we do the same checks in LogoutHandler as in the filter, because if there is no Authorization header or it does not start with Bearer, then the filter will not skip this request, and if the filter missed us in EndPoint /logout, it means that the Authorization header is there and the token starts with Bearer and it is also not zero, am I right?
@mbilal646210 ай бұрын
i think that in the LogoutService before clearing the SecurityContextHolder, in addition to checking for the existence of the token in our database, we should also check that it's not been revoked or expired.
@tugbakoc3799 ай бұрын
thank you!!
@BoualiAli6 ай бұрын
welcome
@khalilmarzouki636 Жыл бұрын
good job, keep going ali 🤩🤩
@BoualiAli Жыл бұрын
Thank you 🙏
@amradel6030 Жыл бұрын
thank you so much
@BoualiAli Жыл бұрын
You're welcome!
@egbe-iyonmichael51192 ай бұрын
You are awesome
@antoniodevic8704 Жыл бұрын
Thanks for the video, a lot of useful info in it! One question though, is with JWT tokens since they are stateless logout part on backend really necessary? Can it present any security issue or is it just enough to stop user from accessing secured resources if it is handled on frontend, invalidated there or deleted from local storage?
@BoualiAli Жыл бұрын
It is also enough to delete it from local storage in the frontend. But this a double check and total logout and revoking the token. Many have request such functionality, so I answered the call 😁
@antoniodevic8704 Жыл бұрын
@@BoualiAli Thanks for the quick answer! Sure, double check can't definitely hurt :D
@migolovach1371 Жыл бұрын
Very helpful video. I have only one question, maybe I don’t understand something, but why store expired tokens.
@BoualiAli Жыл бұрын
You remove expired token. In a different context. You might use them for auditing and tracing (maybe)
@GoncaloSilva137 Жыл бұрын
Hi, are we updating the database accessToken expired parameter when the accessTokenExpiration time finish ?
@BoualiAli Жыл бұрын
I didn’t get your question can you please elaborate more?
@MuhammadAli-rp9cz Жыл бұрын
Hi Bouali - Thanks for the amazing videos on Jwt. My question - in the first video, why are you only checking that token belongs to the user and does not expire during validation? Where does the secret key and the signature plays a role during validation? Can't i just create my own token and map to a valid and it will still be marked as valid?
@BoualiAli Жыл бұрын
Decoding the token uses the secret that you generated. And it should be a secret of course 😁 To have your answer, I would ask you to generate a random token with a different secret ( you can use jwt.io website for that) and pass it to the backend and then you will see if it passes or not. Reply to this comment with your feedback. Looking forward for the result 🤛
@MuhammadAli-rp9cz Жыл бұрын
@@BoualiAli Tested an i got the error io.jsonwebtoken.security.SignatureException: JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted. It seems like during decoding - it is not base64 decoding the payload - rather decrypting the signature and extracting the subject from their - Thanks, exactly as you said
@ianfernandez3258 Жыл бұрын
Thank you
@BoualiAli Жыл бұрын
You're welcome
@ElFozter Жыл бұрын
Please create a video of how to implement the refresh token, thanks for your work.
@BoualiAli Жыл бұрын
Working on it
@usounitedsouls2174 Жыл бұрын
Amazing video ,it was so helpful, My question is why we don't delete the old token instead of setting it expired
@BoualiAli Жыл бұрын
Thank you. You can set a bash script to cleanup the database every period of time.
@khalilbouali3480 Жыл бұрын
thanks a lot !
@BoualiAli Жыл бұрын
You're welcome!
@damian98772 Жыл бұрын
If someone has a problem with LazyInitializationException occuring, in my case it was because i had @Data annotation in both User and Token Entities, that annotation contains @ToString which caused an infinite loop, I just replaced it with @Getter and @Setter.
@BoualiAli Жыл бұрын
Really thank you for sharing. Keep this great mindset
@anirudh5148 ай бұрын
You saved several hours of time for me. Thank you very much for this suggestion which is hard to notice!!!