单点登录
2019-08-20 本文已影响0人
A郑家庆
实现步骤
首先在打开项目的时候会请求接口,这时候后端就会拦截前端发送的请求,看请求头部cookie中是否有用户信息,如果有并且跟后端的一致表示用户已经登录并且登录成功,如果没有则返回状态码为302并且会将返回头部location地址设置为登录地址拼接上一开始请求服务器的地址,浏览器接收到302信息之后会自动重定向请求location中地址,这时候返回的数据是一个html,也就是登录页面,用户输入用户名密码点击登录成功之后,后端就会自动生成一个sessionid保存在数据库中,并且将sessionid设置到cookie中返回给浏览器,并且会将一开始请求的地址作为登录成功的首页,浏览器接收到cookie会将里面的信息自动保存到本地,这样子每次发送请求都会将cookie传给后端,后端拿到信息就会跟数据库的sessionid比对,如果一致就返回数据,如果不一致就会返回302重复上述的步骤。
302状态码
背景
当服务器返回302状态码并且会附上location字段给浏览器的时候,浏览器接受到重定向响应以后,会根据Location字段的值,自动的将请求转向其中的URL。
http状态码
当访问一个网页时,浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头用以响应浏览器的请求。它的作用是服务器用来告诉浏览器发生了什么事。
以下是常见的HTTP状态码:
- 200-请求成功
- 301-资源(网页等)被永久转移到其他URL
- 404-请求的资源(网页等)不存在
- 500-内部服务器错误
| 分类 | 分类描述 |
|---|---|
| 1** | 信息,服务器收到请求,需要请求者继续执行操作 |
| 2** | 成功,操作被成功接收并处理 |
| 3** | 重定向,需要进一步的操作以完成请求 |
| 4** | 客户端错误,请求包含语法错误或无法完成请求 |
| 5** | 服务器错误,服务器在处理请求的过程中发生了错误 |