How to create Protected Routes and Authentication with React Router V6 2023

Поделиться
HTML-код
  • Опубликовано: 24 авг 2024
  • Download the code here - github.com/Kod...
    In this video, we'll be learning how to create protected routes and authentication with React Router V6. Private routes allow us to control how specific paths are accessible, while authentication provides a secure way to ensure only authorised users can access our content.
    By the end of this video, you'll be able to create private routes and authentication in React Router V6, ensuring that your users are protected while they access your content
    Using React Router V6 we'll put together an App that has:
    1. Authentication wrapper using useContext and useReducer
    2. A custom component to build our routes and menu options
    3. A login page that calls a login function from our Auth Wrapper
    4. Dynamically build and set our menus and routes depending on the user's status
    #reacttutorial #reactrouter #reactjs

Комментарии • 81

  • @vPopovPHX
    @vPopovPHX 6 месяцев назад +12

    This video is just pure gold! Straightforward, concise, without any useless information. Amazing!

    • @kodieCode
      @kodieCode  5 месяцев назад +2

      Glad you enjoyed it!

  • @destinyforeveryone3659
    @destinyforeveryone3659 17 дней назад

    This video was exactly what I needed!! I've been confused with authentication and the bunch of different ways to do it and a video that cuts all the extra stuff and shows you the basics of how it works was perfect. Thanks so much, hope you make more videos was sad to see this was your latest on in a year.

  • @samontefrankamirsong.5474
    @samontefrankamirsong.5474 5 месяцев назад +1

    You deserved more subscribers. You are a good example on what the developers should follow. I haven't followed yours but I created something that is similar and in tsx.

    • @kodieCode
      @kodieCode  5 месяцев назад +1

      I appreciate that!

  • @AIwithChinmay
    @AIwithChinmay 2 месяца назад +1

    straight and easy to understand thanks for the video.

  • @user-wp9ht1yy9j
    @user-wp9ht1yy9j 10 месяцев назад +2

    Amazing video! I love how there are people like you that go straight to the point and explain in plain English. Thanks a lot for the video! PS: Better teaching methods than my university (will definitely suggest to my friends)!

    • @kodieCode
      @kodieCode  7 месяцев назад

      Really appreciate the feedback!

  • @theonlymaster9374
    @theonlymaster9374 Месяц назад

    This is a super useful video!!!, went through it, understood how everything is done, great video!!!

  • @vaibhavdani4470
    @vaibhavdani4470 Месяц назад

    Gold Gold Goldberg !! Happy to find this channel !!

  • @georgekopadze791
    @georgekopadze791 9 месяцев назад +1

    Good luck with your channel. Liked your content

    • @kodieCode
      @kodieCode  8 месяцев назад

      I appreciate it!

  • @raheelafzal5406
    @raheelafzal5406 Год назад +1

    your content is amazing seriously. i learned so much from this single video of yours,

  • @tanercoder1915
    @tanercoder1915 Год назад +1

    I enjoyed the video and your accent, as well as learned from you

    • @kodieCode
      @kodieCode  Год назад

      Thanks for the feedback!

  • @frankie_goestohollywood
    @frankie_goestohollywood Год назад +2

    Excellent content!!!!! Thank you very much 🤓 I would love to see another tutorial with your implementation of local storage.

    • @kodieCode
      @kodieCode  Год назад

      Great suggestion!

    • @wdtrap
      @wdtrap 6 месяцев назад +1

      @@kodieCode it looks like maybe you're not making these videos anymore, but consider this comment as another vote for a video on the local storage

  • @FreddyF1977
    @FreddyF1977 10 месяцев назад +1

    Nice, simple, to the point.
    Thanks!

    • @kodieCode
      @kodieCode  8 месяцев назад

      Glad it helped!

  • @retrabaud-it
    @retrabaud-it Год назад +1

    yo bro
    thank u sooo much, i every day look yt, and try to learn something new, and u speak very easy for me! (sorry for my eng)
    gl bro at ur way!

    • @kodieCode
      @kodieCode  Год назад

      Thanks for the kind comments!

  • @yinkaenochadedokun467
    @yinkaenochadedokun467 6 месяцев назад +1

    Great and concise 👍

    • @kodieCode
      @kodieCode  5 месяцев назад

      Glad it was helpful!

  • @justin9494
    @justin9494 11 месяцев назад +2

    Thank you! The map part is genius

    • @kodieCode
      @kodieCode  11 месяцев назад +1

      Thanks for feedback

  • @natnaelhailu-com
    @natnaelhailu-com 10 месяцев назад +1

    Thanks for the helpful tutorial!!!

    • @kodieCode
      @kodieCode  10 месяцев назад

      Glad it was helpful!

  • @johnmarynwanze3713
    @johnmarynwanze3713 5 месяцев назад +1

    i love it great knowledge been passed here, thanks a lot

  • @alexandrejunior4775
    @alexandrejunior4775 7 месяцев назад +1

    It's amazing! thank you very much!

    • @kodieCode
      @kodieCode  7 месяцев назад

      Glad you like it!

  • @balajig3306
    @balajig3306 2 месяца назад

    Nice ❤

  • @isaacjon
    @isaacjon Год назад +3

    Great content. Please release a video about refresh and access tokens

    • @kodieCode
      @kodieCode  Год назад +3

      Thanks for the suggestion. I'll be working on that video soon

    • @imatrules
      @imatrules 11 месяцев назад +1

      Hey @@kodieCode any update?

  • @investia_tech
    @investia_tech 8 месяцев назад +1

    Good work!

  • @zstudio6127
    @zstudio6127 9 месяцев назад +1

    thanks you for this tut

    • @kodieCode
      @kodieCode  8 месяцев назад +1

      Welcome 😊

  • @yourlinuxguy
    @yourlinuxguy 4 месяца назад

    Really nice video, Thankyou.

    • @kodieCode
      @kodieCode  4 месяца назад

      Glad you liked it!

  • @jonasmunkchristensen7384
    @jonasmunkchristensen7384 Год назад +1

    Cool video! Simple and well explained! It would be very helpful to see an implementation with local storage as well as role-based authorization. Regardless, thanks for the awesome content!

  • @gustavostarace1252
    @gustavostarace1252 Год назад +1

    Great content, thx!

    • @kodieCode
      @kodieCode  Год назад +1

      Thanks for the feedback

  • @alexmuiruri502
    @alexmuiruri502 8 месяцев назад +2

    Hi @kodie,
    Great content here. However, I'd prefer to show the login page if a user tries to access a private page

    • @kodieCode
      @kodieCode  7 месяцев назад

      This is easy enough to do with creating a default route pointing at the login page. That means any route not created based on their status, will show that page instead.

  • @Sylar7773
    @Sylar7773 Год назад +1

    Thank You so much!!!

  • @justin9494
    @justin9494 11 месяцев назад +5

    How do we add google auth to this?

    • @kodieCode
      @kodieCode  11 месяцев назад +2

      I'm planning to do a video on various third party Auth libraries including Google very soon.

    • @justin9494
      @justin9494 11 месяцев назад +1

      @@kodieCode Thanks!

    • @jacketking8433
      @jacketking8433 4 месяца назад +1

      @@kodieCode waiting for the video man!!

  • @hankpham4431
    @hankpham4431 5 месяцев назад

    can you make a new video on how not to make user logout whenever the page refresh?

  • @PeriklesPeriklesoglu
    @PeriklesPeriklesoglu 10 месяцев назад +1

    thank you

  • @user-gs3gm2ti8d
    @user-gs3gm2ti8d 5 месяцев назад

    yes pls do that user key and session expire thingi we do want it

  • @itsLarryAlright
    @itsLarryAlright 4 месяца назад

    Please I need a tutorial on how to use localstorage with this

  • @VayunEkbote
    @VayunEkbote Год назад +3

    I suggest that you make code along tutorials, with more catchy thumbnails. Your content is great, you will grow fast.

  • @ASOCMARCTKD
    @ASOCMARCTKD 5 месяцев назад

    How can I Implement roles of users?

  • @IXBoyI
    @IXBoyI 10 месяцев назад +1

    why on refresh it does not hold the private links? It resets and I have to click on "login" again so they pop up

    • @kodieCode
      @kodieCode  10 месяцев назад

      This is because in that tutorial we are not storing that the user is authenticated in the localStorage or a cookie. This means a refresh of the page restarts the state. I am working on a video to expand on this authentication method and show how to start storing user details including if the user is logged in so that a returning user might be automatically authenticated

  • @njordhoder
    @njordhoder 11 месяцев назад +1

    This only dynamicly shows the menu items. If a user is not logged in it still can go to the private route by typing it in. There is no redirect.

    • @kodieCode
      @kodieCode  11 месяцев назад +2

      The routes are only accessible when logged in as the routes are only defined when authenticated therefore not accessible. If a user not logged in tries to directly access a private route they will be shown the default controller

    • @njordhoder
      @njordhoder 11 месяцев назад +1

      Wow never thought of setting it up like that. Makes absolute sense. An aha moment for me. Thanks for the reply.

    • @kodieCode
      @kodieCode  11 месяцев назад

      No problem. The great thing about an overall Auth controller with useContext is that you can make just about anything easily conditional on the user being logged in.

    • @parker7721
      @parker7721 10 месяцев назад

      But what If the user enters to that route from a different tab, he is logged in but since the state of user logged in is only on the other tab, now he wont have access? @@kodieCode

    • @satishksharma
      @satishksharma 8 месяцев назад

      This is okay but how can we show 404 page and not authenticated user according to condition.

  • @webhybrid809
    @webhybrid809 5 месяцев назад

    can you help me to do same thing in next.js,
    i have to do with user role based , their tho 2 user role , so how to do in next.js with typescript?

  • @holakonoob
    @holakonoob Год назад +1

    heyy kodie how about make a simple tutorial that is in ts not js and handle auth via jwt cookie not token to be more secure then use R.R.D v6 to protect the routes

    • @kodieCode
      @kodieCode  Год назад +1

      Great suggestion. Thanks for the feedback.

    • @holakonoob
      @holakonoob Год назад

      ​@@kodieCode
      Btw remember my words your channel will grow super fast cause everything is good the audio the video's quality and also the content keep up the good work

  • @alonsoestevam
    @alonsoestevam 3 месяца назад

    Why are the extension files `.js` instead of `.jsx`?

    • @saarza9991
      @saarza9991 15 дней назад

      Doesn't matter it's a framework

  • @goffardeveloper2056
    @goffardeveloper2056 9 месяцев назад +1

    how to add role user sir

    • @kodieCode
      @kodieCode  7 месяцев назад +1

      You would need to add an additional object against the user to define their role and then load the routes depending on what that role is allowed to access.

  • @ankoh69
    @ankoh69 10 месяцев назад +1

    rooutah