扫码登录简单实现思路

2018/08/13

扫码登录简单实现思路

首先,我们需要一个通用接口,该接口能针对不同的请求生成具有请求唯一性的二维码:

controller接口如下:

@RequestMapping("qrcode/{id}")
public ResponseEntity<Resource> code(@PathVariable("id") String id){
try {
return qrCodeEncode("http://192.168.1.105/auth/"+id,
new File("src/main/resources/static/code"+id+".png"));
} catch (IOException e) {
e.printStackTrace();
}
return null;

}

上面这段代码会根据id这个参数动态生成一个二维码并返回给前端。

然后,我们还需要一个验证接口:

@RequestMapping("auth/{id}")
public @ResponseBody String auth(@PathVariable("id") String id){
WebSocket.sendMsg(id,"验证成功,token:123");
return "验证成功";
}

这里我直接返回验证成功的同时使用websocket给前端发送一个消息,可以把登录token传给前端,当然也可以使用轮询实现。

前端JS代码如下:



当然,这样的一个程序还是有更多需要考虑到的地方,特别是ID,肯定不能这么简简单单一位数字就完成。

Post Directory