若依框架中出现“无效的会话,或者会话已过期,请重新登录”的提示,通常是由于会话管理或验证机制的问题。以下是一些可能的解决方法:
application.yml
文件中正确配置了会话超时时间。例如:yaml
server:
servlet:
session:
timeout: 30m # 会话超时时间为30分钟
java
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", POST, PUT, DELETE, OPTIONS)
.maxAge(3600);
}
}
实际解决, 第一查看了application.yml
没问题, 检查了跨域没问题,所有地方都看不出问题!!!
唯一想到一个问题,“密码错误”但是若依框架没有告诉你是“密码错误”!!!!!
安排
mysql -u root -p
输入你的数据库密码以登录。
ruoyi
。USE ruoyi;
sys_user
表中。假设管理员用户名是 admin
。可以使用以下 SQL 语句来重置密码:UPDATE sys_user
SET password = '新密码'
WHERE user_name = 'admin';
注意:在执行这条语句之前,请先将新密码进行加密。若依框架默认使用的是 SHA-256 加密,可以使用下面的方式进行加密:
* 如果你使用的是 MySQL,可以使用以下 SQL 语句加密密码:
sql
SELECT SHA2('新密码', 256);
* 然后将生成的加密密码替换到上面的 `UPDATE` 语句中。
我们在宝塔服务器,因此我们默认安装了phpmyadmin ,所以直接打开数据库
很显然,这些用户账户都在,但是,我们没办法 直接改密码,毕竟 密码是加密的,直接以上面所述方法是不可行的,
这里扩展一下知识关于密码加密:
-- 示例:将密码 "mypassword" 使用 SHA-256 加密
SELECT SHA2('mypassword', 256);
// 示例:使用 bcrypt 加密密码
import org.mindrot.jbcrypt.BCrypt;
String hashed = BCrypt.hashpw("mypassword", BCrypt.gensalt());
// 示例:使用 PBKDF2 加密密码
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.SecretKeyFactory;
PBEKeySpec spec = new PBEKeySpec("mypassword".toCharArray(), salt, 10000, 256);
SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
byte[] hash = skf.generateSecret(spec).getEncoded();
因此我们进一步,这就太简单了,由于demo账户我测试了下可以登录,demo账户密码是123456
那么我直接复制给admin即可解决问题
问题解决!!!!完美! perfect ! 又学习了,太开心了!
当然了如果你没有参考的其他账户可言也很简单,要先去了解若依框架mysql数据库的加密方式,如果只是很纯粹简单的哈希加密跟服务端没关系的话,直接找豆包智能体数据库密码加密工具就能得到答案。
哈希加密是一种将任意长度的消息压缩到固定长度的消息摘要的加密算法。
哈希加密的特点是不可逆性,即无法通过哈希值反推出原始消息。哈希加密通常用于验证数据的完整性和一致性,例如在密码存储、数字签名等方面。常见的哈希加密算法包括 MD5、SHA-1、SHA-256 等。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。