qq油箱登录(163邮箱登录)-j9九游会登录

这是一个使用spring boot的qq邮箱注册登录项目。没有j9九游会登录首页,用邮差测试。详细有截图。

注册:通过输入邮箱发送验证码,检查来自前端的验证码与后台生成的验证码是否一致。如果一致,将数据写入数据库,完成注册;

登录:通过输入的邮箱查询密码,然后比较密码是否一致。如果它们一致,则登录成功。

登录qq邮箱后,点击左上方的设置,选择账户,如下图所示。

然后就一直往下滑。看到下图所示的pop3/tp服务,点击打开,应该会给求助者的手机号码发一条短信,然后会收到一个授权码。您必须保存好它,它将在appliction.properties配置中使用。

以下是

org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-mail org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.2 mysql mysql-connector-ja 8.0.19 org.springframework.boot spring-boot-starter-jdbc

application.properties配置文件

#邮箱配置#平台地址,这里用的是qq邮箱,使用其他邮箱请更换spring.mail.host = tp.qq.com#改成自己的邮箱spring.mail.username = xxxxx@qq.com#发送短信后它给你的授权码 填写到这里spring.mail.password = xxxxxx#这东西不用改spring.mail.properties.mail.tp.ssl.enable=true##编码格式spring.mail.default-encoding=utf-8#数据库相关配置spring.datasource.driver-class-name=com.mysql.cj.jdbc.driverspring.datasource.url=jdbc:mysql://localhost:3306/email?usessl=true&characterencoding=utf-8&servertimezone=utcspring.datasource.username=rootspring.datasource.password=root #配置mappermybatis.mapper-locations=classpath:mapper/*.xml

数据库结构如下

创建数据库电子邮件

create

database

email;

在电子邮件数据库中创建用户表

create table `user` ( `id` int(20) not null auto_increment, `username` varchar(255) not null, `password` varchar(255) not null, `email` varchar(255) not null, primary key (`id`))

engine=innodb

auto_increment=6

default

charset=utf8;

如顶层项目结构图。包连接前端,mapper包是接口,pojo是实体类,服务层是逻辑代码,vo包是前端发送数据暂存。

执行过程:使用postman发送请求,控制器会接受请求,然后调用服务中的逻辑代码。服务调用的mapper中的接口和mapper对应的xml实现了对数据库的各种操作。

3.1、usercontroller.ja

package com.lu.youxiang.controller;import com.lu.youxiang.service.mailservice;import com.lu.youxiang.vo.uservo;import org.springframework.beans.factory.annotation.autowired;import org.springframework.stereotype.controller;import org.springframework.web.bind.annotation.postmapping;import org.springframework.web.bind.annotation.responsebody;import jax.servlet.http.httpsession;@controllerpublic class usercontroller { @autowired private mailservice mailservice; @postmapping("/sendemail") @responsebody public string sendemail(string email, httpsession httpsession){ mailservice.sendmimemail(email, httpsession); return "sucess"; } @postmapping("/regist") @responsebody public string regist(uservo uservo, httpsession session){ mailservice.registered(uservo,session); return "sucess"; } @postmapping("/login") @responsebody public string login(string email, string password){ mailservice.loginin(email,password); return "sucess"; }}

3.2、usermapper.ja

package com.lu.youxiang.mapper;import com.lu.youxiang.pojo.user;import org.apache.ibatis.annotations.mapper;import org.springframework.stereotype.repository;@mapper@repositorypublic interface usermapper { /** * 注册,插入数据 * @param user */ void insertuser(user user); /** * 根据邮箱查询 * @param email * @return */ user querybyemail(string email);}

3.3、user.ja

package com.lu.youxiang.pojo;public class user { private string username; private string password; private string email; //get和set方法省略了,自己生成一下}

3.4.mailservice.ja很重要。

package com.lu.youxiang.service;import com.lu.youxiang.mapper.usermapper;import com.lu.youxiang.pojo.user;import com.lu.youxiang.vo.uservo;import com.lu.youxiang.vo.uservotouser;import org.springframework.beans.factory.annotation.autowired;import org.springframework.beans.factory.annotation.value;import org.springframework.mail.simplemailmessage;import org.springframework.mail.jamail.jamailsender;import org.springframework.stereotype.service;import jax.servlet.http.httpsession;import ja.util.random;@servicepublic class mailservice { @autowired private jamailsender mailsender;//一定要用@autowired @autowired private usermapper usermapper;//注入usermapper,交给bena //application.properties中已配置的值 @value("${spring.mail.username}") private string from; /** * 给前端输入的邮箱,发送验证码 * @param email * @param session * @return */ public boolean sendmimemail( string email, httpsession session) { try { simplemailmessage mailmessage = new simplemailmessage(); mailmessage.setsubject("验证码邮件");//主题 //生成随机数 string code = randomcode(); //将随机数放置到session中 session.setattribute("email",email); session.setattribute("code",code); mailmessage.settext("您收到的验证码是:" code);//内容 mailmessage.setto(email);//发给谁 mailmessage.setfrom(from);//你自己的邮箱 mailsender.send(mailmessage);//发送 return true; }catch (exception e){ e.printstacktrace(); return false; } } /** * 随机生成6位数的验证码 * @return string code */ public string randomcode(){ stringbuilder str = new stringbuilder(); random random = new random(); for (int i = 0; i < 6; i ) { str.append(random.nextint(10)); } return str.tostring(); } /** * 检验验证码是否一致 * @param uservo * @param session * @return */ public boolean registered(uservo uservo, httpsession session){ //获取session中的验证信息 string email = (string) session.getattribute("email"); string code = (string) session.getattribute("code"); //获取表单中的提交的验证信息 string vocode = uservo.getcode(); //如果email数据为空,或者不一致,注册失败 if (email == null || email.isempty()){ //return "error,请重新注册"; return false; }else if (!code.equals(vocode)){ //return "error,请重新注册"; return false; } //保存数据 user user = uservotouser.touser(uservo); //将数据写入数据库 usermapper.insertuser(user); //跳转成功页面 return true; } /** * 通过输入email查询password,然后比较两个password,如果一样,登录成功 * @param email * @param password * @return */ public boolean loginin(string email, string password){ user user = usermapper.querybyemail(email); if(!user.getpassword().equals(password)){ return false; } system.out.println("登录成功:数据库密码是:" user.getpassword()); return true; }}

3.5、uservo.ja

package com.lu.youxiang.vo;public class uservo { private string username; private string password; private string email; // 验证码 private string code; //省略了get和set方法,自己生成一下

}

3.6、uservotouser.ja

package com.lu.youxiang.vo;import com.lu.youxiang.pojo.user;public class uservotouser { /** * 将表单中的对象转化为数据库中存储的用户对象(剔除表单中的code) * @param uservo * @return */ public static user touser(uservo uservo) { //创建一个数据库中存储的对象 user user = new user(); //传值 user.setusername(uservo.getusername()); user.setpassword(uservo.getpassword()); user.setemail(uservo.getemail()); // 返回包装后的对象 return user; }}

不会复制主配置类。springboot项目创建后,将会有。

3.7.usermapper.xml在资源包下创建一个mapper包来放xml,然后在这个包中创建usermapper.xml,内容如下。

insert into user (username,password,email) values (#{username},#{password},#{email})

如果没有这个软件,安装一下,很好用。打开后点击左上角的文件,再点击新建标签页,就出来一个页面了。(或使用ctrl t快捷键)

请求url:

http://localhost:8080/send email?email=123456@qq.com

将请求url复制到以下url,将电子邮件地址更改为您自己的地址,并将请求方法更改为post。单击发送。如下图

请求url:

http://本地主机:8080/regist

将请求url复制到如下所示的url,将电子邮件地址更改为您自己的,在收到的电子邮件地址中写入code的值,并将请求方法更改为post。点击发送,如下图。

请求url:

http://localhost:8080/login?邮箱=123456 @ qq.com &密码= 12345

复制url,将其更改为post请求,然后单击send。

如下图:

转载自:https://mp.weixin.qq.com/s/jnlzmcno7iup78qfduxe_q

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文链接:https://www.andon8.com/191904.html

网站地图