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

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

  测试数据库中只有之前记录温湿度及烟雾值的表中数据较多,在该数据库中增加AppUser表,用于登录用户身份查询,数据库表如下所示:
在这里插入图片描述
  项目中安装SqlSugarCore包,然后修改控制器类的登录函数及分页查询数据函数,将之前函数中的固定数据修改为从数据库中查询数据,并将分页查询数据函数中返回数据集合修改为返回环境检测数据的集合,主要调整的代码如下所示。客户端页面中的JavaScript代码主要修改了数据表格的列定义,在此不在列出来。

 [HttpPost]
 public async Task<ApiResult> Login([FromBody]UserInfo info)
 {
     try
     {
         if (_dbClient.Queryable<AppUser>().Any(r => (r.Account == info.Name) && (r.Password == info.Password)))
         {
             AppUser curUser = _dbClient.Queryable<AppUser>().First(r => (r.Account == info.Name) && (r.Password == info.Password));
             
             ApiResult result = new ApiResult();
             result.UserName = curUser.Name;
             result.Msg = GetToken(info.Name);
             return result;
         }
         else
         {
             return new ApiResult("身份验证失败", 500, false);
         }
     }
     catch(Exception ex)
     {
         return new ApiResult(ex.Message, 500, false);
     }
 }
 
[Authorize]
[HttpGet]
public async Task<ApiResult> GetDataByPage(int page,int limit)
{
    ApiResult result = new ApiResult();
    result.StatusCode = 0;

    Records data = new Records();
    data.Count=_dbClient.Queryable<EnvironmentRecord>().Count();            
    data.Data = _dbClient.Queryable<EnvironmentRecord>().ToPageList(Convert.ToInt32(page), limit).ToList();

    result.Data = data;
    return result;
}

  页面运行效果如下所示,唯一值得说的就是token的过期时间。用户登录并跳转到main.html页面后,如果重启后台服务的话,只要token没有过期,页面就可以接着调用后台服务接口,直至token过期为止,或者用户退出登录。所以确实像网上文章中提到的风险,存储到本地存储中很容易被取到并拿做它用。
在这里插入图片描述
在这里插入图片描述

参考文献:
[1]https://www.jianshu.com/p/a2804e72d296
[2]https://blog.csdn.net/sD7O95O/article/details/85043160
[3]https://www.cnblogs.com/qiongkangle/p/13347283.html
[4]https://www.cnblogs.com/xbhp/p/17401507.html
[5]https://www.cnblogs.com/superstar/p/16491428.html
[6]https://blog.csdn.net/weixin_44877917/article/details/140609294
[7]https://blog.csdn.net/qq_40287041/article/details/143368882


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

相关文章:

  • docker 部署confluence
  • 白玉微瑕:闲谈 SwiftUI 过渡(Transition)动画的“口是心非”(下)
  • Flink 使用 Kafka 作为数据源时遇到了偏移量提交失败的问题
  • day 21
  • 我的创作纪念日,纪念我的第512天
  • [Easy] leetcode-500 键盘行
  • WPF5-x名称空间
  • 数据结构基础之《(16)—链表题目》
  • Spring中BeanFactory和ApplicationContext的区别
  • [Qt]系统相关-网络编程-TCP、UDP、HTTP协议
  • idea新增java快捷键代码片段
  • 基于 Python 的深度学习的车俩特征分析系统,附源码
  • 基于springboot的考研资讯平台
  • Windows的docker中安装gitlab
  • 随机变量的变量替换——归一化流和直方图规定化的数学基础
  • GCPAAS/DashBoard:完全免费的仪表盘设计,基于Vue+ElementUI+G2Plot+Echarts,开源代码,简单易用!还在等什么呢
  • 基于RAG构建Text2SQL的实战教程
  • IP属地与定位技术:谁更精准地锁定你的位置?
  • 理解 Rust 的所有权:内存管理的独特之道
  • ubuntu20.04有亮度调节条但是调节时亮度不变
  • IJK播放器问题集
  • 【LeetCode】--- MySQL刷题集合
  • [Computer Vision]实验二:图像特征点提取
  • stm32单片机个人学习笔记14(USART串口数据包)
  • Linux 内核学习 3b - 和copilot 讨论pci设备的物理地址在内核空间和用户空间映射到虚拟地址的区别
  • Elasticsearch——Elasticsearch索引管理实战