app直播源码,登录时输入验证码、短信验证身份

app直播源码,登录时输入验证码、短信验证身份实现的相关代码

一、引入依赖

验证码依赖

 

        <!--谷歌验证码依赖-->
        <dependency>
            <groupId>com.github.axet</groupId>
            <artifactId>kaptcha</artifactId>
            <version>0.0.9</version>
        </dependency>

二、kaptcha配置

1.配置类

代码如下(示例):

 

package com.wql.server.config;
import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;
/**配置验证码
 * Description
 * User:
 * Date:
 * Time:
 */
@Configuration
public class CaptchaConfig {
    @Bean
    public DefaultKaptcha getDefaultKaptcha(){
        //验证码生成器
        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
        //配置
        Properties properties = new Properties();
        //是否有边框
        properties.setProperty("kaptcha.border", "yes");
        //设置边框颜色
        properties.setProperty("kaptcha.border.color", "105,179,90");
        //边框粗细度,默认为1
        // properties.setProperty("kaptcha.border.thickness","1");
        //验证码
        properties.setProperty("kaptcha.session.key","code");
        //验证码文本字符颜色 默认为黑色
        properties.setProperty("kaptcha.textproducer.font.color", "blue");
        //设置字体样式
        properties.setProperty("kaptcha.textproducer.font.names", " 宋体,楷体,微软雅黑");
        //字体大小,默认40
        properties.setProperty("kaptcha.textproducer.font.size", "30");
        //验证码文本字符内容范围默认为abced2345678gfynmnpwx
        // properties.setProperty("kaptcha.textproducer.char.string", "");
        //字符长度,默认为5
        properties.setProperty("kaptcha.textproducer.char.length", "4");
        //字符间距默认为2
        properties.setProperty("kaptcha.textproducer.char.space", "4");
        //验证码图片宽度默认为200
        properties.setProperty("kaptcha.image.width", "100");
        //验证码图片高度默认为40
        properties.setProperty("kaptcha.image.height", "40");
        Config config = new Config(properties);
        defaultKaptcha.setConfig(config);
        return defaultKaptcha;
    }
}

 

2.接口信息

代码如下(示例):

 

package com.wql.server.controller;
import com.google.code.kaptcha.impl.DefaultKaptcha;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;
/**验证码
 * Description
 * User:
 * Date:
 * Time:
 */
@Api(tags = "验证码请求")
@RestController
public class CaptchaController {
    @Autowired
    private DefaultKaptcha defaultKaptcha;
    @ApiOperation("验证码")
    @GetMapping(value="/captcha",produces = "image/jpeg")
    public void captcha(HttpServletRequest request,HttpServletResponse response){
        //定义response输出类型为image/jpeg类型
        response.setDateHeader("Expires", 0);
        // Set standard HTTP/1.1 no-cache headers.
        response.setHeader("Cache-Control", "no-store, no-cache, must revalidate");
        // Set IE extended HTTP/1.1 no-cache headers (use addHeader).
        response.addHeader("Cache-Control", "post-check=0, pre-check=0");
        // Set standard HTTP/1.0 no-cache header.
        response.setHeader("Pragma", "no-cache");
        // return a jpeg
        response.setContentType("image/jpeg");
        //---------生成验证码----------
        //获取验证码文本内容,并将其放入session中进行传输
        String text = defaultKaptcha.createText();
        System.out.println("验证码的内容是:"+text);
        request.getSession().setAttribute("captcha",text);
        //根据验证码文本内容创建图片
        BufferedImage bimg = defaultKaptcha.createImage(text);
        ServletOutputStream out = null;
        try {
            out  = response.getOutputStream();
            ImageIO.write(bimg,"jpg",out);
            out.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(null!=out){
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

 

以上就是 app直播源码,登录时输入验证码、短信验证身份实现的相关代码,更多内容欢迎关注之后的文章

 

posted @ 2022-01-25 14:06  云豹科技-苏凌霄  阅读(193)  评论(0编辑  收藏  举报