前后端鉴权
源代码在:https://github.com/Jimmylxue
还有没有更新了,在做毕设的时候完成了前后端鉴权的方式,内容涉及到了自己的封装的一些小类,来配合路由模块化的思路
- 前后端鉴权的思路上就是,在访问前端除了登录和注册的页面以外,其他的页面都必须要有token令牌才可以进入
涉及到的知识点:
- 前端axios路由拦截
- 前端router路由拦截
- 后端koa路由拦截(判断请求地址)
前端axios路由拦截:
- 使用
axios.interceptors.request.use(()=>{})
和axios.interceptors.response.use(()=>{})
使用中间键的形式来分别对请求和响应做一些配置 - 在请求的时候我们需要判断有没有token,如果有token就携带着token放在请求头中进行访问
- 响应拦截的时候,如果返回了401的状态码,说明的就是前后端鉴权没有通过,这时候我们再手动的将路由跳转到登录页并给出一个请先登录的弹窗提示,同时清空掉现在浏览器中的登录信息。
前端router路由拦截
- 前端通过使用路由守卫的方式来设置进行第一层的路由拦截,这个主要是为了有一些黑客强制进入某个页面做一个假的token,也能够做到一点儿的拦截作用
- 这里的代码就是使用Vue的路由守卫。
后端koa路由拦截
- 在做后端路由拦截的时候,我考虑到以后可能会复用,简单的封装了一下。
- 具体的每个方法是干嘛的就没有写了,之前的一篇博客里面很详细的讲了每个模块时干嘛的 这里就不讲了。
- 因为各个接口在访问的时候都需要判断token的正确性,所以在每个接口下都判断一次显然是非常的不明智的,所以我们就要使用koa的中间键的概念,在每次访问的时候只需要判断有没有就可以(排除掉一些不需要token的接口即可)
- unless()方法是排除掉一些路由