• 【SpringSecurity】SpringSecurity2.7.x 的使用(05)


    如果前端想把json转化为表单数据:

    1. vue: qs 插件
    npm install qs  
    
    • 1

    vue组件中引入该插件

    import qs  from 'qs' 
    
    //使用的时候
    qs.stringify(json)
    
    • 1
    • 2
    • 3
    • 4
    1. js中转换为json
    JSON.stringify(json) 
    
    • 1

    3.8 如果不登陆无法访问任何页面

    3.8.1 登录成功后,将返回的token存入localStorage中

    onSubmit(formName) {
         // 为表单绑定验证功能
         this.$refs[formName].validate((valid) => {
             if (valid) {
                 //开启加载组件
                 this.logining = true
                 //将json转化为表单数据
                 var json = qs.stringify(this.form);
                 //去后台发送请求
                 this.$http
                     .post("/login",json)
                     .then(resp => {
                         console.log(resp)
                         if (resp.data.code === 200) {
                             var token = resp.data.data;
                             //将返回的token,存入localStorage中
                             localStorage.setItem("token",token)
                             //页面跳转,路由的入口
                             this.$router.push("/main");
                         } else {
                             this.logining = false;
                             this.$message.error(resp.data.msg);
                         }
                     });
             } else {
                 console.log("error submit!!");
                 return false;
             }
         });
     },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    登录成功后将token存入localStorage中

    3.8.2 在main.js中设置路由守卫

    用来判断localStorage是否有token

    //设置前置路由守卫
    router.beforeEach((to, from, next) => {
        var path = to.path;
        //判断是否为登录请求
        if (path === '/login') {
            return next();
        }
        //从localStorage中拿到token
        var token = localStorage.getItem("token");
        //判断token是否为空,如果有值则放行,否则去登录
        if (token) {
            return next();
        }
        //token为空,去登录
        return next("/login");
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    3.8.3 axios设置请求头的内容

    //为axios设置请求头信息---为axios设置了请求拦截器。
    axios.interceptors.request.use((config)=>{
           var token = localStorage.getItem("token");
           if(token){ //js中可以 变量有值 则返回true.
           	   //如果token不为空,添加请求头token
               config.headers.token=token;
           }
           return config;
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    补充:
    设置axios的基础路径

    //设置axios的基础路径
    axios.defaults.baseURL="http://localhost:8080"
    
    • 1
    • 2

    在这里插入图片描述

    设置完之后能够正常访问接口,并且请求头中要有token(没有token不允许访问)

  • 相关阅读:
    [手写spring](3)初始化singletonObjects,实现依赖注入
    node.js+mysql+vue.js+vuex+echarts+elementui全栈后台管理系统
    安装selenium
    Mysql 讲解所有的约束类型
    PMP考试注意事项有哪些?
    福建农林大学计算机考研资料汇总
    【Pandas总结】第四节 Pandas 缺失值处理(通过实例进行演示)
    关于clickhouse单节点部署
    物联网边缘-物联网准入或接入安全防护产品及解决方案
    我的Go+语言初体验——Go+语言构建神经网络实战手写数字识别
  • 原文地址:https://blog.csdn.net/qq_60969145/article/details/127700591