关于使用LayUIAdmin请求携带Token,以及使用table.render请求携带Token(LayUI踩坑篇七)

文中的LayUIAdminPro版本为v2020.4.1。使用的软件是IDEA,你问我为什么不用vsCode?为了偷懒,就使用IDEA。

众所周知,前后端分离的项目,我们的登录接口验证完登录信息后,会生成token,并和用户id一起组成key-value的形式保存到redis中,然后会返回token。
使用LayUI登录后,它会把返回的token自动保存到浏览器的Local Storage中,具体看下图。
在这里插入图片描述
图中的key对应src/config.js的tableName,vlaue对应request中的tokenName属性。
在这里插入图片描述
我们在登录页面的js中也能看到LayUI保存token的操作。
在这里插入图片描述
只要LayUI保存了token,那么layui.admin.req去发起请求,请求头就会自动带上token。
在这里插入图片描述
但是,直接用ajax是无法自动带上token的,需要在发起ajax请求去获取token,所以建议使用layui.admin.req,它底层也是用ajax去发请求,不过对ajax进行了一层封装。

// 声明
var setter = layui.setter,
    request = setter.request;
	headers: {'access-token': layui.data(setter.tableName)[request.tokenName]}

同理,table.render请求时,也不会自动带上token,需要我们加上上面这一句,下面就是我项目中一个标准的table.render请求了。

    table.render({
        elem: '#LAY-stream-user-manage',
        url: setter.baseUrl + 'api/user/find',
        method: "post",
        contentType: "application/json;charset=UTF-8",
        dataType: "json",
        headers: {'access-token': layui.data(setter.tableName)[request.tokenName]},
        where: {
        	'type': 'user'
        },
        cols: [[
            {type: 'checkbox', fixed: 'left'},
            {field: 'id', title: 'User_id', templet: '#LAY-user-id'},
            {field: 'nickname', title: 'User_name'},
            {field: 'email', title: 'User_email'},
            {field: 'loginTime', title: 'User_last_login_at', sort: true},
            {field: 'enabled', title: 'User_status', templet: '#LAY-user-status'},
            {title: 'Action', align: 'center', fixed: 'right', toolbar: '#table-content-list'}
        ]],
        autoSort: false,
        skin: "line",
        page: {limit: 10, sort: 'id', desc: false, curr: 1, groups: 3},
        limit: 10,
        limits: [10, 15, 20, 25, 30],
        text: {none: 'Number of data: 0'},
        parseData: function (res) { //res 即为原始返回的数据
            var myUrl = 'api/user/count';
            var myData = {
            	'type': 'user'
            };

            // 发送请求,得到总数
            let total = getCount(myUrl, myData);
            // 解析响应结果
            return {
                "code": 0, //解析接口状态
                "msg": "", //解析提示文本
                "count": total, //解析数据长度
                "data": res.data //解析数据列表
            }
        }
    });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值