单点登录(接口对接)

目录

一、单点登录简介及思路

二、总结

一、单点登录简介及思路

 单点登录是为了简化用户重复登录、提高效率,改善用户使用体验。根据业务提供一下思路。

1、当集成方(A)发起请求时,会被被集成方(B)的前端会拦截;

2、B拦截请求后截取A请求参数,并封装在B自己请求后台的参数上(由B前端请求B后台);

3、B前端请求到后台,后台进行解密并需进行验证判断是否是A发起的请求:

        (1)、来源正确,则判断该用户是否为已有用户。是,则返回该用户的登录所需信息(如用户名、角色、电话等);不是,则创建该用户并指定用户角色。

        (2)、来源错误,则返回错误信息。

前端模拟代码:

前端拦截器:

if (to.path === '/admin/user/login'){
        let project = to.query.project;
        let userInfo = to.query.userInfo;
        let userLogin = {
          project: project,
          userInfo: userInfo,
        }

       let data

      innerLogin(userLogin).then(response => {
         data = response.data.data
        store.dispatch("LoginByName", data).then(() => {
          setStore({
            name: "abc" ,
            content: tendant,
            type: "session"
          })
          sessionStorage.setItem('isNoneEmbedded', true);
          next('/newIndex/index')
        });
      })
    }

 前端按钮:

 <div style="float: left; margin-left: 20px">
      <el-button icon="el-icon-magic-stick" type="primary" @click="clickLogin">
        单点登录
      </el-button>
</div>
clickLogin(){
      let query = {};
      #请求用户信息并加密
      request({
        url: '/admin/login/getInfo',
        method: 'get',
        params: query
      }).then(response => {
        #解密用户信息
        let data = response.data.data;
        let project = data.project;
        let userInfo = data.data;
        let url = "
                http://198.162.9.82:                    
                7898#/admin/user/login?project="+project+"&userInfo=" + userInfo;
      })
    }

后端代码较简单就不展示了。

二、总结

1、一定要根据业务需求、目前代码构成等具体实际情况具体问题具体分析。

2、不懂就要多问问,毕竟大家都是从小白过来的。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,以下是Spring Boot和Vue.js进行单点登录对接的示例: 在Vue.js中,你可以使用axios库来发送HTTP请求。首先,你需要在Vue组件中定义一个方法来处理登录请求,并在该方法中调用后端API进行登录验证。在登录成功后,你可以将返回的token保存到cookie中,并使用window.location.href重定向到主页。 ```javascript methods: { submitLogin() { login.submitLoginUser(this.user) .then(response => { cookie.set('guli_token', response.data.data.token, { domain: 'localhost' }); login.getLoginUserInfo() .then(response => { this.loginInfo = response.data.data.userInfo; cookie.set('aokill_ucenter', this.loginInfo, { domain: 'localhost' }); }); window.location.href = "/"; }); } } ``` 在Spring Boot中,你可以使用Spring Security来处理用户认证和授权。首先,你需要创建一个登录接口,用于接收前端发送的登录请求,并返回一个包含token的响应。然后,你可以创建一个获取用户信息的接口,根据token从数据库中获取用户信息并返回给前端。 ```java @RestController @RequestMapping("/educenter/member") public class MemberController { @PostMapping("/login") public ResponseEntity<?> login(@RequestBody Member member) { // 处理登录逻辑,验证用户名和密码 // 生成token并返回给前端 String token = generateToken(member); return ResponseEntity.ok(new LoginResponse(token)); } @GetMapping("/getMemberInfo") public ResponseEntity<?> getMemberInfo(@RequestHeader("Authorization") String token) { // 根据token从数据库中获取用户信息 MemberInfo memberInfo = getMemberInfoByToken(token); return ResponseEntity.ok(memberInfo); } // 其他方法和逻辑... } ``` 请注意,上述示例仅为演示目的,并未完整实现单点登录的所有功能。实际应用中,你还需要配置Spring Security的认证和授权规则,以及实现token的生成和验证逻辑。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值