# Git-axios拦截器\-远程仓库

106 阅读3分钟

一.准备工作

gitee.com/这个网站, 注册账号并登录

二.首页-权限控制

  1. 我们是一个内部项目, 现在谁都能看首页(包含未登录的和游客身份) 这样不好, 会让数据泄露
  2. 这里我们要基于一个叫 token 的字符串 (在前后端的分离模式中, 也叫jwt, 全程JSON WEB Token) 它是一个后端加密并转换生成的一个字符串, 里面存储着本次登录的用户相关信息 (需要登录, 输入正确的账号和密码 换取)
  3. 登录成功后, 将 token 字符串存入浏览器本地, 跳转到首页

// 保存token字符串 localStorage.setItem('token', res.data.data.token)

​ 4.在首页index.html中, 需要判断是否有token, 也就是浏览器本地是否有token, 如果没有则强制切换回到登录页面

注意:前端只能判断有没有token, 而token字符串有效期, 需要在请求时携带给后端判断, 如果过期会返回401

三.axios-请求拦截器

// 设置请求基地址, 以后就不需要每次都写前面一截请求地址啦 axios.defaults.baseURL = 'ajax-api.itheima.net/'

axios.interceptors.request.use(config => { config.headers.Authorization = localStorage.getItem('token') return config }, e => Promise.reject(e) )

四.axios-响应拦截器

axios.interceptors.response.use( // 直接拿到数据 res => res.data, // http响应状态码为 2xx 和 3xx 进入第一个函数 e => { // http 响应状态码为 4xx 和5xx, 进入第二个函数 if (e.response.status === 401) { localStorage.clear() location.href = './login.html' } return Promise.reject(e) } )

五.远程仓库-SSH配置

  1. ssh秘钥组成和作用

    ssh key 的作用:实现本地仓库和 gitee平台 之间免登录的加密数据传输。
    ssh key 由两部分组成,分别是:
    id_rsa(私钥文件,存放于客户端的电脑中即可)
    id_rsa.pub(公钥文件,需要配置到 gitee平台 中)
    私钥加密的信息,只能通过公钥解密。公钥加密的信息,只能通过私钥解密。安全性高。
    
    
  2. 先在本机生成一个秘钥 (以后也可以重新生成, 重新配置)

    步骤:
    1. 打开 Git Bash
    2. 粘贴如下的命令   ssh-keygen -t rsa -C "你注册账号的邮箱"
    3. 连续敲击 3 次回车,即可在 C:\Users\用户名文件夹\.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件
    4. 使用记事本打开 id_rsa.pub 文件,复制里面的文本内容
    5. 粘贴配置到 码云 ->  设置  ->  ssh 公钥  中即可
    
    
    Tips: mac获取公钥 https://juejin.cn/post/6844904169191522317
    
    

六.远程仓库-本机已有项目推送

1.先给本地仓库配置个远程仓库的地址, 建立仓库之间的链接

  1. 注意这个remote 配置只需要链接好即可
  2. 以后本地有变化, 暂存, 提交 在本地产生一次版本记录(可以立刻推送 / 下班之前推送 n次的提交记录都可以)

七.远程仓库-没有项目

  1. 如果你本地没有, 而且如果你是要拿到别人仓库里的代码

    git clone 目标远程仓库的git地址
    
  2. 想要把自己本地写完的交上去用git push

  3. 想要在本地拿到别人在远程仓库上的更新使用git pull