全部
常见问题
产品动态
精选推荐

java多商户用户登录token

管理 管理 编辑 删除
/**
     * 创建令牌
     *
     * @param loginUser 用户信息
     * @return 令牌
     */
    public LoginFrontUserVo createToken(LoginFrontUserVo loginUser) {
        String token = UUID.randomUUID().toString().replace("-", "");
        loginUser.setToken(token);
        refreshToken(loginUser);

        redisUtil.set(loginUser.getToken(), loginUser.getUser().getId(), Constants.TOKEN_EXPRESS_MINUTES, TimeUnit.MINUTES);
        return loginUser;
    }
    /**
     * 刷新令牌有效期
     *
     * @param loginFrontUser 登录信息
     */
    private void refreshToken(LoginFrontUserVo loginFrontUser) {
        loginFrontUser.setLoginTime(System.currentTimeMillis());
        loginFrontUser.setExpireTime(loginFrontUser.getLoginTime() + FrontTokenComponent.expireTime * FrontTokenComponent.MILLIS_MINUTE);
        // 根据uuid将loginUser缓存
        String userKey = "";
        // 根据当前用户检测是否店铺管理员
        List<MerchantEmployee> shopMangerByUserIds = merchantEmployeeService.getShopMangerByUserId(loginFrontUser.getUser().getId());
        // 如果是普通用户
        if (shopMangerByUserIds.isEmpty()) {
            userKey = getNormalUserTokenKey(loginFrontUser.getToken());
            loginFrontUser.setToken(RedisConstants.TOKEN_USER_NORMAL_REDIS + loginFrontUser.getToken());
            loginFrontUser.setMerchantEmployeeList(null);
        }
        // 如果是店铺管理员
        if (!shopMangerByUserIds.isEmpty()) {
            userKey = getShopManagerTokenKey(loginFrontUser.getToken());
            loginFrontUser.setToken(RedisConstants.TOKEN_USER_SHOP_MANAGER_REDIS + loginFrontUser.getToken());
            List<FrontMerchantEmployeeResponse> currentMerchantList = new ArrayList<>();
            shopMangerByUserIds.stream().map(employee -> {
                Merchant merchant = merchantService.getByIdException(employee.getMerId());
                FrontMerchantEmployeeResponse frEmployee = new FrontMerchantEmployeeResponse();
                BeanUtils.copyProperties(employee, frEmployee);
                EmployeeMerchantResponse employeeMerchant = new EmployeeMerchantResponse();
                BeanUtils.copyProperties(merchant, employeeMerchant);
                frEmployee.setCurrentMerchant(employeeMerchant);
                currentMerchantList.add(frEmployee);
                return employee;
            }).collect(Collectors.toList());

            loginFrontUser.setMerchantEmployeeList(currentMerchantList);

        }
        // 缓存用户信息
        redisUtil.set(userKey, loginFrontUser, (long) FrontTokenComponent.expireTime, TimeUnit.MINUTES);
    }

文件名LoginServiceImpl.java,createToken里调用了refreshToken,两个都redis.set 是不是弄错了,重复set同一个key

请登录后查看

9e6cbc654236 最后编辑于2025-02-14 18:09:08

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
581
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服