I am halfway through the tutorial, encountered many errors (not the creator's fault - updates, installation, etc.) and I can say with certainty this is one of those tutorials I really want to follow through, it is so informative and just MAKES SENSE! Big kudos to you, @Cand Dev :)
Great Video! I am a React developer and I just started messing around with Next.js and this project really helped me gain valuable knowledge about how Next.js works and the different tools available in the framework. One tip though: for security reasons it is better to have the id in the prisma model as a string and then set the default to uuid(), that way even if you dont have route protection someone cant just change the end of the route from number 1 to 2 for example and log in as the admin. instead the route will have something like this: 8624d47d-ceb0-4288-bd0a-876bb68985f0. which is a universally unique identifier that once generated can never be re-created so there is no chance of route manipulation in that way
Thank you very much, I have been looking for a long time for a tutorial that shows how to really create such a system with usernames and passwords. I even stopped a project because I couldn't find a solution for it. Now I have my passion back thanks to you.
The redirect after login at 43:00 can now also be implemented directly in the signIn-call. Just set redirect: true and provide a callbackUrl to which to redirect the user to.
this is the best nextjs tutorial I've seen, I always find difficult on following tutorials but this is the first that really helped me and I learned a lot of useful things, great work and nice didactic!!
Love Love Love this video. So simple and very informative. I followed along and learnt a lot. Thank you for this 😊..... Now the "Like so" is stuck to my head 😅
"Fantastic! This video is like discovering a treasure trove. It's filled with invaluable insights. I'm convinced he's the best lecturer I've ever come across. Thank you so much. Your assistance has been instrumental in helping me create a practical, real-world product.
Sir, this tutorial was really helpful you covered all the points. One more thing, I want to ask you can you please make a tutorial in which you're using both the credentials provider and also the google provider together. You can make that video in continue to this playlist.
i really love how you give me the folder template to code and how you explain really really love the video. i hope u will make more videos about tricks and nextjs project 😊😊
Something seems to not be working because the same url you entered to see the sign in form is taking me to a 404 error page I have checked the git repo and everything looks fine, I also see that others are facing the same issue here in the comment section
so what we if want to use a genuine backend for this instead? do we still need to use the next /api approach and then reach out to our api from there or can we just use fetch and session tokens in components?
Thanks for the video! but how to implement throttling in the register API? and how to guard the pages to always redirect to login if user is unauthenticated?
I have an error in production mode in the sign out section, because when I click sign out, it still calls localhost, how can I make it not localhost anymore? 🙏🙏🙏🙏🙏
Excellent tutorial, dude..! But, is there a tip to make this role based authentication? Btw don't forget to post nextauth authentication using google credentials.. 😊
I am not able to singin.. it is redirecting me back to the home page.. Showing warning about NEXTAUTH_URL and NEXTAUTH_SECRETKEY... someone please help
Great video! I was wondering if you had any idea how to make this expandable for multiple different logins. I am working on having two login pages with seperate admin pages, storing sign up data in two different prisma tables and using those to sign in. I managed to get the sign up post request to work, but my sign-in to redirect to the new admin page is causing me trouble that routes to me an error page. Any ideas?
Hey bro! nice tutorial! I'm stuck with the signIn part, because I'm having an issue after submit it redirect to /api/auth/error. Can you please help me with that? thanks :)
I solve the redirect issue by chainging to the following code: " const signInData = await signIn("credentials", { email: values.email, password: values.password, redirect: false, }); " in the signInForm.tsx file
I'm getting a "Warning: Prop `htmlFor` did not match. Server: ":R2irb6qcq:-form-item" Client: ":Rabdcr9j9:-form-item" error when trying to log in. Tried to debug it but can't find the issue. Any help? ^^'
this htmlFor is just a warning from 1 of the shadcn components hes using in the starter template.. but i dont think thats causing your login error.. u manage to fix the error?
Yes, add the following lines of code: In the SignInForm.tsx file, add a 'redirect: false' in the onSubmit function: so it would look like this: const onSubmit = async (values: z.infer) => { const signInData = await signIn("credentials", { email: values.email, password: values.password, redirect: false, }); if (signInData?.error) { console.log("error----", signInData.error); } else { router.push("/admin"); } };
I tried myself as well, it does redirect me to the admin page, but it stays for 1 second and then it re-routes me back to the sign-in page. Putting the redirect: false, it will end up remaining on the sign in page, it doesn't lead me at all to the admin page. My issue is that on Application/Cookies, I don't get the "session" next-auth cookie....I only have the callback and the csrf-token@@Jdsg1234
When I try to Login with the account I signed up for, I can't continue due to a 401 unauthorized error in the console. I guess it depends on the Credentials provider.
i cant configure the nextauth credentials provider i tried everything but i am failing again and again even though i am correctly returning the user inside authorize and also i gave made my submit function correct everything is correct i dont know why is it still undefined the result that signIn is givng undefined always i do not know why is that happeing wasted ours in it searched it everywhere i logged the values of my email and pass that was correct but result from sign in is undeifned PLEASE HELP
kalau error Unexpected token } in JSON at position 121 kenapa ya ? padahal kodingnya secara step by step udah sama, udah coba search juga katanya minta downgrade efect di windows tapi coba di linux juga sama kenapa ya ?
I think this is one of the most comprehensive tutorials that guides how to implement credentials provider using Prisma. Thank you!
It just covering the basic stuff you find everywhere... pointless, useless
I am halfway through the tutorial, encountered many errors (not the creator's fault - updates, installation, etc.) and I can say with certainty this is one of those tutorials I really want to follow through, it is so informative and just MAKES SENSE! Big kudos to you, @Cand Dev :)
Great Video! I am a React developer and I just started messing around with Next.js and this project really helped me gain valuable knowledge about how Next.js works and the different tools available in the framework.
One tip though: for security reasons it is better to have the id in the prisma model as a string and then set the default to uuid(), that way even if you dont have route protection someone cant just change the end of the route from number 1 to 2 for example and log in as the admin. instead the route will have something like this: 8624d47d-ceb0-4288-bd0a-876bb68985f0. which is a universally unique identifier that once generated can never be re-created so there is no chance of route manipulation in that way
Dude, this is the only one usefull tutorial about next-auth with prisma db, that i found on the internet !! Keep doing what you do
Yeah, litterly i have been searching for long time and i did not find anything, yet by accident i discovered this tutorial.
Thank you very much, I have been looking for a long time for a tutorial that shows how to really create such a system with usernames and passwords. I even stopped a project because I couldn't find a solution for it. Now I have my passion back thanks to you.
Let's get back to coding 🧑🏻💻. Thanks for the tip
The redirect after login at 43:00 can now also be implemented directly in the signIn-call. Just set redirect: true and provide a callbackUrl to which to redirect the user to.
I looked up multiple tutorials. Only yours seemed to help me out of this hell hole called next-auth.
Thank you!
That is the best tutorial on TH-cam, related to authentication in Nextjs. Bro,, please make a complete course related to Nextjs in detail
Too good to believe, session are being introduced so well, why such good youtuber only have few people watch, what a lost for them.
this is the best nextjs tutorial I've seen, I always find difficult on following tutorials but this is the first that really helped me and I learned a lot of useful things, great work and nice didactic!!
Great video dude. Your video is straight to the point unlike other youtubers who pad out their tutorials with unnecessary CSS stylings.
This is the tutorial I've been looking for!
awesome. subbed. please continue this series. like role based auth. email verification. forget and reset password.
Love Love Love this video. So simple and very informative. I followed along and learnt a lot. Thank you for this 😊.....
Now the "Like so" is stuck to my head 😅
I cannot remember any other coding tutorial that was as well done in terms of following up as this one. And I have been on this for years.
Have you released the next part of this series, incorporating Google authentication implementation? The series has been excellent so far! :)
Thank you Cand! I was struggling to extend the session user data and i got the solution.
"Fantastic! This video is like discovering a treasure trove. It's filled with invaluable insights. I'm convinced he's the best lecturer I've ever come across. Thank you so much. Your assistance has been instrumental in helping me create a practical, real-world product.
github whit final code please
This actually is awesome. you make it so simple Thank you. I would love you to make another video on role based access on top of this. 👌
Thanks 🤍
Amazing video! all your videos are amazing and this one is clearly seen at another level. Thank u bro so much for charing.
Hey, can you please give the final code Github repo. Thanks.
You know how to write code very well and you explain it. Thank you very much 😎🙌👌
Sir, this tutorial was really helpful you covered all the points. One more thing, I want to ask you can you please make a tutorial in which you're using both the credentials provider and also the google provider together. You can make that video in continue to this playlist.
Another professional tutorial!👍
Have you released the next part to this series, implementing google auth? Great series so far! :)
I have already uploaded that, but TH-cam just deleted that video 😥.
@@CandDev upload it again we really need it
@@CandDev can u pls try to upload the same video again ?
Brilliant, just brilliant
thansk alot i was crying from last night😭
I'm glad I could help 😁
Thanks bro, for this NEXTJS and POSTGRESQL Video... More NextJS and PostgreSql CRUD video please....
Sure bro 🚀
Excellent tutorial! Thank you
Sub so fast , great videos series bro , thank you so much !
Thanks for the sub! 🤍
Great tutorial, inspired me a lot for making a tutorial.. :)
i really love how you give me the folder template to code and how you explain really really love the video. i hope u will make more videos about tricks and nextjs project 😊😊
and i hope you always support me, with like and comment 😁
@@CandDev i hope you will make a project with nextauth and other technologies ❤❤
Hi Cand. When I run npx prisma migrate dev --name init. The terminal stands still and doesn't give any response. please help me!
Hey i have the same issue , did u find an answear for this problem ?
Something seems to not be working because the same url you entered to see the sign in form is taking me to a 404 error page I have checked the git repo and everything looks fine, I also see that others are facing the same issue here in the comment section
thanks a lot for this tutorial
I love using PostgreSQL and Prisma
so what we if want to use a genuine backend for this instead? do we still need to use the next /api approach and then reach out to our api from there or can we just use fetch and session tokens in components?
This series is awesome.
Exactly what I was looking for🎉
am stuck at 44:51.. It doesn't redirect me to the Admin page even when the credentials are correct. please help
я так сделал:
auth.ts
export const authOptions: NextAuthOptions = {
adapter: PrismaAdapter(prisma),
session: {
strategy: 'jwt'
},
pages: {
signIn: "/sign-in"
},
providers: [
CredentialsProvider({
name: "Credentials",
credentials: {
email: { label: "Email", type: "email", placeholder: "jsmith" },
password: { label: "Password", type: "password" }
},
async authorize(credentials) {
if (!credentials?.email || !credentials?.password) {
return null
}
const existingUser = await prisma.user.findUnique({
where: { email: credentials?.email }
})
if (!existingUser) {
return null
}
const passwordMatch = await compare(credentials.password, existingUser.password)
if(!passwordMatch){
return null
}
return {
id: `${existingUser.id}`,
username: existingUser.username,
email: existingUser.email
}
}
})
],
callbacks: {
session: ({ session, token }) => {
console.log("Session Callback", { session, token });
return {
...session,
user: {
...session.user,
id: token.id,
randomKey: token.randomKey,
},
};
},
jwt: ({ token, user }) => {
console.log("JWT Callback", { token, user });
if (user) {
const u = user as unknown as any;
return {
...token,
id: u.id,
randomKey: u.randomKey,
};
}
return token;
},
},
}
You are not alone. If you have solved it, let me know what you did to solve this problem.
@@АлександрАлександр-ъ4ъ1р thanks u are a legend !
@@omalaydrinks1847 solved the issue?
@@omalaydrinks1847 did u solve?
itsthe final code available?
my signIn() doesnt seem to execute the autorize function and i have no idea what im doing wrong.
great tutorial btw!
did u ever find out?
Bro is doing god's work. Thank you!!!
Hey Candid, i have an issue when i run npx prisma migrate dev --name init, the terminal stands still and doesn't give any response. Can you help me ?
I find the solution, the default port seems to not work (6543), i switched it on 5432 and its working now !
Thanks for the video! but how to implement throttling in the register API? and how to guard the pages to always redirect to login if user is unauthenticated?
Can you update your source code please?
there is no api folder and prisma folder. Just only forms?!
Thanks a lot! And how we can use API session? In others api`s reqests?
at 43:17 when I click login it logs undefined and reloads even after I put redirect false and preventDefault
x2
Hey, I fixed it, i added the session provider hook from next-auth on the layout.tsx, also i add an try/catch block on the authorize in the authOptions
@@samuelpalacios9661 can you share the code i facing same issue
do we need rls when working with prisma? if yes how to write policies?
Detailed and clear explaination...
Is this example basically safe to use in real website (with some additions)?
awesome tutorial very complete and easy to understand
stuck in signin authentication it says bad request
was very very happy until there was no source code in description... your provide it in other videos, please put it, awesome content
Amazing tutorial!! thanks so much🤩!
great video mate!
I have an error in production mode in the sign out section, because when I click sign out, it still calls localhost, how can I make it not localhost anymore?
🙏🙏🙏🙏🙏
I wonder if you have any tutor with progress bar with shadcn ui in future?
Excellent tutorial, dude..! But, is there a tip to make this role based authentication? Btw don't forget to post nextauth authentication using google credentials.. 😊
its the final code available?
my signIn() doesnt seem to execute the autorize function and i have no idea what im doing wrong.
great tutorial btw!
hey did you figure it out? getting the same unauthorized error
@@Wansi did u ever figure it out?
you're much better than lamadev
I am new with both channels, but in which way he's better if you can explain
thank you , eveything is cool , but in my vscode everything is broken even the next auth page is updated , i can't get the default sign in page
I am not able to singin.. it is redirecting me back to the home page..
Showing warning about NEXTAUTH_URL and NEXTAUTH_SECRETKEY...
someone please help
Thank you for the video :) Can I ask where we can find the repo will the full code please ?
amazing tutorial. Thank you!
Thank you for content, could you please explain where are you using "export const authOptions: NextAuthOptions"? I can't find it where are you using
i use that on my [...nextauth].js, app/page.tsx, navbar, and many more.
Great video! I was wondering if you had any idea how to make this expandable for multiple different logins. I am working on having two login pages with seperate admin pages, storing sign up data in two different prisma tables and using those to sign in. I managed to get the sign up post request to work, but my sign-in to redirect to the new admin page is causing me trouble that routes to me an error page. Any ideas?
Hi can you add remember me functionality where my credentials Store in local storage and password should be encrypted...
can we have a video showing login + google auth + 2factor auth at the same time...?
Hey bro! nice tutorial! I'm stuck with the signIn part, because I'm having an issue after submit it redirect to /api/auth/error. Can you please help me with that? thanks :)
did you solve it i have the same issue and are desperate to solve it
I solve the redirect issue by chainging to the following code:
"
const signInData = await signIn("credentials", {
email: values.email,
password: values.password,
redirect: false,
});
"
in the signInForm.tsx file
+ other thing just look for my comment in the comment section of the video
@@Osmanity I did this and still am getting the error: const onSubmit = async (values: z.infer) => {
const signInData = await signIn("credentials", {
email: values.email,
password: values.password,
redirect: false,
});
if (signInData?.error) {
console.log("error----", signInData.error);
} else {
router.push("/admin");
}
};
hy dear , i want to create otp section when user is register and login. please create otp verification video
Thank you man. I'm from 🇧🇷
Olá, Brasil 👋🏻
my login is redirecting me to /api/auth/error can someone help me please
I'm getting a "Warning: Prop `htmlFor` did not match. Server: ":R2irb6qcq:-form-item" Client: ":Rabdcr9j9:-form-item" error when trying to log in. Tried to debug it but can't find the issue. Any help? ^^'
got the same did you solve?
this htmlFor is just a warning from 1 of the shadcn components hes using in the starter template.. but i dont think thats causing your login error.. u manage to fix the error?
@@lxespadatv2342 took some time but manage to fix it actually :)
to fix this warning just look for my comment somewhere in the comments section, I think it was that you need to update nextjs & eslint
Thanks for the video!
Is there any one who had challenge moving pass 44:56 - getting to admin page. If you did, i would like to know why it happened and how to solved it
Yes, add the following lines of code:
In the SignInForm.tsx file, add a 'redirect: false' in the onSubmit function:
so it would look like this:
const onSubmit = async (values: z.infer) => {
const signInData = await signIn("credentials", {
email: values.email,
password: values.password,
redirect: false,
});
if (signInData?.error) {
console.log("error----", signInData.error);
} else {
router.push("/admin");
}
};
I tried myself as well, it does redirect me to the admin page, but it stays for 1 second and then it re-routes me back to the sign-in page. Putting the redirect: false, it will end up remaining on the sign in page, it doesn't lead me at all to the admin page. My issue is that on Application/Cookies, I don't get the "session" next-auth cookie....I only have the callback and the csrf-token@@Jdsg1234
Where is the Signup flow ?
When I try to Login with the account I signed up for, I can't continue due to a 401 unauthorized error in the console. I guess it depends on the Credentials provider.
я так сделал:
в файл auth.ts добавил callback
],
callbacks: {
session: ({ session, token }) => {
console.log("Session Callback", { session, token });
return {
...session,
user: {
...session.user,
id: token.id,
randomKey: token.randomKey,
},
};
},
jwt: ({ token, user }) => {
console.log("JWT Callback", { token, user });
if (user) {
const u = user as unknown as any;
return {
...token,
id: u.id,
randomKey: u.randomKey,
};
}
return token;
},
},
}
Why the GitHub Repo codes not completly ?
After how much time a session is expired and can we manually set an expiry for session
did u ever figure this out
good video, it would be awesome if you create another branch on your project witht he final code!
I dont get it, when did you create the forms and ui lmao, am i meant to create my own form or?
dude, how to implement this code for rest-api ?...
regards..
Great video!
How can I use access tokens with this?
i cant configure the nextauth credentials provider i tried everything but i am failing again and again even though i am correctly returning the user inside authorize and also i gave made my submit function correct everything is correct i dont know why is it still undefined the result that signIn is givng undefined always i do not know why is that happeing wasted ours in it searched it everywhere i logged the values of my email and pass that was correct but result from sign in is undeifned
PLEASE HELP
Please send me your code, and I will check it.
I had this same issue, try adding redirect: false to the object in the signIn function
Did you manage to fix it?
Awesome mate!
Terimakasih bro ilmunya
makasih juga bro udah mampir
In next js 13 app directory next auth we can not authenticate user without using prisma?
Yes, of course
amazing video!
Can we host this on hostinger premium webhosting
nicee tutorial 👍
kalau error Unexpected token } in JSON at position 121 kenapa ya ? padahal kodingnya secara step by step udah sama, udah coba search juga katanya minta downgrade efect di windows tapi coba di linux juga sama kenapa ya ?
btw, aq kira bule, english keren hahaha
kemungkinan penempatan kurung kurawal yg salah, atau hilang.
masih belibet bro hahaha
udah bisa thanks
this is the type of youtubers i hide from my friends lol like hiding good shows
discord ????
You won a new subscriber from Venezuela.... my English is bad but you explain very well.... I'm understanding
Att. Jose Grillo
Thank you, my English is also not very good 😁, happy coding 👋🏻
Thanks you!!!!
So useful bruh
nice video
I have tried twice my code is showing internal server error 500 can any one help me with it
restart your local server
25:02 if did use axios most efficient and less code!! over all i really like video
yup axios makes it more better and easier