The Ultimate Guide to Next Auth - Everything You Need

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

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

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

    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

  • @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!

  • @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............

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

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

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

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

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

    Very useful. Appreciated showing both server and client auth

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

    the most comprehensive NextAuth tutorial, well done Brett!

  • @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!

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

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

  • @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.

  • @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❤

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

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

  • @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.

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

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

  • @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

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

    Incredible brother 🙌🙌

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

    My search is over. Thank you Brett, great session

  • @agbaniglobal
    @agbaniglobal Год назад +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!

  • @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

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

    Your channel deserves more attention!
    10/10 explanation!

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

    watching after 1 year but thanks bro learned a lot

  • @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.

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

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

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

    By far the best nextAuth tut

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

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

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

    this is fucking gold, you earned an instant subscriber!

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

      Thanks for the sub! Appreciate it!

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

      @@brettwestwooddeveloper don't even mention it, you greatly deserved it bruh

  • @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 !!!

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

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

  • @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.

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

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

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

    Thanks Brett. Your tutorial is quite easy to follow. You've made very simple.

  • @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!

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

    Loved the tutorial

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

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

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

    Was scratching my head for this, using both credentials and social medias. Dude you just killed it, watched from zero to last seconds. Time to fight with TS into it 😊
    Thanks buddy, thanks a lot ❤
    Greetings from Tanzania 🇹🇿

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

    Love it great work, thank you so much

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

    Very detailed video. Thank you so much.

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

    Thank you for the tutorial.

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

    Thank you for sharing this insightful video.

  • @7harux
    @7harux Год назад +1

    one of the best tutorials I've seen

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

    this is so sick bro 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!

  • @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.

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

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

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

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

  • @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.

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

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

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

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

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

      @@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

  • @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!

  • @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

  • @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!

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

    Keep up the good work bro..

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

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

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

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

  • @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

  • @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 5 месяцев назад

      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 5 месяцев назад

      @@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

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

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

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

      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!

  • @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)

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

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

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

    This helped me a lot, thanks. Very clear explanation

  • @p.durgashankar4464
    @p.durgashankar4464 Год назад +1

    Best explanation.

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

    I think for protected route we should use middleware page

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

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

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

    Thank you 🙏

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

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

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

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

  • @Mike-ks7nr
    @Mike-ks7nr Год назад +1

    at 25:41 when i try to sign in it gives me an error. Says: "Sign in failed. Check the details you provided are correct." But in inspector it has 302 Found

  • @chris-zlrr
    @chris-zlrr Год назад

    great content 👌🏼

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

    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.

  • @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!

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

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

  • @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

  • @0zankurt
    @0zankurt Год назад +1

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

  • @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!!!!😄😄

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

    Thanks man

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

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

  • @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?

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

    You're the best thank you ❤️

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

      You are welcome!

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

      @@brettwestwooddeveloper i just finished and its really alot of information to digest, especially the way the google and github user is added to the database )): but overall I loved it

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

    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.

  • @dailyWalker1
    @dailyWalker1 Год назад +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  Год назад

      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?

    • @dailyWalker1
      @dailyWalker1 Год назад +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  Год назад

      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?
      @@dailyWalker1

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

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

  • @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!

  • @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.

  • @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.

  • @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?

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

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

  • @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

  • @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!

  • @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!!

  • @17Kpa
    @17Kpa Год назад

    If I need to bring me the user id and the roles, how would I do it? Great Video !

  • @israelebonko4176
    @israelebonko4176 6 дней назад +1

    How do you configure Google Auth for a production project @all

    • @brettwestwooddeveloper
      @brettwestwooddeveloper  5 дней назад +1

      What do you mean by production project @all?

    • @israelebonko4176
      @israelebonko4176 5 дней назад

      @@brettwestwooddeveloper Thank you very much. I'm building a personal project solo. And your video has been very helpful in setting up an auth system.
      My issue is that I have my nextjs project live now on vercel with a domain name. And I'm confused because I don't know what to set as the authorized redirect url. localhost:3000 or my new domain name. Do we need to click "publish app" for live projects on oauth consent screen?

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

    what about the get refresh token strategy?

  • @basics-school
    @basics-school Год назад +1

    Very good video..But dont we need to store the session in db?

  • @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.

  • @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

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

    Our next PM will be 👉👉Brett 👏

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

    Thanks!!! 😁

  • @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

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

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

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

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

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

    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.

  • @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.

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

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