The Ultimate Guide to Next Auth - Everything You Need

Поделиться
HTML-код
  • Опубликовано: 2 окт 2024

Комментарии • 271

  • @hamzahahmad1670
    @hamzahahmad1670 Год назад +2

    Hey Brett, I wanted to thank you for the very comprehensive video.
    Authentication is always a messy topic, and it's very appreciable how you explained not only credentials but also social login. Thanks again

  • @shumit
    @shumit Год назад +1

    Simply FABULOUS !!! THANK YOU SO VERY MUCH !!! I followed along. Perfect. You showed every nitty-gritty, were not too fast, not too slow, did not switch screens/windows suddenly (which confuses us, the beginners), were describing what you were doing, where you were doing, and why you were doing. Once more, THANK YOU !!!

  • @joe25x
    @joe25x Год назад +18

    One of the best tutorials I have seen on RUclips, you explained everything perfectly and in detail, looking forward to your next videos!

  • @ahasiakopian9696
    @ahasiakopian9696 Год назад +3

    Thank you for the video!
    When registering, you need to block the form submit button after clicking, since you can spam the button and there will be many identical users in the database, you also need to add a check on the server when creating.
    Also, do not add your .env file to the repository. Now you have data that other users can use for authorization, be careful

  • @rafin_rahman
    @rafin_rahman 9 месяцев назад +1

    the most comprehensive NextAuth tutorial, well done Brett!

  • @eshw23
    @eshw23 Год назад +11

    Just found your channel and subscribed, i like how your tutorials are long and in depth about concepts to understand instead of just project tutorials, and i dont think 10 or 15 minute short videos can do the same.

  • @erickugel1376
    @erickugel1376 Год назад +5

    WOW THANK YOU this really really helped it was super clear and easy to follow

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  Год назад +1

      Thank you so much! I am glad you were able to follow my teachings easily! Thanks for tuning in and the donation!

  • @chesscom-z1o
    @chesscom-z1o Год назад +1

    Good job sir really impressive content. Thank you very much for sharing.
    1. On a purely cosmetic side, in the login page, instead of the h1 "Sign into Github below" , I would rather change the button label to "Sign into Github". Same goes true for Google.
    2. Are you planning to add a "reset forgotten passwords" functionality, since this is the "Ultimate" guide ?
    Best regards.

  • @adrianhansa7018
    @adrianhansa7018 Год назад +1

    Great tutorial, Brett! I am glad I found your channel. Thanks!

  • @diamondpro2093
    @diamondpro2093 Год назад +4

    Hey, love the videos. They are really helpful and concise. I was wondering if you could possibly make a video on what changes would have to be made to the application when its being pushed into production (i.e. changing specific environment variables, etc)

  • @TharuxYT
    @TharuxYT Год назад +1

    one of the best tutorials I've seen

  • @jamesnelson174
    @jamesnelson174 Год назад +1

    Honestly, this guy is dope. I love this tutorial. ❤❤

  • @endure_elevate
    @endure_elevate Год назад +6

    You're an amazing teacher, and this is premium content. The way you explain every step makes it feel like a one on one class. Thank you!

  • @carafachera4781
    @carafachera4781 Год назад +4

    Wow I just happily spend 5 hours watching and rewatching this video and I learned a lot. I don't know why I enjoyed some much. Thank Brett, you just earn a new loyal suscriber❤

  • @mayukhhazari7820
    @mayukhhazari7820 Год назад +1

    Incredible brother 🙌🙌

  • @mattburgess5697
    @mattburgess5697 Год назад +4

    This is a great and very helpful video, going through several different ways of logging in a user. Just one thing though… it’s not Prism. It’s very clearly PrisMA.

  • @sahaneakanayaka3394
    @sahaneakanayaka3394 Год назад +4

    The best tutorial I found so far about Next 13 authentication. Everything was explained clear. Thank you so much ...🙏😍😍

  • @chriseski
    @chriseski Год назад +1

    Like and subscription earned as deserved! Thank you Brett, awesome tutorial!

  • @phil5293
    @phil5293 9 месяцев назад +1

    Wow. Great video. I had to go through it twice to get everything right (I used typescript)

  • @ozgursar5386
    @ozgursar5386 Год назад +1

    Thank you for the nicely structured and detailed tutorial. I just couldn't understand how the signin to OAuth providers created the Account and User documents in mongodb.

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  Год назад

      My most recent videos go more in depth about session data/object. I would recommend console logging profile, user, session and all to see what data you get back

  • @rohan_06
    @rohan_06 Год назад +2

    I'm not able to log in with google, I'm getting "Try signing in with a different account." this error message. How can I approach this problem? can anyone help

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  Год назад +1

      could be multiple reasons, inside of the google console where you set up the oAuth, make sure you entered the correct Redirect URI. If that is correct, then make sure your google client id and secret is correct. If that is fine, make sure your [...nextauth] route is probably set up with no errors.

    • @younkezenger8117
      @younkezenger8117 3 месяца назад

      I got the same error and then I noticed there is a spelling mistake in my Prisma schema

  • @mediacreatif
    @mediacreatif Год назад +1

    In the async authorize(credentials) function, I would fetch an API login. It's more clear for me. There is an API to register and there is an API to login.

  • @reynaldobocaling4200
    @reynaldobocaling4200 7 месяцев назад

    Please another tuts about next js with typescript, thankyou brother❤

  • @BBocho
    @BBocho Год назад +2

    Thank you very much, there are very few tutorials like this one implementing auth with the App Router, and it works perfectly fine!

  • @playman69691
    @playman69691 Год назад +1

    It’s pronounced PrismA, not PrisM 😀

  • @mubashirwaheed474
    @mubashirwaheed474 Год назад +2

    Thanks you so much for this video. Can you please make video on role based authentication?

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  Год назад +1

      No problem! And yes I can take a look into that, so something like admin login, user login, etc? protecting routes?

    • @mubashirwaheed474
      @mubashirwaheed474 Год назад

      @@brettwestwooddeveloper I have come across simple role based authentication videos but not ultimate guide per say.
      Role based authentication of user and admin using mongodb, prisma and next-auth. The major point of learning can be how to secure pages and then give access to certain routes only to the admin .
      For example: home and dashboard should be a protected route but only admin can access the dashboard.

  • @OnlyJavascript
    @OnlyJavascript Год назад +14

    at the end ..TS will get compiled to JS. that's browser's language. TS is like wearing armor while you eat breakfast. don't worry, i don't spill.

  • @yongsujeong7870
    @yongsujeong7870 Год назад +1

    This is the best tutorials I have seen on RUclips Awesome! Could you tell me the reason why we need to add "/test" url at the end of the DATABASE_URL? Thank YOu!!

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  Год назад

      thank you for the compliment and technically you can have whatever name you what instead of test. This will be your collection name in mongodb

    • @yongsujeong7870
      @yongsujeong7870 Год назад

      @@brettwestwooddeveloper Really appreciate your answer!! Have a wonderful day!!!!😄😄

  • @jenniferjohnston9236
    @jenniferjohnston9236 Год назад +1

    great tutorial! you should do one of these with next-auth-sanity

  • @mediacreatif
    @mediacreatif Год назад +1

    For security purpose, you should not return the hashed password in the API register code. Just return the name and the email.

  • @StartNight-df3sv
    @StartNight-df3sv 7 месяцев назад

    Excellent tutorial.
    Unfortunately its not completed without JWT token option.
    Btw, you must modify your system environment for RUclips tutorials.
    I mean your display resolution must not exceed 1080 HD
    Now all your screen texts are very tiny and makes a lot of eye strain.

  • @briandacallos4234
    @briandacallos4234 Год назад +3

    You don't have no idea how much i need this, thank you. Clear and concise

  • @K0stur
    @K0stur Год назад +1

    Idk if someone else asked... I don't know much about Prisma, but is there a reason ti pick it over Mongoose? I thought Prisma is more suited for SQL db's. I just started the vid but this seems like it is what I was after.

  • @harshwardhanmore5877
    @harshwardhanmore5877 Год назад +2

    you just saved my final year project man!!!! Thank You 1000 times

  • @lostinthenarrativve
    @lostinthenarrativve 3 месяца назад +1

    Hey man, which of these videos should I watch first, this or the one that's titled "Nextauth credentials provider" ?

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  3 месяца назад

      I would watch this one first because it goes over everything. There is a new version of Next-Auth which is in beta. However, you can still use this video as a guide and is still relevant. I have other videos as well on my channel going over the session object and much more!

  • @emixj24
    @emixj24 Год назад +1

    Good morning, does this work if I have the Front folder and the Back folder in two separate repositories? Since you are using files from the Back in the Front

  • @yasserhy
    @yasserhy Год назад +1

    I want to plzzzz ask u a question. How can I use NextAuth with Google to authenticate the user and then pass the session to NestJS project to authenticate the user there also so I can use the guards' features in NesfJS. There are no guides or tutorials about this at all

  • @kamilwitek8434
    @kamilwitek8434 Год назад +1

    Hi Brett, why on folder name u put [...nextauth] - in js that is the way to copy array but don't understand why do we name like that folder

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  Год назад +1

      it's called a catch all route when named like that. This allows you to run multiple API requests from that folder

  • @codewithsam7300
    @codewithsam7300 Год назад +2

    I am telling you this seriously. I have watched 20+ videos on RUclips about the same. All the time things didn`t worked out. But today i completed your video and trust me on this, your tutorial is the best tutorial in the whole world. Just wanted to say you thank You friend............

  • @samuelpalacios9661
    @samuelpalacios9661 Год назад +1

    Hey Brett, amazing tutorial, one question, why you dind't use the Session model that next-auth provides as a starter code for prisma schema? (I guess its because that if we use jwt, the sessions will not be saved on the db)

    • @younkezenger8117
      @younkezenger8117 3 месяца назад

      As a beginner, I am also struggling on understanding the difference between this two models. Need some help to understand why choose one or another

    • @samuelpalacios9661
      @samuelpalacios9661 3 месяца назад

      @@younkezenger8117 Session only is used when you implement google/github auth options, so instead of only creating a user you also create a session. Hope this helps

  • @aubreyocallaghan4539
    @aubreyocallaghan4539 5 месяцев назад +1

    Very useful. Appreciated showing both server and client auth

  • @adammo6661
    @adammo6661 4 дня назад

    Maaaan this literally saved my life. I was struggling to get both credentials with next auth working, but it does now. THANK YOU SOOOO MUCH

  • @huyphamminh6911
    @huyphamminh6911 Год назад

    i have a question, when you log in, next auth give you 3 tokens (next auth handled it), but how about when you sign up, you sent back user object via json, so we cant get the session when you sign up right

  • @Septumsempra8818
    @Septumsempra8818 Год назад +1

    What if we're using a backend API like django or springboot?

  • @hadirahal5403
    @hadirahal5403 Год назад +3

    Your channel deserves more attention!
    10/10 explanation!

  • @lamechamalisrael
    @lamechamalisrael 7 месяцев назад

    Unfortunately, this isn't EVERYTHING I need. What I need now is to know why the adapters work in the development environment. But when I upload it to AWS Amplify, I cannot use the JWT to sign in any longer.

  • @armantgold
    @armantgold 8 месяцев назад +1

    Videos are so good. I just hate when he says prism when it's prismA with a A at the end??😂

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  8 месяцев назад

      hahahah sorry about that. I truly can't pronounce it right even if I wanted to

  • @asithathennakoon3431
    @asithathennakoon3431 Год назад +1

    Keep up the good work bro..

  • @liveinorganic4542
    @liveinorganic4542 Год назад

    Why I am getting error in axios.post('api/register, data) line when register. 'prisma.user.findUnique()' invocation. Please help

  • @Dhanushsaji
    @Dhanushsaji 4 месяца назад +1

    I think for protected route we should use middleware page

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  4 месяца назад

      Yes ideally you should, but you can use it on individual pages as well if you want per the documentation.

  • @vitya.obolonsky
    @vitya.obolonsky 11 месяцев назад +2

    It is not situable for Custom email and password

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  11 месяцев назад

      The credentials provider is

    • @vitya.obolonsky
      @vitya.obolonsky 11 месяцев назад

      @@brettwestwooddeveloper nope. It is not a good prorosition. Try it use with Keycloak

  • @daniyalfarooq998
    @daniyalfarooq998 Год назад +1

    why cant i get fields other than name , email in the session? i tried returning user object with a field of Contact from [...nextauth] page too. but it is not carried into home page. btw Thanks for such a comprehensive tut. :)

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  Год назад +1

      Thank you for tuning in, and by default you only get the name and email in the session. You must use the JWT strategy and then pass the data through the jwt to the session using asyn callbacks. I have a video on this: ruclips.net/video/bkUmN9TH_hQ/видео.html

    • @daniyalfarooq998
      @daniyalfarooq998 Год назад

      i have been using this procedure for some apps but now i have been facing an issue. The signup with google isnt working directly in api/auth/signup unless i remove the // adapter: PrismaAdapter(prisma) line in nextauth route. The signin with google isnt working at all from the login page in (site) folder. If there are any changes we should do then itll be really great because i have tried alot of stuff but nothing worked out for me. Youre a great teacher :)@@brettwestwooddeveloper

  • @PaarthJain-d1o
    @PaarthJain-d1o Год назад

    Hey! Im using the same code in my project but when im connecting to the google provider, im receiving the data from google and getting the session as well, but somehow prisma is not storing my google account in Account model in the mongodb. Can someone help? I have looked to almost all possible error but cant figure it out!! Help would be appreciated

  • @goldmikanik8274
    @goldmikanik8274 Год назад

    Thank you for the explanation, just a question please, when user register he actually doesn't get auth cookies, he needs to signin after that to get them right?
    If yes, is there a way to tweak that, would be nice if user can register and start using his dashboard for example. Thank you again.

  • @abrahimzaman360
    @abrahimzaman360 Год назад

    Tip 101:
    Use Tabs instead of Writing Whole Folder Name.

  • @leviathanxid
    @leviathanxid Год назад +1

    Thankyou so much sir ,this video is really helped me

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  Год назад +1

      No problem! Thank you for watching my video! Don't forget to hit that subscribe!

  • @khageshbansal2400
    @khageshbansal2400 Год назад +1

    How u are getting this ai autocomplete for ur code in vs code editor

  • @tworzymy_historie
    @tworzymy_historie 9 месяцев назад

    I think this is what i need to be mid after almost 2 yers of commercial work and more years hobby coding ;)
    Ty!

  • @nobody2937
    @nobody2937 Год назад

    Thank you very much... Thank you ...

  • @rod6722
    @rod6722 10 месяцев назад +1

    Curious why you didn't use the session model? As is suggested in the Next Auth docs on the Prisma adapter.

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  10 месяцев назад

      Should have for tutorial purpose. But either way is fine. Definitely recommend using the adapter.

    • @ronokoushique7434
      @ronokoushique7434 9 месяцев назад

      @@brettwestwooddeveloper I don't understand why it's not working automatically when I am using the adapter. Should I have to change anything for the session table to get populated automatically? plz help

  • @hafsahussein2016
    @hafsahussein2016 9 месяцев назад

    is there any way to prompt the custom errors in the register router? because something went wrong doesn't make sense, the user wants to know what is wrong.

  • @Adrian-mu8gg
    @Adrian-mu8gg Год назад

    did i miss where the app is going to handle resetting password for credential provider? do you hv a tutorial on how to do that, and to assign role?

  • @nasarullahkhan3379
    @nasarullahkhan3379 Год назад +1

    Great tutorial. Please add forgot password.

  • @TBDfilesLalit_kalyan
    @TBDfilesLalit_kalyan Год назад

    thankyou so much for this tutorial ......kaap doing

  • @Leesdjo
    @Leesdjo 4 месяца назад

    Very detailed video. Thank you so much.

  • @fixesdev
    @fixesdev Год назад +1

    Hi, nice video btw! Im very thankfull! One doubt, in the object of useSession i am not receiving and status key? is there a reason for that?

    • @fixesdev
      @fixesdev Год назад +1

      nevermind, i got it!

  • @Shubham-yc6nz
    @Shubham-yc6nz Год назад +1

    Best video on Internet. The latest greatest. I was bit confused about implementation using app/ directory thanks!!!

  • @xouteiro0330
    @xouteiro0330 Год назад +1

    Thank you for the great video, it helped a lot, but I have a problem regarding google auth, when I log in with google the first time and log out, the next time i try to login with google it automatically logs in with that account, it doesnt let the user choose another one
    I already tried a lot of things and nothing seems to work
    Thanks a lot again, great video!!

  • @ahmetsakrak
    @ahmetsakrak 11 месяцев назад

    It's a truly informative and well-made video. I still have two lingering questions. First, what difference does it make in the underlying operation of Next Auth if we don't specify 'jwt' as a strategy? Second, why didn't you touch upon the topic of Middleware? It's crucial for user experience.

  • @abhask01
    @abhask01 2 месяца назад

    watching after 1 year but thanks bro learned a lot

  • @dhavalbhimani1952
    @dhavalbhimani1952 5 месяцев назад

    Bro great video but I want to learn more about middleware stuff with google provider. Please help with that

  • @henrymunoz2035
    @henrymunoz2035 Год назад +1

    Love it great work, thank you so much

  • @codingcambodia
    @codingcambodia Год назад +1

    Do you have a video using next-auth and role base access control,. Like basic , admin ... ?

  • @jesustzinon
    @jesustzinon Год назад +1

    If is not too much to ask, can you expand these series of videos of auth by adding password recover and normal and admin user roles?

  • @fikriilhamarifin96
    @fikriilhamarifin96 Год назад

    when i try to register internal server eror occured how to fix it?

  • @CaseStudyQB
    @CaseStudyQB Год назад

    Great video. Great job explaining each step and also showing how the network side of things looks in the browser console/tools. Thanks so much! I just subscribed!

  • @mryoung205
    @mryoung205 Год назад

    i loved this ... and i added next auth to my project. but i still dont know how to protect a sever side page... i am getting error in my seversideprops

  • @storyPlus12
    @storyPlus12 10 месяцев назад +1

    After route protection, when I write the login route manually in the search bar, it will show the login page for a while and then disappear which is not a good user experience.

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  10 месяцев назад

      If you are calling the user on the client side with the useSession hook. Then it will cause that. You must fetch the user on server with the getServerSession. I am assuming you are calling the session client side?

    • @storyPlus12
      @storyPlus12 10 месяцев назад +1

      @@brettwestwooddeveloper
      Yes I am using in client as my compo is in client side.
      Do you have any repo or a blog post about it ?

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  10 месяцев назад

      no I don't but you will have to refactor your code so your page is a server component and then fetch the session on the server. Then any client components necessary. Impot them into the server page. Does that make sense?
      @@storyPlus12

    • @storyPlus12
      @storyPlus12 10 месяцев назад

      @@brettwestwooddeveloper
      Thank you for the help.
      I got it and just solved ..

  • @waqaskhandev
    @waqaskhandev Год назад +1

    Really Awesome walk through for the Next Auth. Learned alot. Thanks

  • @merumeruedit
    @merumeruedit Год назад +1

    Ty for your good tut i have a question what plugin you use that show auto complete before coding?

  • @movocode
    @movocode 9 месяцев назад +1

    Thank you for the tutorial.

  • @codewithsam7300
    @codewithsam7300 Год назад +1

    Please update your discord

  • @BenLamptey
    @BenLamptey Год назад +1

    Hey Brett, I've seen other tutorials where "mongoose" is used. I'm new to react/next etc...am I right in saying "mongoose" and "prisma" help setup schema's ? so we can use one or the other? if this is true, whats the benefits of using prisma ?

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  Год назад +1

      Yes correct, I have seen ways that you can use mongoose and don't have to use prisma. Just a preference when it comes to coding

    • @BenLamptey
      @BenLamptey Год назад

      @@brettwestwooddeveloper ah okay I see. Thanks for the quick reply.

    • @nicolaichristensen6531
      @nicolaichristensen6531 Год назад

      Mongoose is a false layer of security, it gives no benefits apart from abstraction of the default mongodb sdk. You can send whatever the frick you want to your mongodb, and that's not ideal, so SQL is usually better than Mongodb. When I say usually, I mean 99.99% of the times.

  • @0zankurt
    @0zankurt 11 месяцев назад +1

    Could you please make a video for laravel sanctum version of this?

  • @asfnobambu
    @asfnobambu Год назад +1

    How this setup creates private routes only reachable by authenticated users ?

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  Год назад

      At the end of the video I show how to set up authenticated routes. But there is other ways to show routes to paying customers only!

  • @MrKeliv
    @MrKeliv Год назад +1

    I love your video. I want to ask about protect the page with user has not been authenticated ?
    How to do that ? Thank you

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  Год назад +1

      Thank you and you just have to create a middleware file on the root of the whole project. export { default } from "next-auth/middleware"
      export const config = { matcher: ["/dashboard"] }
      This protects the dashboard page

    • @MrKeliv
      @MrKeliv Год назад

      @@brettwestwooddeveloper Ok thank you. I already watch in another video. It has two option server side or client side. Glad to watch your video and help

  • @KkrDs97
    @KkrDs97 Год назад +1

    This is Exactly what i am looking for and great explanation from you, Thank you.

  • @semajroyam3725
    @semajroyam3725 Год назад +1

    this is what I've been looking for after the update of nextjs, now i can implement this to my capstone project, thank you for this tutorial!

  • @pablopenia
    @pablopenia Год назад +1

    I did this hundred of times, but this is the first time I actually understand how it works. Thanks! you're a great teacher.

  • @R6videos6R
    @R6videos6R Год назад +1

    So, how can i set the "remember me" option with next auth?

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  Год назад

      I would have to make a whole separate video on that, I just added that to the UI

    • @R6videos6R
      @R6videos6R Год назад

      @@brettwestwooddeveloper Thank you , my friend. Greetings from Brazil!

  • @INteresting_2000
    @INteresting_2000 7 месяцев назад

    hi can i please have some help, the project works locally but when i build on vercel it says this: Failed to compile.
    src/app/api/auth/[...nextauth]/route.js
    Type error: File '/vercel/path0/src/app/api/auth/[...nextauth]/route.js' is not a module.

  • @johndeer8405
    @johndeer8405 Год назад +1

    Hi, can you do a really short video showing us how to setup a DELETE api route handler with and without prisma or at least with prisma. The new way in next13(app) is a bit confusing. Thanks for the content!

  • @AntonyNjoroge
    @AntonyNjoroge Год назад

    I bug I ran into after I had created the prisma.config was :
    code: 'P2010',
    clientVersion: '5.3.1',
    meta: {
    code: 'unknown',
    message: 'Kind: Command failed: Error code 8000 (AtlasError): empty database name not allowed
    ' +
    How I solved this was running `npx generate prisma` and it solved the issue

  • @R6videos6R
    @R6videos6R Год назад

    Wow, you resolved my problem. Anywhere in the documentation was the error handling with the callback.ok and callback.error

  • @silviojava96
    @silviojava96 Год назад +1

    Great tutorial, but i'm getting this error:
    Error parsing attribute "@default": The current connector does not support the `auto()` function.

  • @SingleSeeker
    @SingleSeeker Год назад

    what about the get refresh token strategy?

  • @Jerac07
    @Jerac07 Год назад +1

    Great tutorial!!! One of the best I've seen. Quick question : How would you make an admin account that would see all other account is some sort of table?

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  Год назад +1

      thank you! and you would have to create a custom value for admin signups through the login functionality. I would have to look into it more, and when I get good with it I can create a video on that topic. That is a very good topic that would be helpful!

    • @Jerac07
      @Jerac07 Год назад +1

      @@brettwestwooddeveloper thank you alot. That would be super helpfull. Keep up the good work and all the best from Zagreb, Croatia!

  • @mahmoua07
    @mahmoua07 Год назад +1

    This is a great explanation of next-auth , thank you brother.

  • @kathirmldata7411
    @kathirmldata7411 Год назад +1

    crystal clear explanation. easily understanding even for non English speaking country. thanks man. more love from india

  • @madanmalhotra
    @madanmalhotra Год назад

    Our next PM will be 👉👉Brett 👏