vue 怎么获取后台带来的 token?

后端接口给了一个 token,没有以数据的方式返回,而是在 cookie 里面,vue 怎么能拿到这个 token

回答·46
最热
最新
  • 你说的这个 token,如果是 jwt 那种,直接让后端在登陆成功之后返回,然后前段存在 localstorage,进入系统以后,每个请求头加上 token,后端会获取头然后验证 token,成功返回数据,失败请重新登录,如此往复,除了登录页面的借口可以不传 header 头的 token 其他接口基本都要加上一个 token 参数请求!
  • 相信一般前端用的都是 axios, 1 从 axios 响应拦截器中的响应报头取得 2 加入 token 到响应数据或者直接 vuex,或者 storage
  • 这个 token 只是前后端沟通的钥匙,所以没有携带其他数据,之后的请求你只要和后端沟通好格式并携带这把钥匙就可以从后端获取数据了,比如展示页面,你只需要产品名称和图片数组,而产品的详情页你只需要当前产品的详情信息。通过 token 分别向后端请求信息,可以大大减少前端工作量,跨模块处理数据,减少页面卡顿和宕机器的概率,总得来说这是一种比较先进和常用的前后端交互方式,一些后端在登陆时就一口气把所有数据都怼给前端,这才是不负责任和落后的方式。以上为个人看法,不服可喷!
  • 通常在访问后端地址的时候,后端会往浏览器 cookie 中写入 token(签名/非签名),然后前端可通过 js-cookie 库直接获取到。大致过程是这样的,实际项目中需要各种验证,这里就忽略直接说重点了。
  • 我咋感觉不应该让前端通过代码获取到 cookie。如果前端可以获取到。是不是不太安全。只要在页面里插入一个 js 文件。然后 token 就被获取走了
  • 把 token 放到请求头,前端读取请求头参数获取并把参数的值保存到浏览器缓存中,不需要用 cookie,每次请求带上 token,后端会验证 token,token 包含用户 ID、用户名、用户登录的有效期等
  • 初次登录的时候,前端调后调的登录接口,发送用户名和密码,后端收到请求,验证用户名和密码,验证成功,就给前端返回一个 token,和一个用户信息的值,前端拿到 token,将 token 储存到 Vuex 中,然后从 Vuex 中把 token 的值存入浏览器 Cookies 中。把用户信息存到 Vuex 然后再存储到 LocalStroage 中,然后跳转到下一个页面,根据后端接口的要求,只要不登录就不能访问的页面需要在前端每次跳转页面师判断 Cookies 中是否有 token,没有就跳转到登录页,有就跳转到相应的页面,我们应该再每次发送 post/get 请求的时候应该加入 token,常用方法再项目 utils/service.js 中添加全局拦截器,将 token 的值放入请求头中 后端判断请求头中有无 token,有 token,就拿到 token 并验证 token 是否过期,在这里过期会返回无效的 token 然后有个跳回登录页面重新登录并且清除本地用户的信息
  • 这个问题改成如何获取 cookie ,或许能直接一点
  • 直接去 cookie 拿,document.cookie,或者直接用 js-cookie 这个插件
  • 拿不到,cookie 基于同源策略,vue 跨域。