1.前后端不分离的场景
经典的Cookie和Session,前端访问服务器,从服务器拿到sessionId并记录在本地的Cookie中,下次访问带上sessionId,服务器就能表示是哪个用户进行访问了。
2.前后端进行分离
方法一(登录信息存在服务器中,前端存在Cookie中)
cookie和session方法,但是要服务器和前端设置允许跨域携带cookie,服务器可以完成用户验证。但是会存在CSRF攻击的风险,黑客用错误连接欺骗用户访问服务器,欺骗连接会自动带上用户的Cookie通过验证就会造成危险。
方法二(登录信息存在服务器中,前端存在浏览器的本地)
采用Token方式(服务器给用户生成一个Token,存在服务器上面并返回给用户),将Token不存在Cookie中,存在本地存储,访问服务器的时候放在请求头中,避免跨域携带了Cookie,避免了CSRF攻击。但是可能会存在XSS攻击,会偷取到你本地的Token和Cookie。
方法三(服务器不存储登录信息,前端存在浏览器本地)
JWT,前面两种方法度需要服务器进行保存Token或者Cookie,而JWT(Json Web Tokens)服务器不用保存用户登录的状态。具体流程是:用户进行登录,精通JWT会生成一个Token返回给用户,用户下次访问时候,JWT可以验证Token是否合法进行验证是否登录。
方法二和方法三用的比较多。