app直播原始碼,登入時輸入驗證碼、簡訊驗證身份

zhibo系統開發 發表於 2022-01-25

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(
    ')
print(data.head())


以上就是 app直播原始碼,登入時輸入驗證碼、簡訊驗證身份實現的相關程式碼,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2853942/,如需轉載,請註明出處,否則將追究法律責任。