springboot2.x的oauth2 jwt认证,实现普通用户和微信小程序用户登陆

该博客介绍了如何在SpringBoot2.x的OAuth2认证服务中结合JWT,实现普通用户和微信小程序用户的登录。文章详细阐述了公钥私钥的生成、配置信息、认证流程以及Postman验证方法。还提到了微信小程序登录接口的实现,通过js_code获取openid并查询或创建用户。同时,指出了未实现的部分,如数据库查询和微信API的GET请求,需要读者自行完成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oauth2认证服务

网上很多都是基于是spring原有认证,无法实现小程序认证,于是乎改写了部分代码。当然,也可以添加手机验证码登陆,有兴趣的可以参照现有代码来实现。
基于springboot的oauth2 jwt,使用私钥进行加密,token信息保存在redis中。用户密码加密方式SCryptPasswordEncoder。
源码:https://github.com/aLiang-xyl/oauth2

springboot的oauth2相关知识可参见:https://docs.spring.io/spring-security/site/docs/current/reference/html5/#preface

公钥私钥生成方式:

私钥

用于oauth2认证服务

keytool -genkey -alias auth-jwt -keypass 123456 -keyalg RSA -storetype PKCS12 -keysize 1024 -validity 365 -keystore auth-jwt.jks -storepass 123456  -dname "CN=(Felord), OU=(auth-jwt), O=(auth-jwt), L=(zz), ST=(hn), C=(cn)"

公钥

基于私钥生成公钥,用于oauth2资源服务进行验签

使用下面的命令,将公钥信息保存在任意文本中,例如:public.pub

keytool -list -rfc --keystore auth-jwt.jks | openssl x509 -inform pem -pubkey

配置信息

oauth:
  #token有效期24小时
  access-token-validity-seconds: 86400
  #refresh token有效期48小时
  refresh-token-validity-seconds: 172800
  client:
    #普通用户
 
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值