目录
学习编程的小伙伴都知道,用户登录是一个大部分程序都需要的功能,其写法也多种多样,但是编程思路基本是类似的,今天我们就来介绍其中一种常见的写法,希望初入编程的小伙伴能有所获。
说到校验,那肯定要先有用户注册和登录
用户注册
将用户的账号,密码insert进数据库,注意,一般密码会采用加密存储,且不允许逆向解析如:MD5。
用户注册时可能需要手机号校验验证码,我们一般的思路如下:
1.前端校验手机号格式,通过再调后端发送短信验证码的接口
2.后端最好也加校验,因为前端的校验是可以掠过的,防止不必要的安全问题
3.前端输入手机号,调后端接口校验,判断手机号是否存在,一般异步获取,手机号未注册进入下一步。
4.后端接收到前端手机号生成随机验证码(这个随机数自己写方法生成),存入redis中,手机号为key,验证码为value。同时发送短信到用户手机,这里发短信一般是买短信服务商的短信服务,具体写法建议看对应的官方文档。
5.用户输入验证码进行校验,后端用请求参数中的手机号去redis中拿到验证码,和前端输入的验证码进行比较,相同则通过校验,后进行用户注册操作。
用户登录
用户输入账号,密码进行登录,这里比较简单,不过多赘述,前后端都要校验对应格式,查询用户是否存在,判断密码是否正确,账号是启用,还是停用,然后更新用户表的登录信息,生成一个随机的token,将用户信息存到redis,key为token,value为用户信息,这里存储的东西视业务需求而定,登录成功返回token给前端。
登录校验
前端拿到了我们后端返回的token,将其存储在缓存(如:local storage)中,每次请求在请求头带上token,后端校验就是用token去redis中拿值,如果拿到了,就表示校验通过,允许访问对应接口。
可能不是所有接口都需要登录才能访问,所以需要配置过滤规则,不同语言不同框架的写法可能不同,但其底层的逻辑归根结底就是一个判断,判断访问的接口是否在白名单中,在就不校验,不在就校验是否登录。
那么是如何设置白名单的呢,很多框架都是有固定写法的,会用就行,这里说说自己写的时候怎么写:先获取请求的全路径,可以是整个前端发送的url,随便是什么,简单处理一下,保留接口的全路径,一般是 /admin/user/userList 这种,以 '/' 为分割符号,转化为数组,获取到最后的userList,比较userList是否存在于白名单中,存在就不需要校验。
以上就是请求头带token的整体编程思路
## CentOS7 安装 Docker
1. 安装需要的软件包, yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
2. 添加下载源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 查看可以安装的版本
yum list docker-ce --showduplicates | sort -r
4. yum -y install docker-ce-20.10.7
5. 启动 Docker 并设置开机自启
systemctl start docker(启动)
systemctl enable docker(开机启动)
## Ubuntu 安装 Docker
1. 安装
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
2. 启动 Docker
sudo systemctl enable docker
sudo systemctl start docker
确认 Docker 是否安装成功:
docker run --name nginx1 -d -p 8080:80 nginx
执行完成后,打开浏览器,如果能访问到 nginx,就表示装好了。