登录方式一:cookie
浏览器访问服务器后,服务器set-cookie将cookie(k,v)存储浏览器,那么每次访问后端,都会带上cookie。
弊端:由于重要信息存储在浏览器中,电脑被黑,不安全。
登录方式二:session
所以有了session(会话)
同样是用户发送用户名密码到服务器,服务器会生成加密后的sessionId,以及有效期max-age,依然是通过set-cookie将信息存储在浏览器中,这次由于是加密的sessionId,所以虽然同样是cookie技术,但是不怕被泄露了。
弊端:互联网用户体量越来越大,服务器存储sessionId已经太重,如果多台存储还需要分享,变复杂;如果存储数据库,那么数据库出问题还影响访问。
登录方式三:JWT
所以又有了JWT
jwt由三部分组成,head.payload.signature,head/payload都是对象,有算法、用户名等信息,base64编码后加密生成签名。发送给前端,完全由前端来存储。
优点:由于JWT技术,是利用信息加密后比对token,token可以在客户端之间传递,处理授权登录,且携带到服务端后,可以解包出更多的信息,相当于一套更灵活强大的规范,能力升级。常用框架有OAuth2。