wlzboy
2025-11-09 fa5ea853099e88be253fca4fb2b0c2b7af5f396e
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java
@@ -37,7 +37,31 @@
    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException
    {
        SysUser user = userService.selectUserByUserName(username);
        // 尝试判断是手机号、openId还是用户名
        SysUser user = null;
        // 判断是否为微信OpenID(通常以"o"开头,28位字符)
        if (username.startsWith("o") && username.length() == 28)
        {
            // 微信OpenID登录
            log.info("尝试使用微信OpenID登录:{}", username);
            user = userService.selectUserByOpenId(username);
        }
        // 判断是否为手机号(简单判断:全是数字且11位)
        else if (username.matches("^1[3-9]\\d{9}$"))
        {
            // 手机号登录
            log.info("尝试使用手机号登录:{}", username);
            user = userService.selectUserByPhonenumber(username);
        }
        else
        {
            // 用户名登录
            log.info("尝试使用用户名登录:{}", username);
            user = userService.selectUserByUserName(username);
        }
        if (StringUtils.isNull(user))
        {
            log.info("登录用户:{} 不存在.", username);