首页 > 其他分享 >完整登录功能实现

完整登录功能实现

时间:2024-02-25 23:22:32浏览次数:30  
标签:令牌 String 登录 功能 完整 static 拦截 data public

1、导入pom.xml依赖

<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
</dependencies> 2、生成和解析令牌类的书写 private static String signKey="infom";
private static long expire=1000L*20;
/*生成JWT令牌*/
public static String generateJwt(Map<String,Object> claims){
String jwt= Jwts.builder()
.signWith(SignatureAlgorithm.HS256,signKey)
.setClaims(claims)
.setExpiration(new Date(System.currentTimeMillis()+expire))//令牌有效时间
.compact();
return jwt;
}
/*解析令牌*/
public static Claims parseJWT(String jwt){
Claims claims=Jwts.parser()
.setSigningKey(signKey)
.parseClaimsJws(jwt)
.getBody();
return claims;
} 3、在loginController里使用 并生成通过response 给浏览器发送 {     "code": 2,     "msg": "NOT_LOGIN",     "data": null } {     "code": 1,     "msg": "success",     "data": "eyJhbGciOiJIUzI1NiJ9.eyJFbnRlclVzZXJOYW1lIjoiMjAyMjAwMDEiLCJleHAiOjE3MDg4NjA2NTQsIkVudGVyUGFzc3dvcmQiOiIxMjM0NTY3In0.wYvK9ExVvmB5k9IlnfM4CC40NGyHG_Mw9T0VnElwcSU" } 失败和成功,postman接收到的数据 4、拦截校验        过滤器拦截 Filter           javaweb三大组件之一           把对资源的请求拦截下来           通用,登录鉴权                拦截器  Interceptor //拦截所有资源
@WebFilter(urlPatterns = "/*")
public class LoginChechedFilter implements Filter {

//拦截方法,只要资源链接被拦截就会触发此方法
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("拦截方法执行");
//放行
filterChain.doFilter(servletRequest,servletResponse);
}
} @ServletComponentScan在Application里加入这个注解,可以扫描到拦截器Filter 在前端添加代码 const jwtToken = res.data.data;         // 存储到LocalStorage中         localStorage.setItem("jwtToken", jwtToken);     将token存到浏览器中的localstorage中 fetchData() { // 从LocalStorage中获取JWT令牌 const storedToken = localStorage.getItem("jwtToken"); // 创建一个axios实例,并设置默认请求头 const axiosInstance = axios.create({ headers: { 'Authorization': `Bearer ${storedToken}`                     , 'Content-Type': 'application/json',                     // 可以根据需要设置其他头部信息 } });                     // 发送GET请求           axiosInstance.get('your_api_endpoint') .then(response => { console.log(response.data); }) .catch(error => { console.error('Error:', error); }); } } }

 

标签:令牌,String,登录,功能,完整,static,拦截,data,public
From: https://www.cnblogs.com/wonder-question/p/18033337

相关文章

  • 家庭小账本开发(7)登录校验功能
    在登陆时,前端与后端的交互过程如下①前端vue中将输入框中的username和password传给后端springboot②后端对传过来的(username和password)与后端数据库内容进行对比,如果用户存在--------利用jwt令牌生成token传给前端③vue前端将后端传过来的token值储存起来(一般储存到localStorag......
  • 操作系统功能的历史
    利用计算机运行程序大部分都是为了提高处理效率。例如,MicrosoftWord这样的文字处理软件,是用来提高文本文件处理效率的程序,MicrosoftExcel等表格计算软件,是用来提高账本处理效率的程序。类似于文字处理软件及表格计算软件这样,为了提高特定处理效率的程序总称为“应用”。程序......
  • Airtest:各平台的剪切板功能汇总
    1.前言一直以来,大家都还挺关注 Airtest是否有剪切板功能 的。从Airtest1.3.1版本起,我们新增了Android、iOS设备的剪切板功能,自此,3大平台的剪切板功能就齐全啦。正好趁这个机会,我们给各大平台的剪切板功能做个合集,方便同学们查阅使用~2.Android设备的剪切板功能Android设备的......
  • Ehcache 介绍(1)--Ehcache 功能特性
    Ehcache是一个开源的、基于标准的缓存工具,它能提升性能、减轻数据库负载并简化可扩展性。由于其稳健性、经得起考验的特点以及与其他流行框架的集成,Ehcache成为最广泛使用的基于Java的缓存工具。Ehcache从进程内缓存一直扩展到混合的进程内/进程外部署,可以处理TB的数据。1......
  • java中要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现。
    初学java实现简易计算器**思路推荐:*写4个方法:加减乘除*利用循环+switch进行用户交互*传递需要操作的两个数*输出结果点击查看代码publicclassdemo05{publicstaticvoidmain(String[]args)throwsInterruptedException......
  • 加入mysql数据库实现完整的登录注册功能
    功能简介:用户有用户名(user),手机号(mobile),邮箱(email),密码(password).user为主键,mobile唯一保证一个手机号只能注册一个用户,邮箱不唯一并且可为空.故这里用户可以使用user和mobile登录,mobile还可以用找回密码,email仅用于找回密码在注册页面,输入手机号和密码注册用户......
  • 安卓开发一个功能并将数据存储到Room中的流程以及注意事项
    开发流程与注意事项添加Room依赖:确保在build.gradle文件中添加了Room的依赖项。注意使用kapt插件而不是annotationProcessor来处理注解以及这二者之间的兼容性关系。定义实体(Entity):创建一个或多个实体类,用@Entity注解标记,表示数据库中的表。创建数据访问对象(DAO):定义一个接口,使......
  • 统信UOS用户登录常见的一些问题
    1.统信UOS忘记开机密码问题描述:在使用统信UOS系统时,忘记登录密码无法进入系统又不想重装系统解决思路:1.需要先了解UOS的版本,和机器架构,制作相同版本的系统启动盘镜像下载资源中心|统信UOS生态社区(chinauos.com) 2.从启动盘启动,在选择安装的界面选中“install”开头......
  • 【转】【福利】无需注册登录 免费传输文件和文本
    来源:https://zhuanlan.zhihu.com/p/598829318 01几个分享文本的网站一:网络剪切板(https://netcut.cn)   ①域名比较好记,net,网络;cut,剪切;cn,中国地区②原理:相当于创建一个网络房间,在不同的浏览器上输入相同的网址可进入同一个房间,可设置密码,房间有效期最长可设置为三年......
  • 在K8S中,如何具体实现Pod被删除后,还能被自动拉起功能?
    在Kubernetes中,Pod被删除后能够自动拉起的功能是通过Deployment、StatefulSet或ReplicaSet等控制器来实现的。这些控制器负责维护指定数量的Pod副本,并确保在某个Pod实例由于任何原因(包括手动删除)消失时,会有一个新的Pod实例被创建以替换它。以下是具体实现方式:使用Deployment:D......