app直播源码,登录时输入验证码、短信验证身份
app直播源码,登录时输入验证码、短信验证身份实现的相关代码
一、引入依赖
验证码依赖
1 | <!--谷歌验证码依赖--><br> <dependency><br> <groupId>com.github.axet</groupId><br> <artifactId>kaptcha</artifactId><br> <version>0.0.9</version><br> </dependency> |
二、kaptcha配置
1.配置类
代码如下(示例):
1 | package com.wql.server.config;<br>import com.google.code.kaptcha.impl.DefaultKaptcha;<br>import com.google.code.kaptcha.util.Config;<br>import org.springframework.context.annotation.Bean;<br>import org.springframework.context.annotation.Configuration;<br>import java.util.Properties;<br> /**配置验证码<br> * Description<br> * User:<br> * Date:<br> * Time:<br> */ <br>@Configuration<br> public class CaptchaConfig {<br> @Bean<br> public DefaultKaptcha getDefaultKaptcha(){<br> //验证码生成器<br> DefaultKaptcha defaultKaptcha = new DefaultKaptcha();<br> //配置<br> Properties properties = new Properties();<br> //是否有边框<br> properties.setProperty("kaptcha.border", "yes");<br> //设置边框颜色<br> properties.setProperty("kaptcha.border.color", "105,179,90");<br> //边框粗细度,默认为1<br> // properties.setProperty("kaptcha.border.thickness","1");<br> //验证码<br> properties.setProperty("kaptcha.session.key","code");<br> //验证码文本字符颜色 默认为黑色<br> properties.setProperty("kaptcha.textproducer.font.color", "blue");<br> //设置字体样式<br> properties.setProperty("kaptcha.textproducer.font.names", " 宋体,楷体,微软雅黑");<br> //字体大小,默认40<br> properties.setProperty("kaptcha.textproducer.font.size", "30");<br> //验证码文本字符内容范围默认为abced2345678gfynmnpwx<br> // properties.setProperty("kaptcha.textproducer.char.string", "");<br> //字符长度,默认为5<br> properties.setProperty("kaptcha.textproducer.char.length", "4");<br> //字符间距默认为2<br> properties.setProperty("kaptcha.textproducer.char.space", "4");<br> //验证码图片宽度默认为200<br> properties.setProperty("kaptcha.image.width", "100");<br> //验证码图片高度默认为40<br> properties.setProperty("kaptcha.image.height", "40");<br> Config config = new Config(properties);<br> defaultKaptcha.setConfig(config);<br> return defaultKaptcha;<br> }<br>} |
2.接口信息
代码如下(示例):
1 | package com.wql.server.controller;<br>import com.google.code.kaptcha.impl.DefaultKaptcha;<br>import io.swagger.annotations.Api;<br>import io.swagger.annotations.ApiOperation;<br>import org.springframework.beans.factory.annotation.Autowired;<br>import org.springframework.stereotype.Controller;<br>import org.springframework.web.bind.annotation.GetMapping;<br>import org.springframework.web.bind.annotation.RestController;<br>import javax.imageio.ImageIO;<br>import javax.servlet.ServletOutputStream;<br>import javax.servlet.http.HttpServletRequest;<br>import javax.servlet.http.HttpServletResponse;<br>import java.awt.image.BufferedImage;<br>import java.io.IOException;<br> /**验证码<br> * Description<br> * User:<br> * Date:<br> * Time:<br> */ <br>@Api(tags = "验证码请求" )<br>@RestController<br> public class CaptchaController {<br> @Autowired<br> private DefaultKaptcha defaultKaptcha;<br> @ApiOperation( "验证码" )<br> @GetMapping(value= "/captcha" ,produces = "image/jpeg" )<br> public void captcha(HttpServletRequest request,HttpServletResponse response){<br> //定义response输出类型为image/jpeg类型<br> response.setDateHeader("Expires", 0);<br> // Set standard HTTP/1.1 no-cache headers.<br> response.setHeader("Cache-Control", "no-store, no-cache, must revalidate");<br> // Set IE extended HTTP/1.1 no-cache headers (use addHeader).<br> response.addHeader("Cache-Control", "post-check=0, pre-check=0");<br> // Set standard HTTP/1.0 no-cache header.<br> response.setHeader("Pragma", "no-cache");<br> // return a jpeg<br> response.setContentType("image/jpeg");<br> //---------生成验证码----------<br> //获取验证码文本内容,并将其放入session中进行传输<br> String text = defaultKaptcha.createText();<br> System.out.println("验证码的内容是:"+text);<br> request.getSession().setAttribute("captcha",text);<br> //根据验证码文本内容创建图片<br> BufferedImage bimg = defaultKaptcha.createImage(text);<br> ServletOutputStream out = null;<br> try {<br> out = response.getOutputStream();<br> ImageIO.write(bimg,"jpg",out);<br> out.flush();<br> } catch (IOException e) {<br> e.printStackTrace();<br> }finally {<br> if(null!=out){<br> try {<br> out.close();<br> } catch (IOException e) {<br> e.printStackTrace();<br> }<br> }<br> }<br> }<br>}<br>data = pd.read_csv(<br> 'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')<br>print(data.head()) |
以上就是 app直播源码,登录时输入验证码、短信验证身份实现的相关代码,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现