node.js 下 jwt 的实现,如何保存 token?

最近在试着做 express + jsonwebtoken 的后端,有个问题搞不清楚,POST 用户名密码通过之后成功签发 token ,在这之后只需要 json(token:token) 就行了吗?看的资料都只是返回,下一节就直接附带token到验证的步骤了,所以对于这点还是不太清楚。
使用 Postman 测试:

POST: https://localhost:3101/api/v1/admin/login

附带了正确的用户名密码

          var token = tokenConfig.signinToken(admin)
          req.headers['x-access-token'] = token
          console.log(req.headers['x-access-token']) //输出了token
          res.json({ success: true, message: 'Enjoy your token!', token: token })

我试着直接写入请求头,然后进行下一步

GET:https://localhost:3101/api/v1/admin/user/1

console.log(req.headers['x-access-token']) //输出了undefined

另外有个疑问,看的资料里头,有些是利用req.headers['x-access-token']传递,有些是用req.headers["authorization"],这两者有什么区别?
求辅导:)

补充
可能我的表达有点问题,就是,后端签发token之后,json返给前端,前端怎么做才能在后续的每一个请求里附带这个token?

阅读 6.2k
3 个回答
新手上路,请多包涵

首先爱你 http://jwt.io 这里有写好的JWT库。
用这些库好一点,不知道楼主是不是用到了还是自己编的方法。
然后,token获取是客户端发送的,可以把token字符串存储在本地。浏览器有localStorage或者cookie或者sessionStorage等。APP平台有各种存储机制。
然后请求服务器时候带上get参数或者header参数。
你这里是那个header是要从客户端给服务端还是服务端给客户端?怎么把值赋给req啦?

一般在登录成功时把jwt存cookie里面就行了,客户端请求的时候会自动带上的,只需要在后端验证jwt即可

新手上路,请多包涵

一般都是存在 localstorage 里面

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题