> 神武注册邮箱激活说明
神武注册邮箱激活说明
为充分保护用户的帐号安全,《神武》即日起将在注册帐号过程中增加“邮箱激活”部分,您在完成资料填写后,需要去注册时填写的邮箱激活帐号才能登陆游戏,具体注册说明如下:(1)下载《神武》最新客户端;(2)运行客户端,点击“注册帐号”;(3)填写用户资料;(4)基本资料填写完成提交后,客
为充分保护用户的帐号安全,《神武》即日起将在注册帐号过程中增加“邮箱激活”部分,您在完成资料填写后,需要去注册时填写的邮箱激活帐号才能登陆游戏,具体注册说明如下:& (1)下载《神武》最新客户端; (2)运行客户端,点击“注册帐号”; (3)填写用户资料; (4)基本资料填写完成提交后,客户端会提供一个数字服务号。请牢记您的游戏帐号和服务号,您只能使用游戏帐号登录游戏。 (5)注册时填写的邮箱中会收到一封激活帐号的邮件,点击邮件中的链接将帐号激活后就能登陆游戏。请于48小时内到注册邮箱激活帐号,48小时后仍未激活的帐号会将会被删除。
温馨提示& 1、若要领取2980邮箱奖励,请填写正确的***号码,。 2、《神武》不会要求用户在除游戏客户端以外的任何地方进行帐号登录。
手机看攻略,电脑玩游戏两不误!
加点再也不需要切来切去啦~
【神武】最新消息第一时间推送给你
游戏资料:
官方信息:
?游戏名称:神武2
?制作公司:多益网络
?运营公司:多益网络
?游戏类型:MMORPG
?游戏官网:Java注册邮箱激活验证实现代码
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Java注册邮箱激活验证实现代码,有需要的朋友可以参考一下
最近从项目分离出来的注册邮箱激活功能,整理一下,方便下次使用
RegisterValidateService.java
代码如下:package com.app.service.
import java.text.ParseEimport java.util.D
import org.springframework.beans.factory.annotation.Aimport org.springframework.stereotype.S
import com.app.dao.UserDimport com.app.tools.MD5Timport com.app.tools.MD5Uimport com.app.tools.SendEimport com.app.tools.ServiceEimport com.code.model.UserM
/**&* &* @author Qixuan.Chen&*/@Servicepublic class RegisterValidateService {&&& @Autowired&&& private UserDao userD&&& /**&&&& * 处理注册&&&& */&&& public void processregister(String email){&&&&&&& UserModel user=new UserModel();&&&&&&& Long as=5480l;&&&&&&& user.setId(as);&&&&&&& user.setName("xiaoming");&&&&&&& user.setPassword("324545");&&&&&&& user.setEmail(email);&&&&&&& user.setRegisterTime(new Date());&&&&&&& user.setStatus(0);&&&&&&& ///如果处于安全,可以将激活码处理的更复杂点,这里我稍做简单处理&&&&&&& //user.setValidateCode(MD5Tool.MD5Encrypt(email));&&&&&&& user.setValidateCode(MD5Util.encode2hex(email));&&&&&&& userDao.save(user);//保存注册信息&&&&&&& ///邮件的内容&&&&&&& StringBuffer sb=new StringBuffer("点击下面链接激活账号,48小时生效,否则重新注册账号,链接只能使用一次,请尽快激活!&/br&");&&&&&&& sb.append("&a href=\"http://localhost:8080/springmvc/user/register?action=activate&email=");&&&&&&& sb.append(email); &&&&&&& sb.append("&validateCode="); &&&&&&& sb.append(user.getValidateCode());&&&&&&& sb.append("\"&http://localhost:8080/springmvc/user/register?action=activate&email="); &&&&&&& sb.append(email);&&&&&&& sb.append("&validateCode=");&&&&&&& sb.append(user.getValidateCode());&&&&&&& sb.append("&/a&");&&&&&&& //发送邮件&&&&&&& SendEmail.send(email, sb.toString());&&&&&&& System.out.println("发送邮件");&&& }&&& /**&&&& * 处理激活&&&& * @throws ParseException &&&& */&&&&& ///传递激活码和email过来&&& public void processActivate(String email , String validateCode)throws ServiceException, ParseException{& &&&&&&&& //数据访问层,通过email获取用户信息&&&&&&& UserModel user=userDao.find(email);&&&&&&& //验证用户是否存在 &&&&&&& if(user!=null) {& &&&&&&&&&&& //验证用户激活状态& &&&&&&&&&&& if(user.getStatus()==0) { &&&&&&&&&&&&&&& ///没激活&&&&&&&&&&&&&&& Date currentTime = new Date();//获取当前时间& &&&&&&&&&&&&&&& //验证链接是否过期 &&&&&&&&&&&&&&& currentTime.before(user.getRegisterTime());&&&&&&&&&&&&&&& if(currentTime.before(user.getLastActivateTime())) {& &&&&&&&&&&&&&&&&&&& //验证激活码是否正确& &&&&&&&&&&&&&&&&&&& if(validateCode.equals(user.getValidateCode())) {& &&&&&&&&&&&&&&&&&&&&&&& //激活成功, //并更新用户的激活状态,为已激活 &&&&&&&&&&&&&&&&&&&&&&& System.out.println("==sq==="+user.getStatus());&&&&&&&&&&&&&&&&&&&&&&& user.setStatus(1);//把状态改为激活&&&&&&&&&&&&&&&&&&&&&&& System.out.println("==sh==="+user.getStatus());&&&&&&&&&&&&&&&&&&&&&&& userDao.update(user);&&&&&&&&&&&&&&&&&&& } else {& &&&&&&&&&&&&&&&&&&&&&& throw new ServiceException("激活码不正确");& &&&&&&&&&&&&&&&&&&& }& &&&&&&&&&&&&&&& } else { throw new ServiceException("激活码已过期!");& &&&&&&&&&&&&&&& }& &&&&&&&&&&& } else {&&&&&&&&&&&&&& throw new ServiceException("邮箱已激活,请登录!");& &&&&&&&&&&& }& &&&&&&& } else {&&&&&&&&&&& throw new ServiceException("该邮箱未注册(邮箱地址不存在)!");& &&&&&&& }& &&& }
RegisterController.java
代码如下:package com.app.web.
import java.text.ParseE
import javax.annotation.Rimport javax.servlet.http.HttpServletRimport javax.servlet.http.HttpServletR
import org.springframework.stereotype.Cimport org.springframework.web.bind.annotation.RequestMimport org.springframework.web.bind.annotation.RequestMimport org.springframework.web.servlet.ModelAndV
import com.app.service.impl.RegisterValidateSimport com.app.tools.ServiceE
@Controllerpublic class RegisterController {&&& @Resource&&& private RegisterValidateS&&& @RequestMapping(value="/user/register",method={RequestMethod.GET,RequestMethod.POST})&&& public ModelAndView& load(HttpServletRequest request,HttpServletResponse response) throws ParseException{&&&&&&& String action = request.getParameter("action");&&&&&&& System.out.println("-----r----"+action);&&&&&&& ModelAndView mav=new ModelAndView();
&&&&&&& if("register".equals(action)) {&&&&&&&&&&& //注册&&&&&&&&&&& String email = request.getParameter("email");&&&&&&&&&&& service.processregister(email);//发邮箱激活&&&&&&&&&&& mav.addObject("text","注册成功");&&&&&&&&&&& mav.setViewName("register/register_success");&&&&&&& } &&&&&&& else if("activate".equals(action)) {&&&&&&&&&&& //激活&&&&&&&&&&& String email = request.getParameter("email");//获取email&&&&&&&&&&& String validateCode = request.getParameter("validateCode");//激活码&&&&&&&&&&& try {&&&&&&&&&&&&&&& service.processActivate(email , validateCode);//调用激活方法&&&&&&&&&&&&&&& mav.setViewName("register/activate_success");&&&&&&&&&&& } catch (ServiceException e) {&&&&&&&&&&&&&&& request.setAttribute("message" , e.getMessage());&&&&&&&&&&&&&&& mav.setViewName("register/activate_failure");&&&&&&&&&&& }&&&&&&& }&&&&&&&&&& }&&&
UserDao.java(这里个人没有做入库操作,只是利用集合,做过效果出来0_0)
代码如下:package com.app.
import java.text.ParseEimport java.text.SimpleDateFimport java.util.Dimport java.util.HashM
import org.springframework.stereotype.R
import com.code.model.UserM
/**&* &* @author Qixuan.Chen&*/@Repositorypublic class UserDao {&& public HashMap&String, String& map=new HashMap&String, String&();&&& /**&&&& * @保存注册信息&&&& *& private L&&&&&&& private S&&&&&&& private S&&&&&&& private S//注册账号&&&&&&&//激活状态&&&&&&& private String validateC//激活码&&&&&&& private Date& registerT//注册时间&&&& */&&& public void save(UserModel user){&&&&&&& System.out.println("cicicici");&&&&&&& map.put("id", String.valueOf(user.getId()));&&&&&&& map.put("email", user.getEmail());&&&&&&& map.put("validateCode", user.getValidateCode());&&&&&&& SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddhhmmss");&&&&&&& String time=sdf.format(user.getRegisterTime());&&&&&&& map.put("registerTime", time);&&&&&&& int status=user.getStatus();&&&&&&& map.put("status", String.valueOf(status));&&&&&&& map.put("name", user.getName());&&&&&&& String t2=sdf.format(user.getLastActivateTime());&&&&&&& map.put("activeLastTime", String.valueOf(t2));&&&&&&& System.out.println("=======s========="+status);&&& }&&& /**&&&& * @更新 user&&&& */&&& public void update(UserModel user){&&&&&&& map.put("email", user.getEmail());&&&&&&& map.put("validateCode", user.getValidateCode());&&&&&&& Date time=user.getRegisterTime();&&&&&&& map.put("registerTime", String.valueOf(time));&&&&&&& int status=user.getStatus();&&&&&&& map.put("status", String.valueOf(status));&&&&&&& System.out.println("=======st========="+status);&&& }&&& /**&&&& * @throws ParseException &&&& * @查找信息&&&& */&&& public UserModel find(String email) throws ParseException{&&&&&&& UserModel user=new UserModel();&&&&&&& user.setEmail(map.get("email"));&&&&&&& user.setName(map.get("name"));&&&&&&& SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddhhmmss");&&&&&&& Date day=sdf.parse(map.get("registerTime"));&&&&&&& user.setRegisterTime(day);&&&&&&& user.setStatus(Integer.valueOf(map.get("status")));&&&&&&& user.setValidateCode(map.get("validateCode"));
&&&&&&&&&& }
UserModel.java
代码如下:package com.code.
import java.beans.Timport java.util.Cimport java.util.D
public class UserModel {&&& private L&private S&private S&private S//注册账号&private int status=0;//激活状态&private String validateC//激活码&private Date& registerT//注册时间&&& &&& /////////////////
&&& public Long getId() {&&&&&&&&&& }&&& public void setId(Long id) {&&&&&&& this.id =&&& }&&& public String getName() {&&&&&&&&&& }&&& public void setName(String name) {&&&&&&& this.name =&&& }&&& public String getPassword() {&&&&&&&&&& }&&& public void setPassword(String password) {&&&&&&& this.password =&&& }&&& public String getEmail() {&&&&&&&&&& }&&& public void setEmail(String email) {&&&&&&& this.email =&&& }&&& public int getStatus() {&&&&&&&&&& }&&& public void setStatus(int status) {&&&&&&& this.status =&&& }&&& public String getValidateCode() {&&&&&&& return validateC&&& }&&& public void setValidateCode(String validateCode) {&&&&&&& this.validateCode = validateC&&& }&&& public Date getRegisterTime() {&&&&&&& return registerT&&& }&&& public void setRegisterTime(Date registerTime) {&&&&&&& this.registerTime = registerT&&& }
&&& /////////////////////////&&& @Transient&&& public Date getLastActivateTime() {&&&&&&& Calendar cl = Calendar.getInstance();&&&&&&& cl.setTime(registerTime);&&&&&&& cl.add(Calendar.DATE , 2);&&&&&&& return cl.getTime();&&& }}
SendEmail.java 代码如下:package com.app.
import java.util.Dimport java.util.P
import javax.mail.Aimport javax.mail.Mimport javax.mail.MessagingEimport javax.mail.PasswordAimport javax.mail.Simport javax.mail.Timport javax.mail.internet.InternetAimport javax.mail.internet.MimeM
/**&* &* @author Qixuan.Chen&*/public class SendEmail {&&& public static final String HOST = "";&&& public static final String PROTOCOL = "smtp";&& &&& public static final int PORT = 25;&&& public static final String FROM = "";//发件人的email&&& public static final String PWD = "123456";//发件人密码&&& /**&&&& * 获取Session&&&& * @return&&&& */&&& private static Session getSession() {&&&&&&& Properties props = new Properties();&&&&&&& props.put("mail.smtp.host", HOST);//设置服务器地址&&&&&&& props.put("mail.store.protocol" , PROTOCOL);//设置协议&&&&&&& props.put("mail.smtp.port", PORT);//设置端口&&&&&&& props.put("mail.smtp.auth" , true);&&&&&&& Authenticator authenticator = new Authenticator() {
&&&&&&&&&&& @Override&&&&&&&&&&& protected PasswordAuthentication getPasswordAuthentication() {&&&&&&&&&&&&&&& return new PasswordAuthentication(FROM, PWD);&&&&&&&&&&& }&&&&&&& };&&&&&&& Session session = Session.getDefaultInstance(props , authenticator);&&&&&&&&&& }&&& public static void send(String toEmail , String content) {&&&&&&& Session session = getSession();&&&&&&& try {&&&&&&&&&&& System.out.println("--send--"+content);&&&&&&&&&&& // Instantiate a message&&&&&&&&&&& Message msg = new MimeMessage(session);&&&&&&&&&&& //Set message attributes&&&&&&&&&&& msg.setFrom(new InternetAddress(FROM));&&&&&&&&&&& InternetAddress[] address = {new InternetAddress(toEmail)};&&&&&&&&&&& msg.setRecipients(Message.RecipientType.TO, address);&&&&&&&&&&& msg.setSubject("账号激活邮件");&&&&&&&&&&& msg.setSentDate(new Date());&&&&&&&&&&& msg.setContent(content , "text/charset=utf-8");&&&&&&&&&&& //Send the message&&&&&&&&&&& Transport.send(msg);&&&&&&& }&&&&&&& catch (MessagingException mex) {&&&&&&&&&&& mex.printStackTrace();&&&&&&& }&&& }
MD5Util.java
代码如下:package com.app.
import java.io.UnsupportedEncodingEimport java.security.MessageDimport java.security.NoSuchAlgorithmE
public class MD5Util {&/**& * 将源字符串使用MD5加密为字节数组& * @param source& * @return& */&public static byte[] encode2bytes(String source) {&&byte[] result =&&try {&&&MessageDigest md = MessageDigest.getInstance("MD5");&&&md.reset();&&&md.update(source.getBytes("UTF-8"));&&&result = md.digest();&&} catch (NoSuchAlgorithmException e) {&&&e.printStackTrace();&&} catch (UnsupportedEncodingException e) {&&&e.printStackTrace();&&}&&&}&/**& * 将源字符串使用MD5加密为32位16进制数& * @param source& * @return& */&public static String encode2hex(String source) {&&byte[] data = encode2bytes(source);
&&StringBuffer hexString = new StringBuffer();&&for (int i = 0; i & data. i++) {&&&String hex = Integer.toHexString(0xff & data[i]);&&&if (hex.length() == 1) {&&&&hexString.append('0');&&&}&&&hexString.append(hex);&&}&&return hexString.toString();&}&/**& * 验证字符串是否匹配& * @param unknown 待验证的字符串& * @param okHex&使用MD5加密过的16进制字符串& * @return&匹配返回true,不匹配返回false& */&public static boolean validate(String unknown , String okHex) {&&return okHex.equals(encode2hex(unknown));&}}
ServiceException.java
代码如下:package com.app.
public class ServiceException extends Exception {&private static final long serialVersionUID = -5851228L;&public ServiceException(String message) {&&super(message);&}}
registerEmailValidae.jsp 代码如下:&& &h2&注册激活&/h2&&&& &form action="user/register?action=register" method="post"&&&&&&&& Email:&input type="text" id="email" name="email" value="" &&&&&&&& &input type="submit" value="提交"&&&& &/form&
register_success.jsp 代码如下:& &body&&&& 恭喜你注册成功!请到注册的邮箱点击链接激活!& &/body&
activate_success.jsp:
代码如下:&&body&&&& 账号激活成功,点击这里去登录!& &/body&
activate_failure.jsp:
&body&&&& 激活失败!错误信息:${message }& &/body&效果图:1
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具