承接上篇博客,本文旨在实现二维码生成的功能,并在redis中存储一个key方便后期APP端扫码时做映射
本文代码git https://github.com/xvshu/qrlogin
1,生成二维码请求action
主要是生成一个唯一标识的key,本次以时间戳为测试key,存入redis,并传回前台,生成相关页面以供APP扫描
package com.el.qr.login.web;
import com.el.qr.login.service.RedisQRService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
/**
* 首页控制器
*
* @author xvshu
*/
@Controller
@RequestMapping("/qr")
public class QRLoginController {
private static final Logger logger = LoggerFactory.getLogger(QRLoginController.class);
@Autowired
private RedisQRService redisQRService;
@RequestMapping(value = "/login")
public ModelAndView index() {
ModelAndView mav = new ModelAndView("qrlogin/qrlogin");
String codeMark = "xvshu-qrlogin-"+String.valueOf(System.currentTimeMillis());
mav.addObject("code_mark",codeMark);
redisQRService.initQRKey(codeMark);
return mav;
}
@RequestMapping(value = "/login/success_check")
public ModelAndView success_check(String code_mark) {
ModelAndView mav = new ModelAndView("qrlogin/qrsuccess");
mav.addObject("code_mark",code_mark);
return mav;
}
@RequestMapping(value = "/login/main")
public Mo