后台系统免密跳转至Nacos控制台页面


1 项目场景及现状

1、项目本身有后台管理页面
2、项目集成了nacos作为服务发现与配置中心
3、因后台管理和nacos是独立的服务和用户体系,需分别访问对应的服务地址并输入用户名密码才可进入相应的系统页面。

2 需求问题

直接从后台管理页面跳转至nacos控制台页面,所有后台管理用户可免密进入nacos控制台。

3 解决过程

发现:
1、nacos登录后会在local storage存放登录的token信息
2、local storage中的token信息是nacos登录API成功后会返回
思考:
只要在跳转到nacos控制台之前把用户登录后的token信息存放在local storage中,就可完成前台的免密登录了。

5 逻辑调用过程

后台管理系统前端 后端 nacos 点击跳转nacos页面按钮 调用后台登录nacos接口 调用nacos登录api,传入用户名、密码 登录成功,生产token信息 返回token信息 返回token信息 将token信息存储到local storage 跳转至nacos控制台页面 后台管理系统前端 后端 nacos

注意:后台管理系统和nacos需要在同一个域下才可

4 nacos登录api地址及调用示例

4.1 nacos登录api地址

http://ip:port/nacos/v1/auth/users/login
postman调用示例:
nacos登录api调用示例

4.2 代码调用示例

import com.springbootplus.common.api.ApiResult;
import com.springbootplus.nacos.domain.repository.NacosRepository;
import com.springbootplus.util.OkHttpRequestUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;

import java.util.HashMap;
import java.util.Map;

/**
 * <pre>
 * nacos服务 仓储层
 * </pre>
 *
 * @author yjj
 * @since 2021/11/24
 */
@Slf4j
@Repository
public class NacosRepositoryImpl implements NacosRepository {

    @Value("${nacos.login.url:http://127.0.0.1:8848/nacos/v1/auth/users/login}")
    private String loginUrl;
    @Value("${nacos.login.user-name:nacos}")
    private String nacosLoginName;
    @Value("${nacos.login.user-pass:nacos}")
    private String nacosLoginPasswd;

    @Override
    public String login() {

        Map<String, Object> headMap = new HashMap<>(1);
        // 注意这里是form-data类型
        headMap.put("Content-Type", "multipart/form-data");
        Map<String, Object> paramMap = new HashMap<>(2);
        paramMap.put("username", nacosLoginName);
        paramMap.put("password", nacosLoginPasswd);
        try {
            return OkHttpRequestUtils.doPost(loginUrl, headMap, paramMap);
        } catch (Exception e) {
            log.error("调用nacos登录失败", e);
            return "跳转nacos控制台失败,请稍候重试";
        }
    }

}
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值