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
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 :)
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!!
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.
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.
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 😊😊
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?
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.. 😊
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
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?
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? 🙏🙏🙏🙏🙏
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
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
Halo bang Cand. This is realy great tutorial. I watch the whole video but still got some issue. Can you please share the final code to us? Thank you.. Mantap tutorialnya. Cuma ada issue ketika masuk ke halaman register kena redirect. Bisa minta final codenya bang.. Terima kasih.
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?
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.
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 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
I think this is one of the most comprehensive tutorials that guides how to implement credentials provider using Prisma. Thank you!
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.
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 :)
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
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 RUclips, related to authentication in Nextjs. Bro,, please make a complete course related to Nextjs in detail
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!!
Too good to believe, session are being introduced so well, why such good youtuber only have few people watch, what a lost for them.
Great video dude. Your video is straight to the point unlike other youtubers who pad out their tutorials with unnecessary CSS stylings.
Have you released the next part of this series, incorporating Google authentication implementation? The series has been excellent so far! :)
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.
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.
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 😅
Thank you Cand! I was struggling to extend the session user data and i got the solution.
github whit final code please
Hey, can you please give the final code Github repo. Thanks.
Have you released the next part to this series, implementing google auth? Great series so far! :)
I have already uploaded that, but RUclips just deleted that video 😥.
@@CandDev upload it again we really need it
@@CandDev can u pls try to upload the same video again ?
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 🤍
"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.
Thanks bro, for this NEXTJS and POSTGRESQL Video... More NextJS and PostgreSql CRUD video please....
Sure bro 🚀
Amazing video! all your videos are amazing and this one is clearly seen at another level. Thank u bro so much for charing.
thansk alot i was crying from last night😭
I'm glad I could help 😁
You know how to write code very well and you explain it. Thank you very much 😎🙌👌
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?
Thanks a lot! And how we can use API session? In others api`s reqests?
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 ❤❤
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?
Brilliant, just brilliant
I love using PostgreSQL and Prisma
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?
Sub so fast , great videos series bro , thank you so much !
Thanks for the sub! 🤍
Thank you for the video :) Can I ask where we can find the repo will the full code please ?
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.. 😊
do we need rls when working with prisma? if yes how to write policies?
can we have a video showing login + google auth + 2factor auth at the same time...?
Is this example basically safe to use in real website (with some additions)?
my login is redirecting me to /api/auth/error can someone help me please
hy dear , i want to create otp section when user is register and login. please create otp verification video
Another professional tutorial!👍
Great tutorial, inspired me a lot for making a tutorial.. :)
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 ?
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.
Excellent tutorial! Thank you
stuck in signin authentication it says bad request
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?
thanks a lot for this tutorial
Bro is doing god's work. Thank you!!!
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?
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");
}
};
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 !
was very very happy until there was no source code in description... your provide it in other videos, please put it, awesome content
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?
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
This series is awesome.
How can I use access tokens with this?
you're much better than lamadev
I am new with both channels, but in which way he's better if you can explain
you did not include the api/ folders in your github repo why is that ?
Exactly what I was looking for🎉
Where is the Signup flow ?
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?
🙏🙏🙏🙏🙏
good video, it would be awesome if you create another branch on your project witht he final code!
Hi can you add remember me functionality where my credentials Store in local storage and password should be encrypted...
Detailed and clear explaination...
awesome tutorial very complete and easy to understand
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
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
Can I use Next Auth in React Native Android Application??
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
great video mate!
Amazing tutorial!! thanks so much🤩!
dude, how to implement this code for rest-api ?...
regards..
Halo bang Cand.
This is realy great tutorial. I watch the whole video but still got some issue. Can you please share the final code to us? Thank you..
Mantap tutorialnya. Cuma ada issue ketika masuk ke halaman register kena redirect.
Bisa minta final codenya bang.. Terima kasih.
Thank you man. I'm from 🇧🇷
Olá, Brasil 👋🏻
amazing tutorial. Thank you!
After how much time a session is expired and can we manually set an expiry for session
did u ever figure this out
Can you update your source code please?
there is no api folder and prisma folder. Just only forms?!
I dont get it, when did you create the forms and ui lmao, am i meant to create my own form or?
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!
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;
},
},
}
Terimakasih bro ilmunya
makasih juga bro udah mampir
Great video!
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
In next js 13 app directory next auth we can not authenticate user without using prisma?
Yes, of course
Awesome mate!
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
where is the video with google login?
here: ruclips.net/video/k1TL-AzavvY/видео.htmlsi=gJXa-sF8jKcS7J9u
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?
amazing video!
nicee tutorial 👍
I have tried twice my code is showing internal server error 500 can any one help me with it
restart your local server
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 👋🏻
nice video
3:32 itu pake apa bang? postgre gw ga kek gitu, apa karena mac?
iya, beda tampilan aja kayaknya. aku gak pernah coba juga sih tampilan selain di mac.