Authentication with Next Auth and Next.js 14 | Protected routes, Server & Client Sessions

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 พ.ย. 2024
  • Authentication with Next Auth and Next.js 14 | Protected routes, Server & Client Sessions
    In this tutorial, I walk you through the process of implementing the latest version of NextAuth into Next.js 14. I cover how to set up OAuth login with both GitHub and Google, as well as creating protected routes by obtaining the session on the client and server.
    Find the github repository here: bit.ly/4aAbWRk
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 86

  • @ansarqazi4377
    @ansarqazi4377 6 หลายเดือนก่อน +3

    The content is litreally so impressive. Everything is explained in quite simple way. Nothing extra in the video, just focusing on what actually needs to be done. Highly appreciated! Highly recommended! Thanks for the video.

  • @NoahCuz
    @NoahCuz 7 หลายเดือนก่อน +14

    Part 2 with updating the session on the server would be greatly appreciated! Subscribed

    • @webdevjan
      @webdevjan  6 หลายเดือนก่อน +4

      Part 2 is out now, have a look here: th-cam.com/video/Aq4FstAD3iM/w-d-xo.html

  • @angerbadge773
    @angerbadge773 หลายเดือนก่อน

    No BS guide to Oauth with a very minimal example , really great work

  • @souvikmukherjee2404
    @souvikmukherjee2404 3 หลายเดือนก่อน

    Sir, your demonstration is far better than others. Just an advice if you create a playlist where viewer can get all the auth/next.js related videos in one place that would be great

    • @webdevjan
      @webdevjan  3 หลายเดือนก่อน

      I appreciate that so much. :)
      That actually already exists, have a look here:
      th-cam.com/video/Cm6-3pVCPEI/w-d-xo.html

  • @maxwell-cj3ds
    @maxwell-cj3ds 2 หลายเดือนก่อน

    I really like this video and think it's one of the best for beginners. There are just two things I'd suggest: the video could be a little slower, and the sound should be louder. Other than that, everything is top-notch-your teaching skills and content are excellent. Thanks again for covering this topic in such a great way!

    • @webdevjan
      @webdevjan  2 หลายเดือนก่อน

      Appreciate the valuable feedback! :)

  • @abiodunfatunbi8871
    @abiodunfatunbi8871 หลายเดือนก่อน

    Please a part 2 series !!! I like your style of tutorial. Thankssss

  • @FreakingTools
    @FreakingTools 3 หลายเดือนก่อน

    Watched so many videos but couldn't get it. Your video had me setup in no time. Keep up the good work!

    • @webdevjan
      @webdevjan  3 หลายเดือนก่อน

      That means so much! Glad I could help you out :)

  • @goodtimeswerehad
    @goodtimeswerehad 2 หลายเดือนก่อน +1

    Really appreciate this video. Quick and straight to the point, really helpful!

  • @ansarqazi4377
    @ansarqazi4377 6 หลายเดือนก่อน +1

    Very useful content, quick, no time-wasting. Highly recommended! 🔥🔥🔥🔥

    • @webdevjan
      @webdevjan  6 หลายเดือนก่อน

      Appreciate it bro!

  • @bohdanromanovich4912
    @bohdanromanovich4912 19 วันที่ผ่านมา

    It would be great to see how to handle sessions for both cases (credentials and something like google) and with roles management off course.

  • @sibusisomfana9834
    @sibusisomfana9834 2 หลายเดือนก่อน

    Thank you for this session
    really helped a ton!

  • @Racine14
    @Racine14 3 หลายเดือนก่อน

    Thank you so much for this video... Can do one more about this and register User Data into MongoDB or any other database?

  • @Racine14
    @Racine14 4 หลายเดือนก่อน +1

    This is awesome tutorial.

  • @shanumehra7088
    @shanumehra7088 7 หลายเดือนก่อน

    Hi Yan , Followed your video, Amazing work and looking forward for new videos.
    Just needed to ask a question that while getting the session data on client side you've used useSession() , cant we use the same function on the server as well for getting the same session data ?

    • @webdevjan
      @webdevjan  7 หลายเดือนก่อน

      Thanks! Once I have some free time, I'll definitely dive deeper into the nextauth series and create a part 2.
      In that, I'll explore the credentials provider and provide more in-depth information. :)
      The useSession hook is specifically designed for client components, meaning you can't utilize it on the server side.
      To address this limitation, nextauth introduced the getServerSession function, which performs the same task on the server.

    • @shanumehra7088
      @shanumehra7088 6 หลายเดือนก่อน

      ​@@webdevjan Wow great, Now got the point. Thanks !! 😇😇

  • @maxencemhx
    @maxencemhx หลายเดือนก่อน

    I want to give you a big thank you from France ! Do you have a discord server for your community ?

  • @jessicabragamarques5971
    @jessicabragamarques5971 หลายเดือนก่อน

    Excelente vídeo! Parabéns!

  • @sahebbeshra7659
    @sahebbeshra7659 7 หลายเดือนก่อน +1

    Ya we need part 2 with email and password and also save user in data base for google and github login

    • @webdevjan
      @webdevjan  6 หลายเดือนก่อน +1

      Part 2 is out now, have a look here: th-cam.com/video/Aq4FstAD3iM/w-d-xo.html

  • @omarmohamedfaheem2198
    @omarmohamedfaheem2198 24 วันที่ผ่านมา

    This is very good content and explanation, I really enjoyed it.
    However, I have a question there is a one second split delay where it shows the index page then the dashboard when logged in, is there a way to prevent this?

    • @webdevjan
      @webdevjan  24 วันที่ผ่านมา

      You are performing the session check on the client with useSession which causes that delay. Perform the check on the server instead to avoid any layout shifts

    • @omarmohamedfaheem2198
      @omarmohamedfaheem2198 24 วันที่ผ่านมา

      @@webdevjan can you explain more please?

  • @estherinyang4779
    @estherinyang4779 หลายเดือนก่อน

    So great! Thank you!

  • @pescamuilesviavelez
    @pescamuilesviavelez 20 วันที่ผ่านมา

    But with your approach in relation with SessionProvider wrappering all your application, are you losing any options of having server components? Because you are forced to use always components in client-side

  • @mateokladaric
    @mateokladaric 5 หลายเดือนก่อน

    how does your terminal autofill stuff, that's new to me!

  • @HiienH
    @HiienH หลายเดือนก่อน

    really really helpful! thanks for sharing

    • @webdevjan
      @webdevjan  28 วันที่ผ่านมา

      Glad it was helpful!

  • @Productiveho
    @Productiveho 2 หลายเดือนก่อน

    It fixed my bug!! Thanks

  • @MysterYKnowledge621
    @MysterYKnowledge621 4 หลายเดือนก่อน +1

    what is your extension that suggest that typescript errors in red color?

    • @webdevjan
      @webdevjan  28 วันที่ผ่านมา

      Just saw this, sorry for the late reply. It's called "Error lens"

  • @jhoanmiguelescobararboleda8547
    @jhoanmiguelescobararboleda8547 6 หลายเดือนก่อน

    Yes nice, Question, what about I want to go to another page, if he is not log in, I want to show that page does not have accesss.. or redirect, do you do that in the middleware?

  • @webhero42
    @webhero42 หลายเดือนก่อน

    Why do u using external services? I think custom auth will be there

  • @slmatc
    @slmatc 2 หลายเดือนก่อน

    very simple very helpfull. thank you.

  • @ohmegatech666
    @ohmegatech666 หลายเดือนก่อน

    In their documentation they say to make a file called [...nextauth].js but you are making a folder called that. Why the difference?

  • @DhaouJawhar
    @DhaouJawhar 6 หลายเดือนก่อน

    Subscribed, impressive stuff !! just on the point ♥♥♥

    • @webdevjan
      @webdevjan  6 หลายเดือนก่อน

      Thank you so much

  • @abchk_yt4322
    @abchk_yt4322 3 หลายเดือนก่อน

    Hi, do you have a tutorial that use only next.js with next auth without typescript ?

  • @Twinkling-wy1dp
    @Twinkling-wy1dp 6 หลายเดือนก่อน

    Very useful content, thank you very much, solve my problem

  • @Prag1974
    @Prag1974 6 หลายเดือนก่อน

    Hi Man. Great content. Thanks. But I have a problem: I want to use session based authentication strategy (as you know jwt is little bit unsafe) and I also credentials provider. When I adjust credentials provider in auth.ts and other files, next auth throwing error something like " 'session': 'database' strategy doesn't support credentials provider" is there any way to fix it? if not, can you suggest me a library that allow users credentials login and uses session based strategy. What should I do? Thanks.

  • @icisukacoding
    @icisukacoding 4 หลายเดือนก่อน +1

    thanks you brooo, tutorial is work

  • @ashwinmanghat4416
    @ashwinmanghat4416 4 หลายเดือนก่อน

    What is the plugin you are using that shows the errors inline?

  • @legal3377
    @legal3377 หลายเดือนก่อน

    best tutorial

  • @AkshithTp
    @AkshithTp 3 หลายเดือนก่อน

    i'm getting {"message":"There was a problem with the server configuration. Check the server logs for more information."} this when i host it in netlify don't know why

  • @sahebbeshra7659
    @sahebbeshra7659 7 หลายเดือนก่อน

    And if possible can you login using email and socials for appwrite with nextjs with both server and client. Please do it because no one TH-cam has done it properly

  • @muhammadhuzaifaali3391
    @muhammadhuzaifaali3391 4 หลายเดือนก่อน

    that helps me a lot but the crazy thing is the vscode interface. can u please share the ur VS code profile file with me

  • @juventusi
    @juventusi 4 หลายเดือนก่อน

    It works locally but in production gives me error 500

  • @BuhuuRecords
    @BuhuuRecords 6 หลายเดือนก่อน

    Can you tell what extension is showing you errors directly in the code?

    • @webdevjan
      @webdevjan  6 หลายเดือนก่อน +2

      The extension is called "Error Lens"

  • @sohamdas4343
    @sohamdas4343 2 หลายเดือนก่อน

    Just have a question. If Sessionwrapper is using use client and it's wrapping the whole layout won't this make the full app client side rendered? Since children would also follow csr. I'm very new to server rendering components in next js so please forgive my dumb question

    • @kittypers5210
      @kittypers5210 หลายเดือนก่อน

      No, this has been asked a lot and I am one of them, lol. You can use chat gpt or Google to confirm.

  • @Plexify-v2s
    @Plexify-v2s หลายเดือนก่อน

    I think you forgot the protected routes part

  • @PolyITLab
    @PolyITLab 2 หลายเดือนก่อน

    const session = await getServerSession(authOptions);
    console.log("session", session);
    it don't work . session alway is null.
    can you help me? ple

    • @webdevjan
      @webdevjan  2 หลายเดือนก่อน

      If the session is null, that means you are currently not logged in

  • @captaintechworld
    @captaintechworld 6 หลายเดือนก่อน

    Subscribed, impressive stuff !!

  • @ansarqazi4377
    @ansarqazi4377 6 หลายเดือนก่อน

    Highly appreciate!

  • @srivatsans3723
    @srivatsans3723 6 หลายเดือนก่อน

    Oh man, you saved my day.

  • @ohmegatech666
    @ohmegatech666 หลายเดือนก่อน

    OK but you're just using localhost in your GitHub setup, that's not going to work in production so what's the point?

    • @hick3y1
      @hick3y1 15 วันที่ผ่านมา

      change it to live when ready?

  • @RedRobotDevelopment
    @RedRobotDevelopment 2 หลายเดือนก่อน

    I think the SessionWrapper wrapping everything at the top level, essentially makes everything a client side component so now your app is a SPA. Can someone else confirm this?

    • @goodtimeswerehad
      @goodtimeswerehad 2 หลายเดือนก่อน

      I had the same thought... and the same lack of answer 😛
      Another video talking about a similar setup uses a slightly different approach inside layout.tsx to keep things server-side: th-cam.com/video/md65iBX5Gxg/w-d-xo.html

    • @ashrafjunior3479
      @ashrafjunior3479 หลายเดือนก่อน

      no it's not.

    • @RedRobotDevelopment
      @RedRobotDevelopment หลายเดือนก่อน

      ​@ashrafjunior3479 thank you for explaining

    • @webdevjan
      @webdevjan  28 วันที่ผ่านมา +1

      If that would be the case, then you could use the useEffect (a client sided hook) for example in a fresh page.tsx file without specifying "use client" at the top. The wrapper is a server component so no need to worry about this :)

  • @BilalAmin-v5z
    @BilalAmin-v5z 6 หลายเดือนก่อน

    Thank you Jan

  • @Crypt2349
    @Crypt2349 3 หลายเดือนก่อน

    Thank you so much!!!!!

  • @shoaibshaikh0786
    @shoaibshaikh0786 6 หลายเดือนก่อน +1

    bro please upload part 2

    • @webdevjan
      @webdevjan  6 หลายเดือนก่อน

      Part 2 is out now, have a look here: th-cam.com/video/Aq4FstAD3iM/w-d-xo.html

  • @sungo9664
    @sungo9664 6 หลายเดือนก่อน +1

    I will have your Desktop Wallpaper please!!!

    • @webdevjan
      @webdevjan  6 หลายเดือนก่อน

      The wallpaper is called "Amazing Landscape" and I am using the program "Wallpaper Engine" from steam.

  • @tizooooo
    @tizooooo หลายเดือนก่อน

    du bist ne süße maus

  • @andremalt8255
    @andremalt8255 6 หลายเดือนก่อน

    Thanks bro

  • @chesterxp508
    @chesterxp508 5 หลายเดือนก่อน

    GoodJob!

  • @mikhacavin
    @mikhacavin 5 หลายเดือนก่อน

    part 2 th-cam.com/video/Aq4FstAD3iM/w-d-xo.html&ab_channel=WebDevJan

  • @DudeFrom1972
    @DudeFrom1972 6 หลายเดือนก่อน

    Ithinkitwasveryinteresting,hower,Igottiredinmyheadasyoudidmakeanynaturalpausesinyournarration.

    • @webdevjan
      @webdevjan  6 หลายเดือนก่อน

      The video has jump cuts since most people have the attention span of a goldfish nowadays in this TikTok/short-form content era. If it wasn't cut down like this, a lot of viewers would just click away after 30 seconds.
      However, I appreciate your feedback.

    • @DudeFrom1972
      @DudeFrom1972 6 หลายเดือนก่อน

      @@webdevjan Thank you for replying.
      May I suggest that you create and publish your videos in two versions: a short and a longer one and then provide a link for the short version in the long version and vice versa - a positive side effect of this is that you'll double your content with very little effort on your part.

  • @levimorais3641
    @levimorais3641 6 หลายเดือนก่อน

    idk why but i keep getting error 404 when clicking the button
    and the terminal shows this
    GET /api/auth/session 404 in 456ms
    GET /api/auth/session 404 in 32ms
    POST /api/auth/_log 404 in 32ms
    POST /api/auth/_log 404 in 15ms
    GET /api/auth/providers 404 in 44ms
    POST /api/auth/_log 404 in 40ms
    GET /api/auth/error 404 in 27ms
    and the session object is undefined