当前位置: 首页 > article >正文

学习ASP.NET Core的身份认证(基于JwtBearer的身份认证8)

  为进一步测试通过请求头传递token进行身份验证,在main.htm中增加layui的数据表格组件,并调用后台服务分页显示数据,后台分页查询数据接口如下所示(测试时,直接将数据写死到代码中,没有查询数据库),这里需注意返回的状态码需为0,其它值返回到前台都被认为是调用异常。

[Authorize]
[HttpGet]
public async Task<ApiResult> GetDataByPage(int page,int limit)
{
    ApiResult result = new ApiResult();
    result.StatusCode = 0;
    List<User> users = new List<User>();

    if(page==1)
    {
        users.Add(new User { Name="张三",Age=12,Sex="男"});
        users.Add(new User { Name = "李四", Age = 32, Sex = "男" });
        users.Add(new User { Name = "王五", Age = 22, Sex = "男" });
    }
    else
    {
        users.Add(new User { Name = "李磊", Age = 12, Sex = "男" });
        users.Add(new User { Name = "韩梅梅", Age = 32, Sex = "女" });
        users.Add(new User { Name = "王巧", Age = 22, Sex = "男" });
        users.Add(new User { Name = "柳桥", Age = 45, Sex = "男" });
    }

    Users data = new Users();
    data.Data = users;
    data.Count = 20;
    result.Data = data;

    return result;
}

  main.html文件的JavaScript代码中使用table.render函数渲染表格数据,需要注意以下两点:
  1)render函数中通过设置headers属性添加并传递token,这点在layui的官网文档中没有写,百度相关内容才查到的,具体介绍请见参考文献1;
  2)后台数据查询接口返回数据格式与table模块的数据格式不一致,需设置数据映射,否则无法显示返回的数据集合。
  主要的JavaScript代码设置如下所示:

table.render({
        elem: '#data'
        ,height: 315
        ,url: 'https://localhost:7051/Login/GetDataByPage' //数据接口
        ,headers: {
				'Authorization': 'Bearer '+sessionStorage.getItem("token")
			   }
        ,parseData: function(res){ // 数据映射处理
            return {
                "code": res.statusCode,
                "msg": res.msg,
                "count": res.data.count,
                "data": res.data.data 
            };
            }    
        ,page: true 
        ,cols: [[ 
        {field: 'name', title: '用户名', width:80}
        ,{field: 'sex', title: '性别', width:80, sort: true}
        ,{field: 'age', title: '年龄', width:80}
        ]]
    });

  身份认证成功后,分页显示数据的截图如下所示:
在这里插入图片描述
在这里插入图片描述
  未通过身份认证时,调用后台数据服务则直接显示请求异常,如下图所示:

  后续文章准备增加数据库查询,替换现在用户身份认证及数据查询都是写死到代码中的情况,同时搜索并查询基于Cookie传递token的实现方式(目前没找到多少有用的内容)。

参考文献:
[1]https://huaweicloud.csdn.net/63a56328b878a54545946043.html
[2]https://blog.csdn.net/yufengaotian/article/details/82190933


http://www.kler.cn/a/513687.html

相关文章:

  • 2024国游销量前20游戏分析:某开放世界武侠(排名11)
  • python基础语句整理
  • c++R赋值原始字符串
  • 【Leetcode 热题 100】118. 杨辉三角
  • Linux(Centos 7.6)命令详解:dos2unix
  • 什么是Oracle认证专家(OCP)?
  • 【游戏设计原理】76 - 惩罚
  • 《MX摩托车》V1.0官方学习版
  • 王道数据结构day1
  • 【2024年华为OD机试】(E卷,100分)-最长连续子序列 (JavaScriptJava PythonC/C++)
  • 力扣面试经典题
  • 【系统环境丢失恢复】如何恢复和重建 Ubuntu 中的 .bashrc 文件
  • (14)Chainlink VRF(可验证随机函数)详细介绍
  • 从零深度学习:(3)梯度下降
  • Unity编辑拓展显示自定义类型
  • JAVA:Spring Boot 实现责任链模式处理订单流程的技术指南
  • Java设计模式 十二 享元模式 (Flyweight Pattern)
  • 【GitHub】登录时的2FA验证
  • 简识JVM栈中的程序计数器
  • CPU狂飙900%如何分析?怎么定位?怎么溯源处理