二维码登录(二)生成二维码

本文介绍如何生成二维码并存储key以实现二维码登录。在后台生成唯一标识的key存入redis,前台利用qrcode.js生成二维码,内容包含验证url和key。同时,设置定时任务检查登录状态,超过30秒未登录则提示二维码失效。
摘要由CSDN通过智能技术生成

承接上篇博客,本文旨在实现二维码生成的功能,并在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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值