token token是指“令牌”,是服务端生成的一系列字符串,是客户端发出请求的标识符。
用户首次登录后,服务器将生成token并将此token返回给客户机。 然后,客户端只需要带这个token来请求数据,而不需要再次携带用户名和密码。
简单的token配置; uid (用户的唯一id )、time (当前时间时间戳)、sign (签名)和token的第一位是用散列算法压缩的恒定长度十六进制字符串。 为了防止token泄露)。
token的存储token可以存储在数据库中,但与token联系的时间太长,token可能会丢失。 (其实token丢失的话再认证一个就可以了,但是不要太频繁地丢失。 请确保用户什么都不做就去认证。 )。
为了避免查询时间过长,可以将token放置在内存中。 现在查询速度绝对不是问题,也不用太担心占用内存。 即使token是32位字符串,在百万或千万级别的APP应用程序用户也占用不了多少内存。
token的加密token容易泄露,如果不进行加密处理,恶意副本很容易用于登录。 加密的方法一般如下。
保存时对称加密保存token,使用时解密。
文章开头提到的签名sign :综合请求URL、时间戳、token三者,用算法进行加密处理。
最好将两种方式结合使用。
另一个问题是,token在网络级别使用明文传输非常危险,因此请确保使用HTTPS协议。
除了布局之外,APP登录也是项目的一大难点,我们主要谈的是token
步骤token
在计算机认证中是令牌(临时)的意思,在词法分析中是标记的意思。 一般用作邀请、登录系统。 主要职责是确认用户身份,并允许用户保护个人信息。
很容易使用。 发送登录请求时,只需在本地保存后台返回的token令牌
window.session storage.setitem (' token ',data.data.remember_token ); 常用的会话存储比本地存储更安全
步骤token验证
获取token后,需要在请求侦听过程中验证本地token,如果存在,则验证将其保存在请求头中
axios.interceptors.request.use ((config )=)/token认证请求if (window.session storage.getitem ) ) ) { config.headers.authorization=$ { window.session storage.getitem (' token ' } } return config } ) }在同一页上时间流逝
axios.interceptors.response.use (config={//token验证响应if(config.data.code==400 ) window.sesionstorage.)
if (! window.session storage.getitem (token ) ) next )/login ) }