登录验证是前端绕不开的话题,尤其是有些网站的内容是登录后才能预览的。所以在页面跳转之前肯定是要判断用户是不是已经登录,或者登录信息是否过期。
如何判断用户是否已经登录呢?前端需要回传那些信息给服务端,服务端才能判断登录信息已经失效,需要用户重新登录呢?先看一下一个整体的流程:
对于一般的请求(非CORS),在发送http请求时都会自带上cookie。 而且客户端cookie是在服务端和客户端都可以设置的,所以在你访问需要登录信息的页面时,服务端会校验接口携带的信息,如果是没携带登录信息或者登录信息已经过期,服务端会返回响应的状态码告诉客户端登录。
在登录完成之后,登录接口的response header中有个set-cookie字段,会将服务端返回的token信息存放在cookie中,在下次接口请求的时候就会字段带上客户端的cookie信息。如果为了安全考虑不允许客户端获取cookie信息,可以设置http-only
当然,登录验证的方式可能不止这一种,我只是记录了一种我认为比较合理并且好理解的方式。