token使用
前端带账户密码登录
后端校验通过,生成token,传回给前端保存在本地
前端跳转到主页,请求API时 带上token 后端过滤器校验token,通过就增删改查DB,返回数据,
前端展示数据,
如果token验证未通过,就返回错误码,前端提示错误信息,跳到登录页
token包括
1.HS256算法 加密
2.Id
3.过期时间
4.**
登录身份验证可以用cookie和session结合使用token
用token的好处是?
多用户系统,用户A可以带token去执行增删改查用户A的数据,就是在每次请求API时带上token
系统只有一个管理员,需要token吗?
一个管理员的时候,后台数据可以分成和多张表,分开请求
多个管理员的时候,每张表都有很多份,
后台每次请求都要带上token,让服务端知道你要请求的是哪个用户的数据
将数据给vuex的两种方式
this.$store.commit(“setuserInfo”,loginUsername)
this.setuserInfo({ Authorization: _this.userToken });
this.store.commit可以传一个data数组到vuex吗
可以,之前出现不可以原因是:
vuex已经接收到了res.data数组,但打印不出res.data.userInfo,提示未定义,所以页面才能显示,
后台登录成功时返回自定义数组data,不要返回校验成功的账户密码
token是可以设置时效的,登录的时候生成,存一份到服务端,给一份客户端存在本地,
客户端可以用这个token作为通行证进行增删改查自己的东西。token用于服务端辨别客户端登录的
是哪个用户,该返回哪个用户的信息,和提供哪个用户的API如果没有token或其他方法,会出现情况是
可以多用户登录,但增删改查都是同个人的东西,所有账户权限一样。那么问题来了,
1.怎么使用token?已解决
2.怎么在请求接口的时候带上token?
就是怎么根据不同token,让服务端返回不同数据
Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,
服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,
无需再次带上用户名和密码。
npm install jsonwebtoken
多用户场景:
用户表1,2,3,4…
用户1有多张表A1,B1,C1,D1…
用户2有多张表A2,B2,C2,D2…
用户3有多张表A3,B3,C3,D3…
问题:用户1登录,拿到表A1,B1,C1,D1…
解决方案:让表A1,B1,C1,D1嵌套在用户1的user表里,查的时候能通过查user
将user里面的表返回给客户端
//数组转json串
var arr = [1,2,3, { a : 1 } ];
JSON.stringify( arr );
//json字符串转数组
var jsonStr = ‘[1,2,3,{“a”:1}]’;
JSON.parse( jsonStr );
{ “firstName”:“John” , “lastName”:“Doe” },是数组,firstName是对象,对象是[]里面的