NextJS Authentication with Server Actions - Learn to build from scratch!

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 ธ.ค. 2024

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

  • @codingwithrobby
    @codingwithrobby  8 หลายเดือนก่อน +3

    Do everything in server actions! ❤

    • @junaid-alyyy
      @junaid-alyyy 8 หลายเดือนก่อน

      Hi youtube.com/@codingwithrobby . How to remove cookies if the user session is expired. In my use case, I want to remove cookies instead of redirecting the user. Need your help, if you can reply. Thanks

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

      @@junaid-alyyy cookies().delete('Authorization') This should work fine in middleware or a server action

    • @junaid-alyyy
      @junaid-alyyy 8 หลายเดือนก่อน

      @@codingwithrobby - Thanks for the quick response. It works with a server action but I want to validate the user session using middleware and if the session is expired or invalid then the cookie should be deleted but this deletion isn't possible `cookies().delete('Authorization')` in the middleware.

    • @韩佳骏
      @韩佳骏 6 หลายเดือนก่อน

      @@junaid-alyyy I also encountered this problem, what should I do?

    • @韩佳骏
      @韩佳骏 6 หลายเดือนก่อน

      import { cookies } from "next/headers"; belongs to the server-side API, but logout is a client-side operation

  • @summersnow2288
    @summersnow2288 7 หลายเดือนก่อน +16

    I don't understand why do you use api within the action, the whole point of action is to get rid of api?

  • @RobertBojor
    @RobertBojor 8 หลายเดือนก่อน +7

    Thanks for this! But I do have a question... Wouldn't be easier to just use the server action to do all the work instead of having it offload the work to the API route? Based on my understanding of server actions, when you submit the form and the server action is called, under the hood there's a POST request being made to a hidden route (the server action). Daisy chaining the reuests like this might introduce more lag since two calls are being made, not to mention you have to account for errors in both methods.

    • @macccu
      @macccu 7 หลายเดือนก่อน +5

      Yeah this tutorial makes no sense. Just a proof that you should not trust any random youtuber for programming knowledge. Soon avg TS code tutorial it's going to be worse than PHP 20 years ago. Type safety is not going to help anyone if people are just going to do stupid things.

    • @newborn7348
      @newborn7348 5 หลายเดือนก่อน +2

      Yeah the whole idea of using a server action is so that you wouldn't need to create an api route for things like this.

  • @AdejoroRofiatAbimbola
    @AdejoroRofiatAbimbola 9 หลายเดือนก่อน +8

    Straight to the point. Thanks so much

  • @Keifeh.P
    @Keifeh.P 8 หลายเดือนก่อน +2

    Exactly what I was looking for, thank you!

  • @dzseroldfabian4574
    @dzseroldfabian4574 9 หลายเดือนก่อน +1

    You are an honest, true hero. Keep it up Chief

  • @stefanlemke7858
    @stefanlemke7858 7 หลายเดือนก่อน +2

    Absolutely love the way you are explaining things! Please keep up the great work.

  • @bolajiadedeji6758
    @bolajiadedeji6758 7 วันที่ผ่านมา

    love it, learnt a lot within half hour

  • @AndrulisTravel
    @AndrulisTravel 9 หลายเดือนก่อน +1

    Very nice :) So if you have time, the next interesting things are 'Forgot password', sending a verification link when a new user registers, to prevent false registrations, and a Google login option :)

  • @deanelie7775
    @deanelie7775 9 หลายเดือนก่อน +1

    Glad to see this video on my youtube homepage, thank you for this video. ☺

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

    awesome video, straight to the point . love the way you signed out with peace

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

    bestest tutorial l have come across on Next JS Server Actions and Authentication. Very very easy to understand. thanks to you l now have this well understood 🤩

  • @alexvoid8717
    @alexvoid8717 9 หลายเดือนก่อน +1

    I'm new to server actions and still trying to understand them. Aren't they supposed to be independent of APIs/routes and be able to perform database operations directly within themselves?

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

      I was thinking the same when I saw that part. No need for the fetch call to the api endpoint because you are already on the server, just do a db lookup.

  • @dzseroldfabian4574
    @dzseroldfabian4574 9 หลายเดือนก่อน +1

    How to Log out? and how to read user data from cookies?

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

    Man thanks a lot. was looking for this. Got it at the right time

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

    Its very straight forward, thanks

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

    fantastic, i managed to follow you throughout the tutorial even if it did take me a while since i had to figure out using drizzle orm but everything was great! will try to implement jwt refresh tokens now

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

      Hey man, have you figured out the refresh token part?

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

    Great video bro!

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

    Thanks so much Robby, this video helped me a lot

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

    Thanks for this explanation, I have only one question, how can I add refresh token with this approach? can you give me a hint? thanks in advance

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

      Another useful google output: www.google.com/gasearch?q=nextjs%20server%20actions%20bearer%20token%20authorization&source=sh/x/gs/m2/5#ip=1 even though the results are probably not what you're expecting, it points you in the right direction

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

    Very helpful and simple to understand

  • @ItachiUchiha-w5h
    @ItachiUchiha-w5h 9 หลายเดือนก่อน +1

    I'm getting a
    Error:p1001: can't reach database server at `localhost`:`5432`
    How do I solve it

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

      Do you have Postgres installed locally? You could also just get a database at www.elephantsql.com and use the connection string they give you

    • @ItachiUchiha-w5h
      @ItachiUchiha-w5h 9 หลายเดือนก่อน

      @@codingwithrobby yea that was the problem I solved it thanks..

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

    Love the sound of your keyboard. Can you share a keyboard name and link please?

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

    Can you do captcha with google?

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

    Okay so I was building an app and I had implemented a similar JWT authentication just like this, but then decided that I should switch to use NextAuth and now I'm facing issues with the client useSession() method and the server session not syncing. Are you deliberately not using NextAuth? Can this be implemented with Nextauth?

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

      The reason I wanted to switch to NextAuth was to easily integrate SSO with different providers like Google, Azure, e.t.c.

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

    awesome content. can you explain why you moved all the logic to an route handler when you can keep it in the server actions?

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

      I'd say he wanted to keep it simple, after all is not that bad

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

      @@agusjkdev dont think so, adding one more step (the router handler)

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

    Can you implement "Refresh token" and "Token rotation" to this code? seems to be fun.

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

      Hey man, have you figured this out now?

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

      @@divinecharles4102 Yes, I may create a video about it

  • @w.arajinda2968
    @w.arajinda2968 9 หลายเดือนก่อน

    thank to you i can continue my projects,keep it up
    👍👍👍👍👍

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

    With server actions, does it feel like you don't need route handlers

  • @the.money.mentor.825
    @the.money.mentor.825 6 หลายเดือนก่อน

    isnt it a bad idea to store the db connection string in an env variable? it can be accessed on the front end. I'm going to watch this video and put it all in the backend and secure it with a public api key and then only allow calls from a certain ip.

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

      .env variables are not accessible by FE per default. So we're fine here

  • @tshepokhumako1403
    @tshepokhumako1403 8 หลายเดือนก่อน +1

    You so real. Thanks

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

    Thanks sir, but i have question. why u still create api route if only with server action can create user or login (logic in server action)?

    • @codingwithrobby
      @codingwithrobby  9 หลายเดือนก่อน +2

      Yeah... I suppose that would work too 😬. I guess this just adds a little more flexibility if you wanted to open it up externally down the line.

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

      I believe that when utilizing server actions, you are essentially making a POST request to an endpoint representing the server action function. In this context, it seems like you are engaging in two fetch operations. I think you can invoke this function within both the signup route and the signup server action.
      @@codingwithrobby

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

      Not really needed, but it was good to see how to set up api endpoints if needed.

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

      Brilliant, loved it! Referencing the docs was a great idea, made everything look so simple.

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

    How to protect api no one access , we can access only same origin 😢 in next js 14

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

    Please, guide me if possible, How to add subscription based payment method that can be customised to any payment solution available all over the world. Take care.

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

    Hi! Really love your content. In intro to App dev you said that tried creating it with golang from scratch. Can you do a video on this topic?)

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

    Hey robby, which operating system you're using? I sense it's linux but which distro?
    Thanks

    • @codingwithrobby
      @codingwithrobby  9 หลายเดือนก่อน +1

      It's MacOS, I use a mac mini

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

      @@codingwithrobby oh okay! Thanks

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

    nice one, helpful information

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

    how to logout?

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

    Great video thanks, but if you have a user and want to display the information or store it somehow in a useContext to be able to use the users information around the app, will I just put cookies().get("Authentication") into a authContext then?

  • @韩佳骏
    @韩佳骏 6 หลายเดือนก่อน

    How to Log out?

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

    thanks for this amazing content but the only problem is your server actions are not protected so any one can see because you export them

  • @MusaRehman-m9o
    @MusaRehman-m9o 9 หลายเดือนก่อน

    thanks needed this

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

    I liked you video thanks

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

    Thanks so much

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

    Good job

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

    Excellent!

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

    Thanks!

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

    Why are you making server-side request in server action to your own api? This makes no sense. Please stop.

  • @ahmedmrsawy9215
    @ahmedmrsawy9215 8 หลายเดือนก่อน +2

    Sorry but using server action to make a request to a route handler is so DUMP

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

    Thanks

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

    Thanks