Przeglądaj źródła

update 优化 绑定三方与解绑三方校验token是否存在

疯狂的狮子Li 3 miesięcy temu
rodzic
commit
b38ca837d6

+ 8 - 3
ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java

@@ -2,6 +2,7 @@ package org.dromara.web.controller;
 
 
 import cn.dev33.satoken.annotation.SaIgnore;
 import cn.dev33.satoken.annotation.SaIgnore;
 import cn.dev33.satoken.exception.NotLoginException;
 import cn.dev33.satoken.exception.NotLoginException;
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.codec.Base64;
 import cn.hutool.core.codec.Base64;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -111,7 +112,7 @@ public class AuthController {
     }
     }
 
 
     /**
     /**
-     * 第三方登录请求
+     * 获取跳转URL
      *
      *
      * @param source 登录来源
      * @param source 登录来源
      * @return 结果
      * @return 结果
@@ -133,13 +134,15 @@ public class AuthController {
     }
     }
 
 
     /**
     /**
-     * 第三方登录回调业务处理 绑定授权
+     * 前端回调绑定授权(需要token)
      *
      *
      * @param loginBody 请求体
      * @param loginBody 请求体
      * @return 结果
      * @return 结果
      */
      */
     @PostMapping("/social/callback")
     @PostMapping("/social/callback")
     public R<Void> socialCallback(@RequestBody SocialLoginBody loginBody) {
     public R<Void> socialCallback(@RequestBody SocialLoginBody loginBody) {
+        // 校验token
+        StpUtil.checkLogin();
         // 获取第三方登录信息
         // 获取第三方登录信息
         AuthResponse<AuthUser> response = SocialUtils.loginAuth(
         AuthResponse<AuthUser> response = SocialUtils.loginAuth(
                 loginBody.getSource(), loginBody.getSocialCode(),
                 loginBody.getSource(), loginBody.getSocialCode(),
@@ -155,12 +158,14 @@ public class AuthController {
 
 
 
 
     /**
     /**
-     * 取消授权
+     * 取消授权(需要token)
      *
      *
      * @param socialId socialId
      * @param socialId socialId
      */
      */
     @DeleteMapping(value = "/unlock/{socialId}")
     @DeleteMapping(value = "/unlock/{socialId}")
     public R<Void> unlockSocial(@PathVariable Long socialId) {
     public R<Void> unlockSocial(@PathVariable Long socialId) {
+        // 校验token
+        StpUtil.checkLogin();
         Boolean rows = socialUserService.deleteWithValidById(socialId);
         Boolean rows = socialUserService.deleteWithValidById(socialId);
         return rows ? R.ok() : R.fail("取消授权失败");
         return rows ? R.ok() : R.fail("取消授权失败");
     }
     }