Kaynağa Gözat

进度,了解token相关内容

shigongchen 5 ay önce
ebeveyn
işleme
c8a1ae591c

+ 2 - 0
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/servlet/ServletUtils.java

@@ -47,6 +47,8 @@ public class ServletUtils {
      * @return HttpServletRequest
      */
     public static HttpServletRequest getRequest() {
+        //RequestContextHolder 是 Spring 提供的一个工具类,用于获取当前线程的请求上下文。
+        //通过获取当前线程中的上下文中的请求,获取请求参数
         RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
         if (!(requestAttributes instanceof ServletRequestAttributes)) {
             return null;

+ 1 - 0
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/validation/ValidationUtils.java

@@ -40,6 +40,7 @@ public class ValidationUtils {
     }
 
     public static void validate(Object object, Class<?>... groups) {
+//        使用注解的方式嗲用validator进行校验,还有其他方式可以使用
         Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
         Assert.notNull(validator);
         validate(validator, object, groups);

+ 8 - 1
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSceneEnum.java

@@ -22,7 +22,14 @@ public enum SmsSceneEnum implements IntArrayValuable {
     MEMBER_RESET_PASSWORD(4, "user-reset-password", "会员用户 - 忘记密码"),
 
     ADMIN_MEMBER_LOGIN(21, "admin-sms-login", "后台用户 - 手机号登录");
-
+// `values()` 是 Java 枚举类型中的一个自动生成的方法,用于返回该枚举类中所有枚举常量的数组。它的主要作用和用法如下:
+// 1. 枚举类中所有枚举常量数组:`values()` 方法返回一个包含该枚举类中所有枚举常量的数组。
+// 2. 遍历所有枚举常量:通过 `values()` 方法,可以方便地遍历枚举类中所有的枚举常量。
+// 3. 获取枚举常量的数量:`values()` 方法返回的数组长度即为枚举类中枚举常量的数量。
+// 4. 枚举常量的顺序:枚举常量的顺序是按照定义的顺序排列的,可以通过数组索引访问每个枚举常量。
+// 5. 枚举常量的场景编号:每个枚举常量都有一个场景编号,通过 `getScene()` 方法可以获取到该枚举常量的场景编号。
+// 6. 枚举常量的模板编码:每个枚举常量都有一个模板编码,通过 `getTemplateCode()` 方法可以获取到该枚举常量的模板编码。
+// 7. 枚举常量的描述:每个枚举常量都有一个描述,通过 `getDescription()` 方法可以获取到该枚举常量的描述。
     public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(SmsSceneEnum::getScene).toArray();
 
     /**

+ 3 - 3
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java

@@ -82,7 +82,7 @@ public class AuthController {
     }
 
     @PostMapping("/refresh-token")
-    @PermitAll
+    @PermitAll   //允许所有人进行访问,不进行鉴权
     @Operation(summary = "刷新令牌")
     @Parameter(name = "refreshToken", description = "刷新令牌", required = true)
     public CommonResult<AuthLoginRespVO> refreshToken(@RequestParam("refreshToken") String refreshToken) {
@@ -118,14 +118,14 @@ public class AuthController {
     // ========== 短信登录相关 ==========
 
     @PostMapping("/sms-login")
-    @PermitAll
+    @PermitAll  //无需登录,允许所有用户访问
     @Operation(summary = "使用短信验证码登录")
     public CommonResult<AuthLoginRespVO> smsLogin(@RequestBody @Valid AuthSmsLoginReqVO reqVO) {
         return success(authService.smsLogin(reqVO));
     }
 
     @PostMapping("/send-sms-code")
-    @PermitAll
+    @PermitAll //无需登录,允许所有用户访问
     @Operation(summary = "发送手机验证码")
     public CommonResult<Boolean> sendLoginSmsCode(@RequestBody @Valid AuthSmsSendReqVO reqVO) {
         authService.sendSmsCode(reqVO);

+ 3 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java

@@ -73,6 +73,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
 
     @Override
     public AdminUserDO authenticate(String username, String password) {
+        //判断登录的类型,使用账号密码登录s
         final LoginLogTypeEnum logTypeEnum = LoginLogTypeEnum.LOGIN_USERNAME;
         // 校验账号是否存在
         AdminUserDO user = userService.getUserByUsername(username);
@@ -116,6 +117,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
             throw exception(AUTH_MOBILE_NOT_EXISTS);
         }
         // 发送验证码
+        // 从上下文的request中获取请求的真实ip地址
         smsCodeApi.sendSmsCode(AuthConvert.INSTANCE.convert(reqVO).setCreateIp(getClientIP()));
     }
 
@@ -179,6 +181,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
             return;
         }
         // 校验验证码
+//        使用注解的方式调用validator进行校验,还有其他方式
         ValidationUtils.validate(validator, reqVO, AuthLoginReqVO.CodeEnableGroup.class);
         CaptchaVO captchaVO = new CaptchaVO();
         captchaVO.setCaptchaVerification(reqVO.getCaptchaVerification());