JWT:JSON Web Token
JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且独立的方式,可以在各方之间作为JSON对象安全地传输信息。此信息可以通过数字签名进行验证和信任。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。
虽然JWT可以加密以在各方之间提供保密,但只将专注于签名令牌。签名令牌可以验证其中包含的声明的完整性,而加密令牌则隐藏其他方的声明。当使用公钥/私钥对签署令牌时,签名还证明只有持有私钥的一方是签署私钥的一方。
通俗来讲,JWT是一个含签名并携带用户相关信息的加密串,页面请求校验登录接口时,请求头中携带JWT串到后端服务,后端通过签名加密串匹配校验,保证信息未被篡改。校验通过则认为是可靠的请求,将正常返回数据。
主要应用于webAPI接口安全认证,用户在首次登录时生成token,并设置有效时间(建议2小时,因为微信就是2小时),然后将用户信息和token同时返回给浏览器(客户端),浏览器将其储存起来(sessionStorege或者VUEX)。每次请求接口时将利用ajax或axios调用http请求将token添加到请求头中。后端通过过滤器管道验证token是否存在,合法等,合法则放行,验证不通过则返回状态码401,没有权限。
代码如下:
鉴权:每次路由跳转前验证是否有该路由的权限。(不是必须)
后端过滤器验证token合法性。