This is the best tutorial in 9 years of learning coding. The info behind the code, the video speed, the structure, EVERYTHING IS PERFECT! Your 2 months of efforts to create this video really paid out!! 🎉❤
Great explanation Jackson, you were a lifesaver for implementing this. Only suggestion is to use a library like ZSA to create procedures to avoid repeating the session calls and sanitising uuid in your server actions. It also uses Zod to validate inputs! Keep making videos.
If i'm not wrong, 'use server' is generally used for server actions which always initiate a POST request and Nextjs recommends using them for mutating data and NOT fetching data. If you want to ensure server side data fetching, you can do import 'server-only' at the top of the file and call server or DB to fetch data, otherwise it's not a great practice to fetch data within 'use server' files.
Thanks. This is the best nextauth video I've ever seen. If anyone ask how to use nextauth just send this video instead of the doc. xD is there any specific reason why you use router.push instead next/link ? hope you make more video about next.js
@@23AvpADR Thank you so much! You have no idea how much that means to me! With regards to the router.push, it was just an arbitrary choice. I decided to go with that to keep the video consistent rather than switching between different methods of routing to minimise confusion for beginners. You can use whichever method you like.
Wonderful content. Other content providers did not mention the necessary production settings which caused my production to fail yet dev to pass, was so frustrating. I note you verify authority to paths in the function, to see if signed in or not, or admin etc. Another solution is Middleware, any advantage of one approach over the other ?
I wouldn't recommend using middleware. Next-Auth really isn't designed for it. I did try it, but I couldn't get it to work as the underlying library that next-auth uses to interact with the database uses an edge implementation which doesn't work with middleware.
I’m still learning this framework and had issues deploying the system to production. During the build process, I encountered some errors with variables that I managed to resolve, but once the build was successful, I faced problems related to the Secret. I’m more accustomed to React, where I could simply take the build folder and it would work. In this system, do I need to move these folders (.next, node_modules, package.json, and package-lock.json) to my production environment for testing?
Have you tried to deploy it to production just to see if it's working or not? Because to me, when I deployed mine to prod, the google auth stop working with error "Try signing in with a different account." Next-auth is so f-in hell to deal with
This is a cool video, but most nextjs applications do not hold the database connections. Another video where you connect to an express server and do similar things would be helpful, although i'm sure i can take it from here.
at a high level, how would something like an upvote system work after you've set up the initial sign in? assuming everything works and you can authenticate a user into a page, and you have postgres set up, do you use something like an events side effect to ensure a user if authenticated before calling a server action to perform the upvote action? or is it simpler, like you check for user auth in the server action itself?
I used keycloak and db session strategy. I don’t want to share jwt with browser. Btw do you know how to logout from google to make possible to login with different account?
What about asp net back end as an authentication provider with a token how does that work in next js. I havent seen any proper documentation regrading that so i don't know where or what to look for?
7:20 -d = enable detach mode 31:40 No that's different. That is a package "server only". Use server is different. It is annotation for server actions not to enforce the code to be run on server.
I had installed postgres on my local machine and was using postgresql on docker with the same port which caused me few hours of trouble, use different ports or disable your local pgservice
what happens if you signed in with ur google account, but then u unlinked it, and also the session was erased, how will you sign in again to the same account with same or other google account?
@@MihirAmanRaj when the account is unlinked it deletes the Google OAuth information from the database. So if the user doesn't have another Google account linked, then signing in with the unlinked Google account will automatically relink it. The account is determined by the email (so the user can also sign into the account using the email address of the unlinked Google account if they want to). Unlinking the Google account only deletes the Google OAuth record from the database but the email record still remains in the "users" table.
What were your original expectations for the video? I'm trying to figure out this RUclips thing so I'm probably going to miss more shots than I hit, but curious what you were originally thinking the video was going to be more like?
I haven't touch Javascript land in months but I remember doing Auth in nextjs being a pain in the ass. Thank you good sir for your service.
You fought the enemy that is the Auth JS docs so we don’t have to- thank you for your service!
This is the best tutorial in 9 years of learning coding. The info behind the code, the video speed, the structure, EVERYTHING IS PERFECT! Your 2 months of efforts to create this video really paid out!! 🎉❤
Great explanation Jackson, you were a lifesaver for implementing this. Only suggestion is to use a library like ZSA to create procedures to avoid repeating the session calls and sanitising uuid in your server actions. It also uses Zod to validate inputs! Keep making videos.
This was the first guide I've found that actually detailed everything clear enough so that I could get setup. Outstanding job and big thank you.
This guy has a seamless style of explaining concept with great steeze
If i'm not wrong, 'use server' is generally used for server actions which always initiate a POST request and Nextjs recommends using them for mutating data and NOT fetching data. If you want to ensure server side data fetching, you can do import 'server-only' at the top of the file and call server or DB to fetch data, otherwise it's not a great practice to fetch data within 'use server' files.
This is a great video and tutorial for auth.js. many thanks for your efforts !
This is the best tutorial I've ever seen. Thank you
One of the best tutorial i have ever found in youtube! kudos!!!
More Next.js/PostgreSQL videos like this one please! Great tutorial!
Congrats... I am your follower now!
dont know how much effort you have spend for this video, but this was really a good video. keep it up bro.
I should do an X appreciation tweet ...you're legendary I was stuck on auth for 6 months
@@ayarahemmanuel3326 That would be amazingly!
I just finished the tutorial. Very good content, its the best tutorial for auth.js out there. Thanks.
Here from Reddit! Awesome things in the works
bro this is awesome! please keep making more of this.
Thanks for breaking things down. You explain concepts so clearly :)
Would love to see a bit on deployment ... moving postgres to an external provider, etc.
It's helpful. Thanks!
OUTSTANDING LECTURE THANKS PLESE MAKE MORE THIS TYPE OF LECTURE
I was in the middle of implementing this and got this video notification 😂 . Thanks!
Glad it helped!
This is unreal! How did you learn all this stuff?
Very good content. Please keep uploading next.js tutorials like this
really nice tutorial, coded along and really enjoyed it! thanks
btw ending got me hahaha
This was a fantastic watch. Thank you!
Thanks for the step by step tutorial. All worked flawlessly!
Awesome 🔥🔥🔥🔥
Great
Thanks. This is the best nextauth video I've ever seen. If anyone ask how to use nextauth just send this video instead of the doc. xD
is there any specific reason why you use router.push instead next/link ?
hope you make more video about next.js
@@23AvpADR Thank you so much! You have no idea how much that means to me!
With regards to the router.push, it was just an arbitrary choice. I decided to go with that to keep the video consistent rather than switching between different methods of routing to minimise confusion for beginners. You can use whichever method you like.
Wonderful content. Other content providers did not mention the necessary production settings which caused my production to fail yet dev to pass, was so frustrating. I note you verify authority to paths in the function, to see if signed in or not, or admin etc. Another solution is Middleware, any advantage of one approach over the other ?
I wouldn't recommend using middleware. Next-Auth really isn't designed for it. I did try it, but I couldn't get it to work as the underlying library that next-auth uses to interact with the database uses an edge implementation which doesn't work with middleware.
I’m still learning this framework and had issues deploying the system to production. During the build process, I encountered some errors with variables that I managed to resolve, but once the build was successful, I faced problems related to the Secret. I’m more accustomed to React, where I could simply take the build folder and it would work. In this system, do I need to move these folders (.next, node_modules, package.json, and package-lock.json) to my production environment for testing?
Have you tried to deploy it to production just to see if it's working or not? Because to me, when I deployed mine to prod, the google auth stop working with error "Try signing in with a different account." Next-auth is so f-in hell to deal with
This is a cool video, but most nextjs applications do not hold the database connections. Another video where you connect to an express server and do similar things would be helpful, although i'm sure i can take it from here.
at a high level, how would something like an upvote system work after you've set up the initial sign in? assuming everything works and you can authenticate a user into a page, and you have postgres set up, do you use something like an events side effect to ensure a user if authenticated before calling a server action to perform the upvote action? or is it simpler, like you check for user auth in the server action itself?
great! please make more video about facebook login
Thank you
If i were to use next.js as only the front end and have an express server as the backend would anything need to change from this auth setup?
I used keycloak and db session strategy. I don’t want to share jwt with browser. Btw do you know how to logout from google to make possible to login with different account?
What about asp net back end as an authentication provider with a token how does that work in next js. I havent seen any proper documentation regrading that so i don't know where or what to look for?
it would be great if you do same connection in react expo so we won't need to go for services like clerk, supabase auth
7:20 -d = enable detach mode
31:40 No that's different. That is a package "server only". Use server is different. It is annotation for server actions not to enforce the code to be run on server.
Thanks for the video, can you make a new one on using NextAuth with email/password login?
If this video gets the channel over 4000 hours watch time (minimum criteria for monetisation), then I will do it.
@@Jackson_Zheng Imma watch this with multiple accounts just to increase watch time for that 😝😝
@@Jackson_Zheng i hope you make the video on email/passwords login!
@@Jackson_Zheng Any chance you will do a email/password video using the same setup?
please can you make video about AuthJs v5 when user can login using a facebook account
I searched for this topic and now on make video on youtube
why you don't need a code verifier ? I faced a issue that google oauth api tell me my code verifier is invalid
I had installed postgres on my local machine and was using postgresql on docker with the same port which caused me few hours of trouble, use different ports or disable your local pgservice
yeah, don't have more than one postgres service running at once.
@@Jackson_Zheng Also I wanted to thank you for this tutorial and the efforts you made for 'production' grade things.
how did your docker containers worked with no need to set up the networks?
docker works with localhost by default
@@Jackson_Zheng thank you for this amazing tutorial I learned a lot from it
please can you make a video about login using facebook?
bro how did you do doxcker
what happens if you signed in with ur google account, but then u unlinked it, and also the session was erased, how will you sign in again to the same account with same or other google account?
@@MihirAmanRaj when the account is unlinked it deletes the Google OAuth information from the database. So if the user doesn't have another Google account linked, then signing in with the unlinked Google account will automatically relink it. The account is determined by the email (so the user can also sign into the account using the email address of the unlinked Google account if they want to). Unlinking the Google account only deletes the Google OAuth record from the database but the email record still remains in the "users" table.
@@Jackson_Zheng okay makes sense, i will surely try to implement it, i am using prisma btw for my own auth starter kit
can we have one with lucia auth
British AND Asian?! Can't go wrong.
amazing.
I like the video but i did not like the styling part. because i dont use it i use tailwind.. only confusing..
loved the d0cker part big up :_
Backup or restore database to website
Transfer balance
Admin edit/delete/disable/create
Products buying user account
Expired date products
🎉🎉🎉🎉🎉🎉🎉🎉🎉
Just my feedback but I thought this video was supposed to be about auth, yet half the video is just building a nextjs app.
What were your original expectations for the video? I'm trying to figure out this RUclips thing so I'm probably going to miss more shots than I hit, but curious what you were originally thinking the video was going to be more like?