You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							40 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							40 lines
						
					
					
						
							1.4 KiB
						
					
					
				| import uuid | |
| from datetime import timedelta | |
| from fastapi import APIRouter, Request | |
| from config.enums import RedisInitKeyConfig | |
| from module_admin.entity.vo.login_vo import CaptchaCode | |
| from module_admin.service.captcha_service import CaptchaService | |
| from utils.response_util import ResponseUtil | |
| from utils.log_util import logger | |
| 
 | |
| 
 | |
| captchaController = APIRouter() | |
| 
 | |
| 
 | |
| @captchaController.get('/captchaImage') | |
| async def get_captcha_image(request: Request): | |
|     captcha_enabled = ( | |
|         True | |
|         if await request.app.state.redis.get(f'{RedisInitKeyConfig.SYS_CONFIG.key}:sys.account.captchaEnabled') | |
|         == 'true' | |
|         else False | |
|     ) | |
|     register_enabled = ( | |
|         True | |
|         if await request.app.state.redis.get(f'{RedisInitKeyConfig.SYS_CONFIG.key}:sys.account.registerUser') == 'true' | |
|         else False | |
|     ) | |
|     session_id = str(uuid.uuid4()) | |
|     captcha_result = await CaptchaService.create_captcha_image_service() | |
|     image = captcha_result[0] | |
|     computed_result = captcha_result[1] | |
|     await request.app.state.redis.set( | |
|         f'{RedisInitKeyConfig.CAPTCHA_CODES.key}:{session_id}', computed_result, ex=timedelta(minutes=2) | |
|     ) | |
|     logger.info(f'编号为{session_id}的会话获取图片验证码成功') | |
| 
 | |
|     return ResponseUtil.success( | |
|         model_content=CaptchaCode( | |
|             captchaEnabled=captcha_enabled, registerEnabled=register_enabled, img=image, uuid=session_id | |
|         ) | |
|     )
 | |
| 
 |