二维码生成前后端

   二维码(Quick Response Code),又称二维条码,它是用特定的几何图形按一定规律在平面(二维方向)上分布的黑白相间的图形,是所有信息数据的一把钥匙。在现代商业活动中,可实现的应用十分广泛,如:产品防伪/溯源、广告推送、网站链接、数据下载、商品交易、定位/导航、电子商务应用、车辆管理、信息传递等。如今智能手机扫一扫(简称313)功能的应用使得二维码更加普遍,随着国内物联网产业的蓬勃发展,更多的二维码技术应用解决方案被开发,二维码成为移动互联网入口真正成为现实。

 

前端JQUERY生成方法:

依赖JS文件:  ↓ ↓ ↓

qrcode.js,jquery.qrcode.js(点击下载)

生成二维码页面位置插入如下div:

<div id="code"></div>

 页面加载代码:

<script>
var id="${param.qrcode}";
if(id!=""&&id!=null){
$("#code").qrcode({
render: "table", //table方式
width: 200, //宽度
height:200, //高度
text: id //任意内容
});
}
</script>

 后台GOOGLE  ZXING生成方法:

生成本地JPG二维码图片:

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
public class test {
public static void main(String[] args){
try {
 
String content ="www.centit.com";
String path = "C:/";
 
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
 
Map hints = new HashMap();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, 400, 400,hints);
File file1 = new File(path,"二维码.jpg");
MatrixToImageWriter.writeToFile(bitMatrix, "jpg", file1);
 
} catch (Exception e) {
e.printStackTrace();
}
}

MatrixToImageWriter.java

public final class MatrixToImageWriter {
private static final int BLACK = 0xFF000000;
private static final int WHITE = 0xFFFFFFFF;
private MatrixToImageWriter() {}
 
public static BufferedImage toBufferedImage(BitMatrix matrix) {
int width = matrix.getWidth();
int height = matrix.getHeight();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);
}
}
return image;
}
 
public static void writeToFile(BitMatrix matrix, String format, File file)
throws IOException {
BufferedImage image = toBufferedImage(matrix);
if (!ImageIO.write(image, format, file)) {
throw new IOException("Could not write an image of format " + format + " to " + file);
}
}
 
public static void writeToStream(BitMatrix matrix, String format, OutputStream stream)
throws IOException {
BufferedImage image = toBufferedImage(matrix);
if (!ImageIO.write(image, format, stream)) {
throw new IOException("Could not write an image of format " + format);
}
}
}

依赖JRA包:core-2.0.jar,SOURCE:core-2.0-sources.jar

POM:

<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>2.0</version>
</dependency>

 

实现微信扫码登录的前后端分离流程如下: 1. 前端生成登录二维码:前端页面加载时,向后端发送请求获取登录二维码的参数信息,包括appid和redirect_uri等,后端根据这些参数生成登录二维码的URL,并返回给前端。 2. 前端展示二维码:前端使用第三方库(如qrcode.js)将生成的登录二维码展示给用户。 3. 用户扫码确认登录:用户使用微信扫描前端展示的二维码,微信客户端会将用户的微信账号与该二维码关联,并向后端发送确认登录的请求。 4. 后端验证登录状态:后端接收到微信客户端发送的确认登录请求后,根据请求中的参数进行验证,包括校验appid、redirect_uri、code等信息的有效性。 5. 后端获取用户信息:验证通过后,后端使用code参数向微信服务器发送请求,获取用户的access_token和openid等信息。 6. 后端生成登录凭证:后端根据获取到的用户信息生成自己的登录凭证(如JWT),并将该凭证返回给前端。 7. 前端保存登录状态:前端接收到后端返回的登录凭证后,可以将该凭证保存在本地(如localStorage或cookie)用于后续的请求验证和会话管理。 8. 后续请求的验证:前后端分离后,后续的请求需要在请求头中携带登录凭证进行验证,后端根据凭证的有效性判断用户的登录状态。 这就是前后端分离实现微信扫码登录的大致流程,通过这种方式可以实现用户使用微信账号进行快速登录和注册。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值