MERN Auth - Signup & Login with Email (JWT) | React , Node, Express, MongoDB

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

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

  • @CyberW0lves
    @CyberW0lves  2 ปีที่แล้ว +10

    Watch this video : th-cam.com/video/KqcEVUI7-s0/w-d-xo.html In this video I implemented authentication with refresh and access token, role based authorization and protected routes only authenticated user can access that route.

    • @theabhisengar
      @theabhisengar ปีที่แล้ว

      After this whole application, how can run my application? ( can you tell me please).

    • @Di1eepNagendra
      @Di1eepNagendra ปีที่แล้ว

      @@theabhisengar how to run

    • @theabhisengar
      @theabhisengar ปีที่แล้ว

      @@Di1eepNagendra yuppp

    • @Di1eepNagendra
      @Di1eepNagendra ปีที่แล้ว

      @@theabhisengar tell me bro

    • @RabiaInam
      @RabiaInam ปีที่แล้ว

      how to run bro???tell plz you make all ur application but dont show how to run this app????

  • @86thecake
    @86thecake 2 ปีที่แล้ว +5

    I've been struggling big time to get my JWT token from my custom backend and login/register users. Wow, this is the best tutorial for front end auth. Thanks so much!

  • @ddhruvarora
    @ddhruvarora ปีที่แล้ว +4

    Live saver bro, thanks a lot. I was stuck on JWT for the past 4 hours, and just because of your video I was able to get it working.

  • @tannerbyers6729
    @tannerbyers6729 2 ปีที่แล้ว +8

    Love to see another video where you take this and build out a landing page and maybe an app inside the dashboard. Would be v helpful. Awesome code and great tutorial!

  • @rajatsharma6137
    @rajatsharma6137 2 ปีที่แล้ว +32

    Great video....but why are you not showing dry run ? You are writing a lot of code and its difficult to keep track of what is the effect of different snippets..

  • @mercurygingo8899
    @mercurygingo8899 2 ปีที่แล้ว +12

    For anyone getting internal error while logging in change the generateAuthToken() to jwt
    in auth.js file
    before
    const token = user.generateAuthToken();
    after
    const token = user.jwt;

    • @hashira_d
      @hashira_d 2 ปีที่แล้ว

      Thanks a lot!

    • @umer8509
      @umer8509 2 ปีที่แล้ว

      Helpful

    • @zaviyaar7424
      @zaviyaar7424 ปีที่แล้ว

      Thanks a lot

    • @niro100
      @niro100 ปีที่แล้ว

      Thank you

  • @Isticsek
    @Isticsek 2 ปีที่แล้ว +15

    Great and helpful content! Thank you very much! I would recommend to you, to talk a bit more louder if possible or remove the background music. Although, subscribed for future content!

  • @Grimmybol
    @Grimmybol ปีที่แล้ว

    Sakit simo ya boss. Maro maro simo mag computer! Thank you gid ah

  • @mainakmukhrjee6328
    @mainakmukhrjee6328 ปีที่แล้ว

    Amazing video! And thanks for the source code, it sure helped save a lot of time

  • @alzhrthy
    @alzhrthy 2 ปีที่แล้ว +1

    Please continue Uploading more videos. Very helpful 💯

  • @sashaohota2437
    @sashaohota2437 ปีที่แล้ว

    Thank you for the wonderful lesson! :)

  • @siddharthpasalapudi6168
    @siddharthpasalapudi6168 ปีที่แล้ว

    Very clean ! Thank you so much helped a lot !!

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

    bruh you didn't even show if its working or not

  • @njorogekamau3820
    @njorogekamau3820 2 ปีที่แล้ว

    I'm still building along and I'm really enjoying this

  • @osamahashmi4807
    @osamahashmi4807 2 ปีที่แล้ว

    Appreciated bro this tutorials help me alot tysm again.. keep it up :)

  • @madvier_8336
    @madvier_8336 2 ปีที่แล้ว

    Nice tutorial, also nice music xD

  • @SergioSanchez-rh4po
    @SergioSanchez-rh4po ปีที่แล้ว

    For those having a 500 error at the log in moment, in my case I declared the Validation function in auth.js inside the POST route, when moved outside Log in work normally.

    • @madhurshinde4988
      @madhurshinde4988 ปีที่แล้ว

      can you tell me exactly what you did, its confusing to understand

    • @SergioSanchez-rh4po
      @SergioSanchez-rh4po ปีที่แล้ว

      @@madhurshinde4988 by mistake, I wrote the validation function inside of the Post function route.
      It has to be declared outside of it.

  • @003你好
    @003你好 ปีที่แล้ว

    u followed mvc pattern that is a systematic and simple way to iimplement , subscribed d at the first video bud

  • @amitshukla2268
    @amitshukla2268 2 ปีที่แล้ว +2

    Keep it up bro , channel subscribed . If possible change your theme and you shouldn't play background music 🙂

  • @jawaderfani8743
    @jawaderfani8743 2 ปีที่แล้ว +5

    bro it is n't good to store user inside the localStorage if I add an empty object inside localStorage I can login 🙄🙄

  • @neel75
    @neel75 2 ปีที่แล้ว

    Very help full video. great content. I have one suggetion add slow calm music. This tune is very disturbing. pls take it in constructive way.

  • @indikasandun8997
    @indikasandun8997 2 ปีที่แล้ว

    Thank you for sharing this video. This is very helpful.

  • @BapiMallick1000
    @BapiMallick1000 2 ปีที่แล้ว

    You are good as delivering Good materials

  • @prathammathur7942
    @prathammathur7942 ปีที่แล้ว

    Great , Love the Video very very helpful.

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

    thanks so much. this helped me a lot

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

    The handleChange function for both SignUp and Login can fail more gracefully if this is applied:
    const handleChange = (e) =>{
    try {
    setData({...data, [e.target.name]: e.target.value});
    } catch (error) {
    console.log(error);
    }

    };
    Thanks for the video, I used it as a refreshment but if this was my first JWT project I think it lacked a bit of detail on what each portion of the code is doing.

  • @WillSmith-qt7me
    @WillSmith-qt7me 2 ปีที่แล้ว

    Thanks, useful MERN video.

  • @richardzotor8807
    @richardzotor8807 2 ปีที่แล้ว +3

    @Cyberwolves, My Sign UP and Login buttons are not responding. what can I do to resolve it?

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

    Best Work bro.. thanks to reach me

  • @mrkhiladi1147
    @mrkhiladi1147 2 ปีที่แล้ว +1

    very helpful video sir please make more project using mern stack

  • @mehtabrandhawa4814
    @mehtabrandhawa4814 2 ปีที่แล้ว +4

    Hey Cyber Wolve! can you also create a more advanced authentication video that also includes roles/permissions like: admin, customer?

  • @farhadhossen4548
    @farhadhossen4548 ปีที่แล้ว

    TypeError [ERR_INVALID_ARG_TYPE]: The "id" argument must be of type string. Received undefined
    at new NodeError (node:internal/errors:400:5)
    at validateString (node:internal/validators:163:11)
    at Module.require (node:internal/modules/cjs/loader:1098:3)
    at String.require (node:internal/modules/cjs/helpers:103:18)
    at Object. (C:\Users\farha\authInMern\server\index.js:5:28)
    at Module._compile (node:internal/modules/cjs/loader:1218:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
    at Module.load (node:internal/modules/cjs/loader:1081:32)
    at Module._load (node:internal/modules/cjs/loader:922:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
    code: 'ERR_INVALID_ARG_TYPE'
    }
    Node.js v18.13.0
    [nodemon] app crashed - waiting for file changes before starting...
    Code:
    const mongoose = require("mongoose");
    module.exports = () => {
    const connectionParams = {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    };
    try {
    mongoose.connect(process.env.DB, connectionParams);
    console.log("Connected to database successfully");
    } catch (error) {
    console.log(error);
    console.log("Could not connect database!");
    }
    };
    Plz help me ot solve this provlem
    @CyberWolves

  • @vishakhamore3778
    @vishakhamore3778 2 ปีที่แล้ว +5

    Great video but lacks explaination. Where did the password validation came from? from bcrypt? and I m getting error in route ("Internal server error"). Can you help me to solve?

    • @CyberW0lves
      @CyberW0lves  2 ปีที่แล้ว +1

      validations comes from joi package which we created that function in user model. console log error and tell me what is that.

    • @vishakhamore3778
      @vishakhamore3778 2 ปีที่แล้ว

      @@CyberW0lves
      In signup route:
      Error: Request failed with status code 500
      at createError (createError.js:16:1)
      at settle (settle.js:17:1)
      at XMLHttpRequest.onloadend (xhr.js:66:1)
      In signin route:
      Error: Request failed with status code 401
      (Invalid email and password) even after having account details in Database.

    • @TheLiiitorres
      @TheLiiitorres 2 ปีที่แล้ว

      Is this resolved? Im also having the same problem.

    • @vishakhamore3778
      @vishakhamore3778 2 ปีที่แล้ว +1

      @@TheLiiitorres not yet

    • @joaquimmorenopacheco610
      @joaquimmorenopacheco610 2 ปีที่แล้ว

      i have the same error when im trying to loggin

  • @codingwallah3695
    @codingwallah3695 2 ปีที่แล้ว +4

    i implemented this authentication for my college project and I got very good remarks because of you. But now I'm getting "Internal Server Error" while login . How can I solve it? Please help me 🙏

  • @doricade6768
    @doricade6768 2 ปีที่แล้ว +1

    It is super helpful. Could you show how to start mangodb and real use it in sign up and sign in

  • @albertoslavica57
    @albertoslavica57 2 ปีที่แล้ว +1

    Helo I registered 1 user and it worked but when i try to register the second one it gives me error 500. Login for first user work fine

  • @durotemy8410
    @durotemy8410 2 ปีที่แล้ว

    hello cyberWolve your video is so so rich thank you for it....Do u pls have a video where u talked about Redux state management

    • @durotemy8410
      @durotemy8410 2 ปีที่แล้ว

      Pls ur reply you have any video for redux .u are the best @cyber wolves

  • @alikuria2482
    @alikuria2482 2 ปีที่แล้ว

    short but detailed

  • @newborn7850
    @newborn7850 2 ปีที่แล้ว

    Q1 How to deploy on free cloud / host for testing. Q2. How can admin upload files so that users can access them . Rest your teaching is valuable Thanku

    • @CyberW0lves
      @CyberW0lves  2 ปีที่แล้ว +1

      Thank You : )
      a1 You can deploy backend on heroku and frontend on netlify for free. there are multiple resources deploy free for testing.
      watch this video to deploy MERN Stack => th-cam.com/video/I2YkUz-S41o/w-d-xo.html
      a2 I have already did that in spotify clone backend video. where you admin can upload songs and users will listen.
      checkout => th-cam.com/video/xvqXCACX9k8/w-d-xo.html

  • @syedsaadali420
    @syedsaadali420 ปีที่แล้ว

    beast

  • @durotemy8410
    @durotemy8410 2 ปีที่แล้ว

    hello quick response sir?? when did u create the token ..is is during signup or login??

    • @CyberW0lves
      @CyberW0lves  2 ปีที่แล้ว

      Login

    • @durotemy8410
      @durotemy8410 2 ปีที่แล้ว

      @@CyberW0lves oh thanks for the swift response

  • @maylens
    @maylens ปีที่แล้ว

    Thank you

  • @manogaransa2814
    @manogaransa2814 2 ปีที่แล้ว

    I am getting a below error "Unable to get local issuer certificate". Please help on this
    heroku login
    Warning: Ignoring extra certs from `C:\path\to`, load failed: error:02001005:system library:fopen:Input/output
    error
    » Warning: heroku update available from 7.53.0 to 7.63.4.
    heroku: Press any key to open up the browser to login or q to exit:
    Error: unable to get local issuer certificate

  • @ANILKUMAR-mn7pk
    @ANILKUMAR-mn7pk 9 หลายเดือนก่อน

    bhai ek baat bta simple direct database connect ni krr sakta....connectionparams not defined aadhe ghante se solve ni ho ra....

  • @Srinivas-G11FSD
    @Srinivas-G11FSD 6 หลายเดือนก่อน

    Hii bro where API in this video
    my frontend and backend was working but I am not getting API how can i do that

  • @codewarsfx161
    @codewarsfx161 2 ปีที่แล้ว

    good stuff

  • @shwetakakde4522
    @shwetakakde4522 ปีที่แล้ว

    how to solve this error :- Module not found: Error: Can't resolve './components/Singup'
    in 'D:\Projects\fullstack_authInMern\client\src'

    • @irshadsheikh9858
      @irshadsheikh9858 ปีที่แล้ว

      Given folder name is wrong correct might be ./components/Signup or given after ever folder name you have given

  • @diekesydney3162
    @diekesydney3162 2 ปีที่แล้ว

    Cool video

  • @vindiesel2231
    @vindiesel2231 2 ปีที่แล้ว

    Compliments for wonderful video. Have a problem, when try to register or login have problem with first name. In sign up, tell me "firstName" is not allowed while if try to login tell me "First Name" is required. Please can help me. Thanks

  • @silvialaurovici8573
    @silvialaurovici8573 2 ปีที่แล้ว

    i also get an error, the react app is working but nothing is happening after. if you could please help me

  • @secondarypemail7181
    @secondarypemail7181 2 ปีที่แล้ว +1

    It is giving internal server error while signing up

  • @RajaHammadAhsan
    @RajaHammadAhsan 2 ปีที่แล้ว

    i found this error (connection()
    ^
    TypeError: connection is not a function) can some body help me?

  • @majjisobhamadhuri9140
    @majjisobhamadhuri9140 ปีที่แล้ว

    When i signup it was not navigating to main route...can u pls help me out of this sir

  • @ioanasoare2642
    @ioanasoare2642 2 ปีที่แล้ว +1

    Hi! How can I get the current logged in user's details?

  • @artriusgg9272
    @artriusgg9272 2 ปีที่แล้ว +1

    why you don't run preview

  • @niro100
    @niro100 ปีที่แล้ว

    Hello, I increased select in sign-up in this code and got a problem. Can you help me?

  • @abdullahashraf4420
    @abdullahashraf4420 2 ปีที่แล้ว

    My code is giving internal server error on signin. Can someone please guide me as to why I'm getting it?

  • @FaheemTech
    @FaheemTech 2 ปีที่แล้ว

    Which theme are you using?

  • @rafaelarias9759
    @rafaelarias9759 2 ปีที่แล้ว

    What's the best practices for storing JWT, is it localstorage, cookies etc?? Thanks

    • @CyberW0lves
      @CyberW0lves  2 ปีที่แล้ว +1

      It's not a best practice to store JWT in local storage. You should store JWT inside an httpOnly cookie.

  • @mavguimaraes
    @mavguimaraes ปีที่แล้ว

    After successfully signup, if I try sign in I've got Internal Server Error. If I click in the error shown in the console I've got in the browser 'Cannot GET /api/auth'. Some light on how to solve this?

    • @irshadsheikh9858
      @irshadsheikh9858 ปีที่แล้ว

      getting internal error while logging in change the generateAuthToken() to jwt
      in auth.js file
      before
      const token = user.generateAuthToken();
      after
      const token = user.jwt;

  • @TaprobanaOrg
    @TaprobanaOrg 2 ปีที่แล้ว

    ❤❤❤❤

  • @SurajX1100
    @SurajX1100 ปีที่แล้ว

    hey i am getting internal server error while login please help

  • @k.a.rayhan7017
    @k.a.rayhan7017 2 ปีที่แล้ว

    hey. after 4:43 I get this error..
    UnhandledPromiseRejectionWarning: MongoParseError: option usedunifiedtopology is not supported
    what should I do !!

    • @CyberW0lves
      @CyberW0lves  2 ปีที่แล้ว +1

      Remove useUnifiedTopology from connection params object. We don't required for new update :)

  • @andresoberhelman9251
    @andresoberhelman9251 2 ปีที่แล้ว

    Hey i was having a cors issue when finishing the project. What could be a possible problem?

  • @anbumanic9179
    @anbumanic9179 ปีที่แล้ว

    After finishing the code you need to run I am understand code but how to run

  • @ummehanizubair3892
    @ummehanizubair3892 ปีที่แล้ว

    I did not get the verification email...what to do?

  • @femi9912
    @femi9912 2 ปีที่แล้ว

    This is great but the req.body is empty.

  • @oleksandrdw9454
    @oleksandrdw9454 2 ปีที่แล้ว

    How can we get an user information from the token?? I want to add dashboard page and for that I need to get access to the user info..

  • @AcuitSrishaGr
    @AcuitSrishaGr 2 ปีที่แล้ว

    Bro...i have used react js....and I'm getting error like use navigate and navigate is not found in react-router-dom.....could you tel me how to solve?

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

    How to create url for database?? U blurred it

  • @miltonpena1662
    @miltonpena1662 2 ปีที่แล้ว

    Hi i was trynig to follow up on the validations but i could not find them ? how did you code those errors ?

  • @shirsakshrestha4798
    @shirsakshrestha4798 2 ปีที่แล้ว

    Sir when you will add the remaining video tutorial of spotify

  • @tusharnain6652
    @tusharnain6652 2 ปีที่แล้ว

    Shouldnt we need to store the the user's token in the database?

  • @rigobertohernandez5680
    @rigobertohernandez5680 2 ปีที่แล้ว

    Bro, how to implement, edit and deleite user?

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

    but where is mongoDb

  • @shrutimohanty4031
    @shrutimohanty4031 2 ปีที่แล้ว +5

    login and signup button are not working in my case... any possible reason behind this/any possible solution you can give...?

    • @catalinaboteanu3456
      @catalinaboteanu3456 2 ปีที่แล้ว

      sameee no users are created when signing up..

    • @starlight-gk1gm
      @starlight-gk1gm ปีที่แล้ว

      same. Were u able to solve the error? If so how

  • @vortexdeo4545
    @vortexdeo4545 ปีที่แล้ว

    non monospace font for coding ? Interesting

  • @ganeshaM-q3x
    @ganeshaM-q3x 5 หลายเดือนก่อน

    When I trying to login i am getting internal server error at port 500!!. please help me with this!!

  • @rajadebnath2268
    @rajadebnath2268 ปีที่แล้ว

    src\App.js
    Line 11:8: 'user' is not defined no-undef
    can anyone help me out ?

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

      Hope you have already found the solution

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

      @@uvinuthsara3710 I don't remember but I did fixed it 😁

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

    bcrypt is not installing?someone help

  • @codingVibee
    @codingVibee 2 ปีที่แล้ว

    can you make one simple static user after login ticket booking ?

  • @emmanuelkombeto6700
    @emmanuelkombeto6700 2 ปีที่แล้ว

    Hey guy please what the first thing can I run client ou server and it possible to run both together

  • @Islamicshorts500
    @Islamicshorts500 11 หลายเดือนก่อน +1

    Bro Kuch bhi smjh nhi aarha smjhaao to sahi se

  • @afkgaming3203
    @afkgaming3203 2 ปีที่แล้ว

    Background music is too Loud

  • @sensational-ish3702
    @sensational-ish3702 2 ปีที่แล้ว

    how do i get the jwt private key, please help I need it for my assignment

    • @jennie4958
      @jennie4958 2 ปีที่แล้ว

      hey if you got anything regarding jwt private key this then please help me

    • @abderahmenoussema5568
      @abderahmenoussema5568 ปีที่แล้ว

      @@jennie4958 You should add your own strong password JWTPRIVATEKEY = 'SomeHardPasswordToDecript'

  • @laksh.a.y
    @laksh.a.y 2 ปีที่แล้ว

    Hi sir where can I find my JWTPRIVATEKEY and database url?

    • @suhaimiismail3549
      @suhaimiismail3549 2 ปีที่แล้ว

      i prefer you watch some tutorial to setup mongodb first

  • @TopGyearsago
    @TopGyearsago 2 ปีที่แล้ว +1

    That user email already exists error could be something like try using another email because it's not safe to do that because someone would know that email exists in the database and if he is trying to hack or something that would be a serious damage to the website

  • @vignesh.soundiram4922
    @vignesh.soundiram4922 2 ปีที่แล้ว

    I need help bro!! i dont want the registration part instead i want only few users to be able to login.. How do i achieve this? Plss help..

    • @CyberW0lves
      @CyberW0lves  2 ปีที่แล้ว +1

      My next video is about Authentication with refresh token and role based authorization. Will upload after a week.

  • @k.a.rayhan7017
    @k.a.rayhan7017 2 ปีที่แล้ว

    How to use protected routes using node JS authentication ?? Please help !!

    • @CyberW0lves
      @CyberW0lves  2 ปีที่แล้ว

      By using middlewares. My next video is about authentication via refresh and access token and role based autherization. In that video i will show you how to make protected routes. : )

  • @prasannarajen8812
    @prasannarajen8812 2 ปีที่แล้ว +2

    i get this error : localhost:8080/api.users 404 (Not Found)
    Please help me out sir

  • @farhanosmanhaider8251
    @farhanosmanhaider8251 2 ปีที่แล้ว

    thanks a lot.. @CyberWolve.... But the link which is sent with the email, is a link with localhost and related port. So, how that link could be worked on others device ? How can we generate a link which will work in every device ? PLZ REPLY KINDLY

    • @CyberW0lves
      @CyberW0lves  2 ปีที่แล้ว +1

      In order to verify link in every device, you need to deploy your backend (heroku) and fronted (netlify). Then add frontend url in backend configurations so we can send an email with that url. Now you can verify it from everywhere because it's on internet.

  • @santanuraj-fh5pr
    @santanuraj-fh5pr 6 หลายเดือนก่อน

    14:22

  • @hatemhenchir
    @hatemhenchir 2 ปีที่แล้ว

    { error && {error}} explain it pls

  • @zeshanshaikh0401
    @zeshanshaikh0401 2 ปีที่แล้ว

    background music is disturbing

  • @daffaofficial4125
    @daffaofficial4125 ปีที่แล้ว

    hello how is trials to google chrome ?

  • @newagecoder5417
    @newagecoder5417 2 ปีที่แล้ว

    bro my code is not working the react app is not working pls help me out

    • @CyberW0lves
      @CyberW0lves  2 ปีที่แล้ว

      What kind of error you are getting on console?

    • @newagecoder5417
      @newagecoder5417 2 ปีที่แล้ว

      @@CyberW0lves nothing is showing on the react localhost blank

    • @duppie75
      @duppie75 2 ปีที่แล้ว

      @@newagecoder5417 Make sure your paths are correct i.e.
      import Main from "./components/Main";
      import Signup from "./components/Singup";
      import Login from "./components/Login";

  • @kulvanth1491
    @kulvanth1491 2 ปีที่แล้ว

    Don't we need any middlewares in the backend ?

    • @CyberW0lves
      @CyberW0lves  2 ปีที่แล้ว

      If you want any specific route accessed only by authenticated user there you can add middleware. Actually I'have implemented this in spotify backend video go checkout th-cam.com/video/xvqXCACX9k8/w-d-xo.html

  • @abdulabdel9187
    @abdulabdel9187 2 ปีที่แล้ว

    HI! Thank you very much for this video it was a great help! 🙏 But how can I access the user information after loging inn? I want to display the user name and other things like picture inisde the profile when you are logged inn

    • @CyberW0lves
      @CyberW0lves  2 ปีที่แล้ว +1

      Add a middleware to verify json web token. After verifying you will get user ID from that you need get user details. I have implemented this in Spotify backend video.

    • @abdulabdel9187
      @abdulabdel9187 2 ปีที่แล้ว

      @@CyberW0lves Yes I found it. Thank you very much. One thing I dont understand is why you added the labels to the Joi.string part. Is it necessary? If so what is it for?

    • @abdulabdel9187
      @abdulabdel9187 2 ปีที่แล้ว

      Never mind, i found it out :D

  • @santanuraj-fh5pr
    @santanuraj-fh5pr 6 หลายเดือนก่อน

    9:06

  • @newborn7850
    @newborn7850 2 ปีที่แล้ว

    how to deploy it on heroku