zoukankan      html  css  js  c++  java
  • spring Boot登录验证之验证码 邮箱

    一 验证码

         登录login.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>xxx需求管理系统</title>
    </head>
    <script src="${pageContext.request.contextPath}/js/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">
       $(function () {
           $("#login").click(function () {
               var url="${pageContext.request.contextPath}/login"
               var json={"username":$("#username").val(),"password":$("#password").val(),"checkcode":$("#checkcode").val()};
               if($("#username").val()==""){
                   alert("用户名不能为空")
               }else if($("#password").val()==""){
                   alert("密码不能为空")
               }else {
               function callback(msg) {
                   if(msg==0){
                       alert("用户名或密码错误")
                   }else if(msg==1){
    
                       alert("验证码错误!")
                   }else if(msg==2){
                       window.location.href="${pageContext.request.contextPath}/toSxf";
                   }
               }
               }
               $.get(url,json,callback);
           })
       })
    </script>
    <body>
    <div align="center" style="margin-top: 150px">
    <h2 style="color: blue">xxx需求管理系统登录界面</h2>
        用户名:<input type="text" name="username" id="username"></br></br>&nbsp &nbsp码:<input type="password" name="password" id="password"></br></br>
        <table align="center">
            <tr>
        <td>验证码:</td>
        <td class="width50"><input id="checkcode" name="checkcode" type="text" class="width50" /></td>
        <td><img src="createImage" alt="验证码" title="点击更换" onclick="this.src='createImage?'+(new Date()).getTime();"/></td>
        <td><span id="checkcode_msg" class="required"></span></td>
            </tr>
        </table>
        <input type="submit" value="登录" id="login">
        <a href="${pageContext.request.contextPath}/toForgetPwd">忘记密码?</a>
         <a href="${pageContext.request.contextPath}/toUpdatePwd">修改密码?</a>
    </div>
    </body>
    </html>

    后台处理 loginController

    @RequestMapping("/login")
        public void login(String username, String password,String checkcode, HttpServletResponse response,HttpSession session) throws IOException {
            String code =(String) session.getAttribute("number");
            if (service.login(username,password)==null) {
                response.getWriter().println(0);
            } else if(checkcode==null||checkcode.length()==0||!code.equalsIgnoreCase(checkcode)){
                response.getWriter().println(1);
            }else{
                response.getWriter().println(2);
            }
        }
    @GetMapping("/createImage")
        public void createImage(HttpServletResponse response, HttpSession session) throws IOException {
            BufferedImage image = new BufferedImage(80, 30, BufferedImage.TYPE_INT_RGB);
            Graphics g = image.getGraphics();
            Random r = new Random();
            g.setColor(new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255)));
            g.fillRect(0, 0, 80, 20);
            //获取生成的验证码
            String code = getNumber();
            //绑定验证码
            session.setAttribute("number", code);
            g.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 25));
            g.setColor(new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255)));
            g.drawString(code, 5, 25);
            //设置消息头
            response.setContentType("image/jpeg");
            OutputStream os = response.getOutputStream();
            ImageIO.write(image, "jpeg", os);
        }
        public String getNumber(){
            String str = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            String code = "";
            for(int i= 0;i<4;i++){
                int index = (int)(Math.random()*str.length());
                code+=str.charAt(index);
            }
            return code;
        }

    二 邮箱(主要功能:输入用户名,将重置密码发往注册时与用户名绑定的邮箱)

    在你的 application.yml中加入

    spring:
    mail:
    host: (发送者邮箱类型)
           form:      (发送者邮箱用户名)
           port: 25

    username: (发送者邮箱用户名)

    password: (发送者邮箱密码)
    @Autowired
        private JavaMailSender javaMailSender;
    
        @Value("${spring.mail.username}")
        private String username;
    
    @RequestMapping("/forgetPwd")
        public ModelAndView getPwd(HttpServletResponse response,String loginName) throws IOException {
            ModelAndView mv=new ModelAndView();
            SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
            simpleMailMessage.setFrom(username);
            simpleMailMessage.setTo( service.getMail(loginName));//目的邮箱
            simpleMailMessage.setSubject("重置密码");  //邮箱主题
            simpleMailMessage.setText("重置的密码为123456789");//邮箱内容 自定义
            javaMailSender.send(simpleMailMessage);
             mv.setViewName("login/success");
             return mv;
        }
  • 相关阅读:
    联合金投P9办公自动化解决方案[1]
    协同软件不是万能钥匙:看清协同软件的边界
    天剑OA系统解决方案[1]
    怡康OA办公自动化解决方案
    联合金投P9办公自动化解决方案[1]
    天路协同办公管理系统解决方案[1]
    泛微协同商务系统办公自动化解决方案
    DCI.Indi.Office4.0 OA解决方案(集团企业版)
    新思创OA办公自动化解决方案
    福州世纪通OA办公自动化系统方案[1]
  • 原文地址:https://www.cnblogs.com/xuningchuanblogs/p/7852377.html
Copyright © 2011-2022 走看看