Saving into localStorage with nodejs

后端 未结 3 1096
余生分开走
余生分开走 2021-02-03 14:23

I need to save jwt-token in local-storage through nodejs after the user has logged in (has been authorized ).

After I check if the user/password is correct in my control

相关标签:
3条回答
  • 2021-02-03 14:24

    In the client call to /login use xmlhttpresponse object, then add an event listener for 'load'. This will give the client the responseObject where you have added the token. Then in the event listener put your localStorage code

    0 讨论(0)
  • 2021-02-03 14:26

    You cannot save to localStorage on Node.js, but you can do it on a browser, possibly after sending from a server, for your case from a server on Node.js.

    You should send the token from the server (running on Node.js) to the client (browser) which has a window object, having the localStorage and related getItem and setItem methods, you can reference from your JavaScript code for client (browser). Node.js does not have any window to reference. So, by referencing it in Node.js code you will get an undefined error you have encountered.

    Just put it into a cookie and send, or send it via a json response. Then on the client browser save it into window.localStorage.

    following is the examples code for the latter way; sending via a response:

    // SERVER-SIDE Code
    // say `app` is your app server on node.js
    // this is a url handler on your server-side code
    // you just have sent your user credentials from a browser
    // typically via a form in the body of your http request
    app.post('/auth', function (req, res) {
      // you may have here some jwt token creation things
      // ...
      // and send it as your response to the client (probably a web browser) ..
      // with your prefrred name as the key, say 'my_token', ..
      // where you will save it to localStorage (ie. window.localStorage)
      res.json({my_token: 'asdfgh-anything-jw-token-qwerty'})
    })
    

    // CLIENT-SIDE Code (may be a web browser)
    // You have just sent a request to the server..
    // ..with user credentials for authentication in the request body
    // in the request body may be a window.FormData object or a json etc.
    http.post('auth', userCredentials)
      // probably the request mechanism you make http..
      // ..requests asynchronously, maybe using a library,..
      // ..will return a Promise, and you will have a similar code below.
      .then(response => {
        response.json()
          .then(responseJson => {
            // set localStorage with your preferred name,..
            // ..say 'my_token', and the value sent by server
            window.localStorage.setItem('my_token', responseJson.my_token)
            // you may also want to redirect after you have saved localStorage:
            // window.location.assign("http://www.example.org")
          })
      })
    
    0 讨论(0)
  • 2021-02-03 14:36

    If you mean html 5 localStorage, there's no such a thing since node.js is a server-side technology. Html 5 localStorage is a client side feature supported

    refer How to access localStorage in node.js?

    0 讨论(0)
提交回复
热议问题