我们来实现一个简单的接口登录:
输入手机号,密码,点击登录,即可登录成功

背后的原理:
浏览器将手机号,密码通过http协议传给后端,后端再返回一个token 值,后续浏览器将请求的参数并携带token 一起发给服务器,服务器返回相应的值。

那么,http 协议是什么呢?我们需要在里面输入那些参数?
为何携带了token 值后服务器就会识别到相应的用户呢?

分析:
客户端将向服务器发送一个http请求,包含了url ,请求方式,请求体
这时,服务器返回一个token 值,并赋予用户一个userid ,所以它与userid 在某种意义上是相关的,通过这个token 到数据库找到对应的userid
前端通过js 程序将token 读取出来,浏览器将token 放在storage 文件里面,每次访问服务器时,把它和携带的数据放在请求体或请求头里面,发送给服务器

好了,我们明白了访问原理后,我们需要对手机号和密码做哪些校验呢?
验证手机号是否符合要求:
11位数字的限制;开头86的13位也可以;前三位为14,15,17开头的部分可以,13开头的都可以
空填情况,数字前后为空情况等
密码的校验:
前端对密码是否进行隐藏;
后端对密码是否进行加密操作;
密码的格式是否符合要求

那么,我们怎样保证密码不被人盗取呢?
除了前端对密码要进行隐藏外,后端需要对密码进行加密处理
以前人们采用MD5的方式进行加密,但是我们很多人的密码都是123456,这样加密出来的结果很容易被破解,因为加密得出的字符串是相同的
现在采用MD5➕auth 方式,在密码后面加入一串随机数后生成的密码,并且它不可转为原密码

除了前端后端,我们还要考虑网络情况
我们的客户端将请求发给公司路由器,再到大厦路由,基站,再到另一个基站,跳到存了很多服务器的机房,一直跳,跳到存放我访问的服务器的机房
设想,如果中途有人拦截,盗取了我的密码和手机号和token ,即使它不知道密码是啥,它依然可以对它进行操作,谋取利益
所以,为了安全起见,我们会设置一个验证码,并设置有效期,这样一旦过了有效期,这个验证码就过期了,这样就做到了防止盗取的作用

posted on 2022-12-01 16:28  小树~~  阅读(992)  评论(0)    收藏  举报