用户进入前端登陆界面,输入帐号密码等,输入完成以后前端发送请求到后端(拦截器不会拦截登陆请求),后端验证帐号密码等成功以后生成Token并存储到数据库,数据库中包含该Token过时时间,而后返回生成的Token到前端。html
前端收到Token,表示登陆成功,把这个Token存储到浏览器Cookie中。而后跳转到用户中心页面,用户中心页面从浏览器Cookie中扣出Token,跟随请求用户数据接口一块儿带到后端。前端
后端经过拦截器拦截到这个请求,去判断这个Token是否有效,有效就放过去作他该作的事情,无效就抛出异常。java
先说一下这个先后分离的项目,已经配置过跨域这些问题。我这里后端配置的方式以下:ajax
前端每次发送请求也都有在ajax里面设置xhrFields:{withCredentials: true}属性。数据库
如今的状况是,若是Token正常就没问题,若是Token失效了,前端发送的请求就会提示跨域问题,但是该项目已经配置过跨域问题了。既然又提示跨域问题,那咱们修改代码以下:json
这样修改以后,若是Token无效,前端发送的请求就不会提示跨域问题。并且也能够在ajax的success方法中根据错误码(601/602)作不一样的判断,代码以下:后端
下面附上上面代码中的XjxccException类:跨域