前后端分离

该文章主要讲述了项目前后端分离注意事项

跨域问题

什么是跨域:不同的ip地址请求算跨域,或同一个ip不同端口请求也算跨域
跨域问题出现的原因:因为浏览器本身就自带同源策略,同源:指的就是相同端口和ip,如果浏览器发现不是同源浏览器就会拒绝这次请求

项目中的经常会遇到前端和后端分离部署在不同的服务器上,或者端口号不同,这种情况会导致前端无法调用到后端。
会报错:NO?Access-Control-Allow-Origin 的错误;

4种解决方式;
1、第一种方式:jsonp的,这种方式只支持get,不支持post请求方式

2、第二种方式:可以配置拦截器,在拦截器中设置消息头

3、第三方式:cors方式:这种方式配置首先需要下载cors-filter-2.5.jar和java-property-utils1.10.jar导入到项目中,然后在过滤器中设置请求头。
前后端分离
第四种方式: 在nginx配置文件中设置把请求变成同一ip跟端口解决跨域问题

跨域校验技术

JSON Web Token(JWT)
JWT的原则
JWT的原则是在服务器身份验证之后,将生成一个JSON对象并将其发送回用户。之后,当用户与服务器通信时,客户在请求中发回JSON对象。服务器仅依赖于这个JSON对象来标识用户。为了防止用户篡改数据,服务器将在生成对象时添加签名。服务器不保存任何会话数据,即服务器变为无状态,使其更容易扩展。

Token生成策略
客户端通过登录请求提交用户名和密码,服务端验证通过后生成一个Token与该用户进行关联,并将Token返回给客户端,Token在保存到Redis中。客户端在接下来的请求中都会在Cokie或Headers中携带Token,服务端通过解析Token与Redis对比检查登录状态。当用户退出登录、其他终端登录同一账号(被顶号)、长时间未进行操作时Token会失效,这时用户需要重新登录。