登录逻辑实现
JWT
(json web token
)
配置接口
- 获取验证码接口:获得验证码的
code
和对应图片数据 - 登录接口:将验证码的标志
code
、用户输入的验证码validateCode
、用户名account
、密码password
4个参数提交到后台,获取token
。(以上字段均为例子,实际可能不同)
登录页
使用验证码接口获得验证码验证标志
code
和验证码图片数据开发表单:
- 将验证码图片在表单中显示出来,实现点击图片更新验证码数据,
- 实现
account
、password
、validateCode
3个字段供用户输入(一般需要对密码md5加密) - 完成对三个字段的表单提交验证
- 提交表单
显示登录中状态,登录成功或者失败后恢复,期间禁止重复提交表单
成功
- 保存
token
到本地和当前环境 - 提示成功信息
- 跳转到首页或者根据
url
的重定向地址跳转
- 保存
失败:显示后台返回的错误信息
管理token
的模块
- 设置一个本地不会重复的
token
字段名作为本地储存的键名 - 提供一个方法
setAuthorizationCode
,可更新本地的token
- 提供一个方法
getAuthorizationCode
,可获取本地的token
- 提供一个方法
cleanAuthorizationCode
,可删除本地的token
路由守卫
- 不存在
token
- 即将跳转的页面为登录页面:直接跳转
- 即将跳转的页面为其他页面:重定向到登录页(携带即将跳转的页面地址供登录页重定向)
- 存在
token
- 即将跳转的页面为登录页面:重定向到首页
- 即将跳转的页面为其他页面:直接跳转
接口使用token
- 创建请求实例,所有请求通过此实例进行请求,并对此实例进行拦截
- 拦截实例请求:使用
getAuthorizationCode
获得最新token
,将token
填入请求头部:一般为:Authorization:Bearer {token}
- 拦截实例响应:对响应中的特殊字段进行判断,如登录状态已经失效则使用失效方法跳转至登录页(对此方法判断当前是否是登录页再跳转和实现3s内的防抖防止重复提示和跳转)