JWT单点登录

本文详细介绍了JWT(JSON Web Token)在实现单点登录(SSO)中的应用。首先,讨论了JWT的优势和劣势,以及如何在传输密码时确保安全性。接着,解释了Spring Security的密码加密和JWT的基本原理,包括JWT的组成部分:头部、载荷和签名。然后,展示了JWT无状态登录的好处,并详细阐述了JWT的创建和验证过程。最后,提供了JWT在实际项目中的使用示例,包括生成、解密、设置过期时间和拦截器的实现,以及对JWT安全性的讨论。
摘要由CSDN通过智能技术生成

JWT单点登录
什么是JWT介绍的比较清楚
https://www.cnblogs.com/yan7/p/7857833.html

JWT的优势和劣势等
https://www.jianshu.com/p/af8360b83a9f
https://www.cnblogs.com/cjsblog/p/9277677.html

注册过程中,密码从前台在传输到后台过程中,如何防止密码被窃取或篡改?
前台通过js加密下,后台通过算法解密,再用后台方式加密,最后放到数据库中

抓包技术。

认证就是判断你有没有权限获取数据
鉴权就是看看你有没有权利操作某个东西

使用密码一般用SHA或者MD5,结合salt(盐)给密码加密,数据库中不会用明文的

Spring Security提供了强哈希方法来给加密密码,这个方法每次加密的结果都不一样,所以使用这个算法来给密码或数据加密传输。
1、先给项目添加依赖

org.springframework.boot
spring-boot-starter-security

2、添加了spring security依赖后,所有的地址都被spring security所控制了,造成请求无法被访问,目前只是需要用到BCrypt密码加密的部分,所以我们要添加一个配置类,配置让所有地址都可以匿名访问。
/**

  • 安全配置类
    */
    @Configuration
    @EnableWebSecurity
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter{
    @Override
    protected void configure(HttpSecurity http) throws Exception {
    //csrf().disable();让csrf拦截技术停止使用,这个技术是个防止除我通过的请求之外的请求攻击我的一种防护,现在需要把这个停止掉
    http
    .authorizeRequests()
    .antMatchers("/**").permitAll()
    .anyRequest().authenticated()
    .and().csrf().disable();
    }
    }

3、在启动类中配置bean,这样任何地方都可以autowired使用这个类了,就如同spring配置文件里ioc了某个bean效果一样
@Bean
public BCryptPasswordEncoder bcryptPasswordEncoder(){
return new BCryptPasswordEncoder();
}

4、给密码加密
@Autowired
BCryptPasswordEncoder encoder;

public void testPassword() {
//密码加密
String newpassword = encoder.encode(password);//加密后的密码
system.out.println(newpassword);

}

5、比较密码
@Autowired
BCryptPasswordEncoder encoder;

public void testCompare(String name,password) {
User user = userMapper.findByname(name);
if( user!=null && encoder.matches(password,user.getPassword()))
{
system.out.println(“登录成功”);
}
}

=JWT的使用=====

6、什么是无状态登录?
就是服务器不存登录的状态和数据,每次访问后台的过程中都需要把密码等用户数据全部校验一遍,校验成功才算登录。

这种token认证的有什么好处?
无状态登录的好处是,数据不需要在服务端session或redis中存储,因为Token 自身包含了所有登录用户的信息,每次访问只需要调用解密验证下就可以了,省去了服务器压力,增快了性能。

7、什么是jwt?
JSON Web Token(JWT)是一个非常轻巧的数据规范。这个规范允许我们使用JWT在用户端和服务器之间传递安全

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值